feat: add service log

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2019-12-28 15:06:07 +08:00
parent aed21b2ff6
commit 752e771285
12 changed files with 161 additions and 106 deletions

View File

@@ -11,8 +11,7 @@
"Other"
],
"activationEvents": [
"onView:docker-explorer",
"onView:openfaas-explorer"
"onView:docker-explorer"
],
"main": "./dist/extension.js",
"contributes": {
@@ -30,10 +29,6 @@
{
"id": "docker-explorer",
"name": "Docker"
},
{
"id": "openfaas-explorer",
"name": "OpenFaaS"
}
]
},
@@ -44,6 +39,13 @@
"icon": {
"dark": "src/images/browser.svg"
}
},
{
"command": "dayu.service.logs",
"title": "View Service Logs",
"icon": {
"dark": "src/images/browser.svg"
}
}
],
"menus": {
@@ -52,6 +54,11 @@
"command": "dayu.container.logs",
"when": "view == docker-explorer && viewItem =~ /.*\"type\":\"CONTAINER\".*/",
"group": "inline"
},
{
"command": "dayu.service.logs",
"when": "view == docker-explorer && viewItem =~ /.*\"type\":\"SERVICE\".*/",
"group": "inline"
}
]
}
@@ -67,13 +74,14 @@
"dependencies": {
"@dayu/docker-api": "^0.0.1",
"@dayu/faas": "^0.0.1",
"axios": "^0.19.0"
"axios": "^0.19.0",
"lerna": "^3.14.1"
},
"devDependencies": {
"@types/mocha": "^2.2.42",
"@types/node": "^10.12.21",
"tslint": "^5.12.1",
"typescript": "^3.3.1",
"vscode": "^1.1.28"
"vscode": "^1.1.36"
}
}

View File

@@ -1,8 +1,9 @@
// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
import * as vscode from 'vscode';
process.env.DOCKER_HOST = 'https://dscli.miaowoo.cc';
import { OpenFaasProvider, DockerProvider } from './provider';
// process.env.DOCKER_HOST = 'https://dscli.miaowoo.cc';
process.env.DOCKER_HOST = 'http://172.16.200.12:8376';
import { DockerProvider } from './provider';
// this method is called when your extension is activated
// your extension is activated the very first time the command is executed
@@ -11,7 +12,7 @@ export function activate(context: vscode.ExtensionContext) {
// tslint:disable-next-line: no-unused-expression
new DockerProvider(context);
// tslint:disable-next-line: no-unused-expression
new OpenFaasProvider(context);
// new OpenFaasProvider(context);
}
// this method is called when your extension is deactivated

View File

@@ -1,6 +1,6 @@
import * as vscode from 'vscode'
export class CteateItemOpt {
export class CreateItemOpt {
label: string;
context?: ItemContextValue;
state?: vscode.TreeItemCollapsibleState = vscode.TreeItemCollapsibleState.None;
@@ -18,7 +18,7 @@ export abstract class BaseProvider<T> implements vscode.TreeDataProvider<T> {
abstract getTreeItem(element: T): vscode.TreeItem | Thenable<vscode.TreeItem>;
abstract getChildren(element?: T | undefined): vscode.ProviderResult<T[]>;
createTreeItem(opts: CteateItemOpt) {
createTreeItem(opts: CreateItemOpt) {
let item = new vscode.TreeItem(opts.label, opts.state);
item.contextValue = JSON.stringify(opts.context);
if (opts.icon) { item.iconPath = `src/images/${opts.icon}.svg` }

View File

@@ -28,7 +28,12 @@ export class DockerProvider extends BaseProvider<vscode.TreeItem> {
context.subscriptions.push(
vscode.commands.registerCommand('dayu.container.logs', (item: vscode.TreeItem) => {
let value: ItemContextValue = JSON.parse(item.contextValue);
let url = `https://dayu-api.miaowoo.cc?action=container&data=${value.data.id}`;
let url = `https://dayu-api.miaowoo.cc/logs/?action=container&data=${value.data.id}`;
return vscode.commands.executeCommand("mini-browser.openUrl", url);
}),
vscode.commands.registerCommand('dayu.service.logs', (item: vscode.TreeItem) => {
let value: ItemContextValue = JSON.parse(item.contextValue);
let url = `https://dayu-api.miaowoo.cc/logs/?action=service&data=${value.data.id}`;
return vscode.commands.executeCommand("mini-browser.openUrl", url);
}),
vscode.window.registerTreeDataProvider('docker-explorer', this)
@@ -146,7 +151,7 @@ export class DockerProvider extends BaseProvider<vscode.TreeItem> {
let list: string[] = value.data.list;
return list.map(s => {
return this.createTreeItem({
label: s
label: s.split('_')[1]
})
})
default: