@@ -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 }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 => {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user