feat: update docker api invoke
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
parent
b497c9750e
commit
67b410e448
@ -1,4 +1,4 @@
|
|||||||
import * as docker from '@dayu/docker-api'
|
import docker from '@dayu/docker-api'
|
||||||
import { controller, httpGet } from "@cc-server/binding";
|
import { controller, httpGet } from "@cc-server/binding";
|
||||||
|
|
||||||
const STACK_LABEL = 'com.docker.stack.namespace';
|
const STACK_LABEL = 'com.docker.stack.namespace';
|
||||||
@ -28,7 +28,7 @@ class DashboardController {
|
|||||||
stacks: Array.from(new Set(stacks)),
|
stacks: Array.from(new Set(stacks)),
|
||||||
services,
|
services,
|
||||||
networks: networks.map(n => n.Name),
|
networks: networks.map(n => n.Name),
|
||||||
containers: containers.map(c => c.Names),
|
containers: containers.map(c => c.Names[0].substr(1)),
|
||||||
images: images.map(i => i.Id),
|
images: images.map(i => i.Id),
|
||||||
volumes: volumes.Volumes.map(v => v.Name)
|
volumes: volumes.Volumes.map(v => v.Name)
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import * as docker from '@dayu/docker-api'
|
import docker from '@dayu/docker-api'
|
||||||
import { controller, get, requestParam } from '@cc-server/binding'
|
import { controller, get, requestParam } from '@cc-server/binding'
|
||||||
|
|
||||||
@controller('/config')
|
@controller('/config')
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import * as docker from '@dayu/docker-api'
|
import docker from '@dayu/docker-api'
|
||||||
import { io, interfaces, namespace, listener, Message } from '@cc-server/ws'
|
import { io, interfaces, namespace, listener, Message } from '@cc-server/ws'
|
||||||
import { controller, get, post, requestParam } from '@cc-server/binding'
|
import { controller, get, post, requestParam } from '@cc-server/binding'
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
import docker from '@dayu/docker-api'
|
||||||
import { controller, httpGet, httpPost } from 'inversify-express-utils';
|
import { controller, httpGet, httpPost } from 'inversify-express-utils';
|
||||||
import * as docker from '@dayu/docker-api'
|
|
||||||
|
|
||||||
@controller('/node')
|
@controller('/node')
|
||||||
class NodeController {
|
class NodeController {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import * as docker from '@dayu/docker-api'
|
import docker from '@dayu/docker-api'
|
||||||
import { namespace, listener, interfaces, io, Message } from '@cc-server/ws'
|
import { namespace, listener, interfaces, io, Message } from '@cc-server/ws'
|
||||||
import { controller, post, get, requestParam, queryParam } from '@cc-server/binding';
|
import { controller, post, get, requestParam, queryParam } from '@cc-server/binding';
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
import docker from '@dayu/docker-api'
|
||||||
import { controller, get, post, requestParam } from '@cc-server/binding';
|
import { controller, get, post, requestParam } from '@cc-server/binding';
|
||||||
import * as docker from '@dayu/docker-api'
|
|
||||||
|
|
||||||
const STACK_LABEL = 'com.docker.stack.namespace';
|
const STACK_LABEL = 'com.docker.stack.namespace';
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ class StackController {
|
|||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
status: 0,
|
status: 0,
|
||||||
data: result
|
data: { rows: result }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,6 +49,6 @@ class StackController {
|
|||||||
|
|
||||||
@post('/create')
|
@post('/create')
|
||||||
public async create() {
|
public async create() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
import docker from '@dayu/docker-api'
|
||||||
import { controller, httpGet, httpPost } from 'inversify-express-utils';
|
import { controller, httpGet, httpPost } from 'inversify-express-utils';
|
||||||
import * as docker from '@dayu/docker-api'
|
|
||||||
|
|
||||||
@controller('/swarm')
|
@controller('/swarm')
|
||||||
class SwarmController {
|
class SwarmController {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
import docker from '@dayu/docker-api'
|
||||||
import { controller, httpGet, httpPost } from 'inversify-express-utils';
|
import { controller, httpGet, httpPost } from 'inversify-express-utils';
|
||||||
import * as docker from '@dayu/docker-api'
|
|
||||||
import { io, namespace, listener, interfaces, Message } from '@cc-server/ws';
|
import { io, namespace, listener, interfaces, Message } from '@cc-server/ws';
|
||||||
|
|
||||||
@controller('')
|
@controller('')
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
import docker from '@dayu/docker-api'
|
||||||
|
import { namespace, listener, interfaces, io, Message } from '@cc-server/ws'
|
||||||
import { controller, post, get, requestParam, queryParam } from '@cc-server/binding';
|
import { controller, post, get, requestParam, queryParam } from '@cc-server/binding';
|
||||||
import * as docker from '@dayu/docker-api'
|
|
||||||
|
|
||||||
@controller('/task')
|
@controller('/task')
|
||||||
class TaskController {
|
class TaskController {
|
||||||
@ -19,3 +20,20 @@ class TaskController {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@namespace("/task")
|
||||||
|
class TaskNamespace extends interfaces.Namespace {
|
||||||
|
@listener()
|
||||||
|
async logs(socket: io.Socket, data: any) {
|
||||||
|
try {
|
||||||
|
let stream = await docker.task.logs(data.id, data);
|
||||||
|
this.defer(socket, () => stream.connection.destroy());
|
||||||
|
stream.on('data', (chunk: ArrayBuffer) => {
|
||||||
|
let log = Buffer.from(chunk.slice(8, chunk.byteLength - 1)).toString();
|
||||||
|
socket.send(log);
|
||||||
|
})
|
||||||
|
} catch (ex) {
|
||||||
|
return new Message(ex.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
|
import docker from '@dayu/docker-api'
|
||||||
import { controller, get, post, requestParam } from '@cc-server/binding';
|
import { controller, get, post, requestParam } from '@cc-server/binding';
|
||||||
import * as docker from '@dayu/docker-api'
|
|
||||||
|
|
||||||
const GROUP_LABEL = 'pw.yumc.group.name'
|
const GROUP_LABEL = 'pw.yumc.group.name'
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ import * as path from 'path'
|
|||||||
// process.env.DOCKER_HOST = '/var/run/docker.sock'
|
// process.env.DOCKER_HOST = '/var/run/docker.sock'
|
||||||
// process.env.DOCKER_HOST = 'https://dscli.miaowoo.cc'
|
// process.env.DOCKER_HOST = 'https://dscli.miaowoo.cc'
|
||||||
// process.env.DOCKER_HOST = 'http://172.20.0.90:2378'
|
// process.env.DOCKER_HOST = 'http://172.20.0.90:2378'
|
||||||
// process.env.DOCKER_HOST = 'https://dcli.yumc.pw'
|
process.env.DOCKER_HOST = 'https://dcli.yumc.pw'
|
||||||
process.env.DOCKER_HOST = 'http://172.16.200.12:8376'
|
// process.env.DOCKER_HOST = 'http://172.16.200.12:8376'
|
||||||
let CC_MONGO_URL = process.env.CC_MONGO_URL
|
let CC_MONGO_URL = process.env.CC_MONGO_URL
|
||||||
let CC_MONGO_DB = process.env.CC_MONGO_DB
|
let CC_MONGO_DB = process.env.CC_MONGO_DB
|
||||||
// if (process.env.local) {
|
// if (process.env.local) {
|
||||||
|
@ -33,6 +33,13 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"commands": [
|
"commands": [
|
||||||
|
{
|
||||||
|
"command": "dayu.task.logs",
|
||||||
|
"title": "View Task Logs",
|
||||||
|
"icon": {
|
||||||
|
"dark": "src/images/browser.svg"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"command": "dayu.container.logs",
|
"command": "dayu.container.logs",
|
||||||
"title": "View Container Logs",
|
"title": "View Container Logs",
|
||||||
@ -55,6 +62,11 @@
|
|||||||
"when": "view == docker-explorer && viewItem =~ /.*\"type\":\"CONTAINER\".*/",
|
"when": "view == docker-explorer && viewItem =~ /.*\"type\":\"CONTAINER\".*/",
|
||||||
"group": "inline"
|
"group": "inline"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"command": "dayu.task.logs",
|
||||||
|
"when": "view == docker-explorer && viewItem =~ /.*\"type\":\"TASK\".*/",
|
||||||
|
"group": "inline"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"command": "dayu.service.logs",
|
"command": "dayu.service.logs",
|
||||||
"when": "view == docker-explorer && viewItem =~ /.*\"type\":\"SERVICE\".*/",
|
"when": "view == docker-explorer && viewItem =~ /.*\"type\":\"SERVICE\".*/",
|
||||||
|
@ -13,6 +13,8 @@ enum Type {
|
|||||||
NETWORK = "NETWORK",
|
NETWORK = "NETWORK",
|
||||||
STACKS = "STACKS",
|
STACKS = "STACKS",
|
||||||
STACK = "STACK",
|
STACK = "STACK",
|
||||||
|
TASKS = "TASKS",
|
||||||
|
TASK = "TASK",
|
||||||
NODES = "NODES",
|
NODES = "NODES",
|
||||||
NODE = "NODE"
|
NODE = "NODE"
|
||||||
}
|
}
|
||||||
@ -26,6 +28,11 @@ export class DockerProvider extends BaseProvider<vscode.TreeItem> {
|
|||||||
constructor(context: vscode.ExtensionContext) {
|
constructor(context: vscode.ExtensionContext) {
|
||||||
super();
|
super();
|
||||||
context.subscriptions.push(
|
context.subscriptions.push(
|
||||||
|
vscode.commands.registerCommand('dayu.task.logs', (item: vscode.TreeItem) => {
|
||||||
|
let value: ItemContextValue = JSON.parse(item.contextValue);
|
||||||
|
let url = `https://dayu-api.miaowoo.cc/logs/?action=task&data=${value.data.id}`;
|
||||||
|
return vscode.commands.executeCommand("mini-browser.openUrl", url);
|
||||||
|
}),
|
||||||
vscode.commands.registerCommand('dayu.container.logs', (item: vscode.TreeItem) => {
|
vscode.commands.registerCommand('dayu.container.logs', (item: vscode.TreeItem) => {
|
||||||
let value: ItemContextValue = JSON.parse(item.contextValue);
|
let value: ItemContextValue = JSON.parse(item.contextValue);
|
||||||
let url = `https://dayu-api.miaowoo.cc/logs/?action=container&data=${value.data.id}`;
|
let url = `https://dayu-api.miaowoo.cc/logs/?action=container&data=${value.data.id}`;
|
||||||
@ -81,6 +88,20 @@ export class DockerProvider extends BaseProvider<vscode.TreeItem> {
|
|||||||
tooltip: JSON.stringify(n, undefined, 2)
|
tooltip: JSON.stringify(n, undefined, 2)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
case Type.TASKS:
|
||||||
|
let tasks = await docker.task.list();
|
||||||
|
return tasks.map(n => {
|
||||||
|
return this.createTreeItem({
|
||||||
|
label: n.ID,
|
||||||
|
context: {
|
||||||
|
type: Type.NODE,
|
||||||
|
data: {
|
||||||
|
id: n.ID
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tooltip: JSON.stringify(n, undefined, 2)
|
||||||
|
})
|
||||||
|
})
|
||||||
case Type.CONTAINERS:
|
case Type.CONTAINERS:
|
||||||
let containers = await docker.container.list();
|
let containers = await docker.container.list();
|
||||||
return containers.map(c => {
|
return containers.map(c => {
|
||||||
|
Loading…
Reference in New Issue
Block a user