This commit is contained in:
Louis Lam 2023-12-20 23:34:17 +08:00
parent d655a8cc21
commit c581bcd9db

View file

@ -5,20 +5,20 @@ import { Stack } from "../stack";
import { AgentSocket } from "../../common/agent-socket"; import { AgentSocket } from "../../common/agent-socket";
export class DockerSocketHandler extends AgentSocketHandler { export class DockerSocketHandler extends AgentSocketHandler {
create(s : DockgeSocket, server : DockgeServer, agentSocket : AgentSocket) { create(socket : DockgeSocket, server : DockgeServer, agentSocket : AgentSocket) {
// Do not call super.create() // Do not call super.create()
agentSocket.on("deployStack", async (name : unknown, composeYAML : unknown, composeENV : unknown, isAdd : unknown, callback) => { agentSocket.on("deployStack", async (name : unknown, composeYAML : unknown, composeENV : unknown, isAdd : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
const stack = await this.saveStack(server, name, composeYAML, composeENV, isAdd); const stack = await this.saveStack(server, name, composeYAML, composeENV, isAdd);
await stack.deploy(s); await stack.deploy(socket);
server.sendStackList(); server.sendStackList();
callback({ callback({
ok: true, ok: true,
msg: "Deployed", msg: "Deployed",
}); });
stack.joinCombinedTerminal(s); stack.joinCombinedTerminal(socket);
} catch (e) { } catch (e) {
callbackError(e, callback); callbackError(e, callback);
} }
@ -26,7 +26,7 @@ export class DockerSocketHandler extends AgentSocketHandler {
agentSocket.on("saveStack", async (name : unknown, composeYAML : unknown, composeENV : unknown, isAdd : unknown, callback) => { agentSocket.on("saveStack", async (name : unknown, composeYAML : unknown, composeENV : unknown, isAdd : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
this.saveStack(server, name, composeYAML, composeENV, isAdd); this.saveStack(server, name, composeYAML, composeENV, isAdd);
callback({ callback({
ok: true, ok: true,
@ -40,14 +40,14 @@ export class DockerSocketHandler extends AgentSocketHandler {
agentSocket.on("deleteStack", async (name : unknown, callback) => { agentSocket.on("deleteStack", async (name : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
if (typeof(name) !== "string") { if (typeof(name) !== "string") {
throw new ValidationError("Name must be a string"); throw new ValidationError("Name must be a string");
} }
const stack = await Stack.getStack(server, name); const stack = await Stack.getStack(server, name);
try { try {
await stack.delete(s); await stack.delete(socket);
} catch (e) { } catch (e) {
server.sendStackList(); server.sendStackList();
throw e; throw e;
@ -66,7 +66,7 @@ export class DockerSocketHandler extends AgentSocketHandler {
agentSocket.on("getStack", async (stackName : unknown, callback) => { agentSocket.on("getStack", async (stackName : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
if (typeof(stackName) !== "string") { if (typeof(stackName) !== "string") {
throw new ValidationError("Stack name must be a string"); throw new ValidationError("Stack name must be a string");
@ -75,12 +75,12 @@ export class DockerSocketHandler extends AgentSocketHandler {
const stack = await Stack.getStack(server, stackName); const stack = await Stack.getStack(server, stackName);
if (stack.isManagedByDockge) { if (stack.isManagedByDockge) {
stack.joinCombinedTerminal(s); stack.joinCombinedTerminal(socket);
} }
callback({ callback({
ok: true, ok: true,
stack: stack.toJSON(s.endpoint), stack: stack.toJSON(socket.endpoint),
}); });
} catch (e) { } catch (e) {
callbackError(e, callback); callbackError(e, callback);
@ -90,7 +90,7 @@ export class DockerSocketHandler extends AgentSocketHandler {
// requestStackList // requestStackList
agentSocket.on("requestStackList", async (callback) => { agentSocket.on("requestStackList", async (callback) => {
try { try {
checkLogin(s); checkLogin(socket);
server.sendStackList(); server.sendStackList();
callback({ callback({
ok: true, ok: true,
@ -104,21 +104,21 @@ export class DockerSocketHandler extends AgentSocketHandler {
// startStack // startStack
agentSocket.on("startStack", async (stackName : unknown, callback) => { agentSocket.on("startStack", async (stackName : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
if (typeof(stackName) !== "string") { if (typeof(stackName) !== "string") {
throw new ValidationError("Stack name must be a string"); throw new ValidationError("Stack name must be a string");
} }
const stack = await Stack.getStack(server, stackName); const stack = await Stack.getStack(server, stackName);
await stack.start(s); await stack.start(socket);
callback({ callback({
ok: true, ok: true,
msg: "Started" msg: "Started"
}); });
server.sendStackList(); server.sendStackList();
stack.joinCombinedTerminal(s); stack.joinCombinedTerminal(socket);
} catch (e) { } catch (e) {
callbackError(e, callback); callbackError(e, callback);
@ -128,14 +128,14 @@ export class DockerSocketHandler extends AgentSocketHandler {
// stopStack // stopStack
agentSocket.on("stopStack", async (stackName : unknown, callback) => { agentSocket.on("stopStack", async (stackName : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
if (typeof(stackName) !== "string") { if (typeof(stackName) !== "string") {
throw new ValidationError("Stack name must be a string"); throw new ValidationError("Stack name must be a string");
} }
const stack = await Stack.getStack(server, stackName); const stack = await Stack.getStack(server, stackName);
await stack.stop(s); await stack.stop(socket);
callback({ callback({
ok: true, ok: true,
msg: "Stopped" msg: "Stopped"
@ -149,14 +149,14 @@ export class DockerSocketHandler extends AgentSocketHandler {
// restartStack // restartStack
agentSocket.on("restartStack", async (stackName : unknown, callback) => { agentSocket.on("restartStack", async (stackName : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
if (typeof(stackName) !== "string") { if (typeof(stackName) !== "string") {
throw new ValidationError("Stack name must be a string"); throw new ValidationError("Stack name must be a string");
} }
const stack = await Stack.getStack(server, stackName); const stack = await Stack.getStack(server, stackName);
await stack.restart(s); await stack.restart(socket);
callback({ callback({
ok: true, ok: true,
msg: "Restarted" msg: "Restarted"
@ -170,14 +170,14 @@ export class DockerSocketHandler extends AgentSocketHandler {
// updateStack // updateStack
agentSocket.on("updateStack", async (stackName : unknown, callback) => { agentSocket.on("updateStack", async (stackName : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
if (typeof(stackName) !== "string") { if (typeof(stackName) !== "string") {
throw new ValidationError("Stack name must be a string"); throw new ValidationError("Stack name must be a string");
} }
const stack = await Stack.getStack(server, stackName); const stack = await Stack.getStack(server, stackName);
await stack.update(s); await stack.update(socket);
callback({ callback({
ok: true, ok: true,
msg: "Updated" msg: "Updated"
@ -191,14 +191,14 @@ export class DockerSocketHandler extends AgentSocketHandler {
// down stack // down stack
agentSocket.on("downStack", async (stackName : unknown, callback) => { agentSocket.on("downStack", async (stackName : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
if (typeof(stackName) !== "string") { if (typeof(stackName) !== "string") {
throw new ValidationError("Stack name must be a string"); throw new ValidationError("Stack name must be a string");
} }
const stack = await Stack.getStack(server, stackName); const stack = await Stack.getStack(server, stackName);
await stack.down(s); await stack.down(socket);
callback({ callback({
ok: true, ok: true,
msg: "Downed" msg: "Downed"
@ -212,7 +212,7 @@ export class DockerSocketHandler extends AgentSocketHandler {
// Services status // Services status
agentSocket.on("serviceStatusList", async (stackName : unknown, callback) => { agentSocket.on("serviceStatusList", async (stackName : unknown, callback) => {
try { try {
checkLogin(s); checkLogin(socket);
if (typeof(stackName) !== "string") { if (typeof(stackName) !== "string") {
throw new ValidationError("Stack name must be a string"); throw new ValidationError("Stack name must be a string");
@ -232,7 +232,7 @@ export class DockerSocketHandler extends AgentSocketHandler {
// getExternalNetworkList // getExternalNetworkList
agentSocket.on("getDockerNetworkList", async (callback) => { agentSocket.on("getDockerNetworkList", async (callback) => {
try { try {
checkLogin(s); checkLogin(socket);
const dockerNetworkList = await server.getDockerNetworkList(); const dockerNetworkList = await server.getDockerNetworkList();
callback({ callback({
ok: true, ok: true,