Add view properties to VM tree items (#152)

This commit is contained in:
Nathan 2020-08-25 18:33:47 -07:00 коммит произвёл GitHub
Родитель a8b70a0c53
Коммит b8dd5a79ba
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
5 изменённых файлов: 43 добавлений и 9 удалений

Просмотреть файл

@ -39,14 +39,15 @@
"azureVirtualMachines.selectSubscriptions",
"onCommand:azureVirtualMachines.refresh",
"onCommand:azureVirtualMachines.loadMore",
"azureVirtualMachines.createVirtualMachine",
"azureVirtualMachines.createVirtualMachineAdvanced",
"azureVirtualMachines.startVirtualMachine",
"azureVirtualMachines.restartVirtualMachine",
"azureVirtualMachines.stopVirtualMachine",
"azureVirtualMachines.addSshKey",
"azureVirtualMachines.deleteVirtualMachine",
"onCommand:azureVirtualMachines.createVirtualMachine",
"onCommand:azureVirtualMachines.createVirtualMachineAdvanced",
"onCommand:azureVirtualMachines.startVirtualMachine",
"onCommand:azureVirtualMachines.restartVirtualMachine",
"onCommand:azureVirtualMachines.stopVirtualMachine",
"onCommand:azureVirtualMachines.addSshKey",
"onCommand:azureVirtualMachines.deleteVirtualMachine",
"onCommand:azureVirtualMachines.openInPortal",
"onCommand:azureVirtualMachines.viewProperties",
"onView:azVmTree"
],
"main": "./main.js",
@ -122,6 +123,11 @@
"command": "azureVirtualMachines.copyIpAddress",
"title": "%azureVirtualMachines.copyIpAddress%",
"category": "Azure Virtual Machines"
},
{
"command": "azureVirtualMachines.viewProperties",
"title": "%azureVirtualMachines.viewProperties%",
"category": "Azure Virtual Machines"
}
],
"viewsContainers": {
@ -186,10 +192,15 @@
"group": "1@1"
},
{
"command": "azureVirtualMachines.openInPortal",
"command": "azureVirtualMachines.viewProperties",
"when": "view == azVmTree && viewItem == azVmVirtualMachine",
"group": "3@1"
},
{
"command": "azureVirtualMachines.openInPortal",
"when": "view == azVmTree && viewItem == azVmVirtualMachine",
"group": "3@2"
},
{
"command": "azureVirtualMachines.startVirtualMachine",
"when": "view == azVmTree && viewItem == azVmVirtualMachine",

Просмотреть файл

@ -12,5 +12,6 @@
"azureVirtualMachines.addSshKey": "Add SSH Key...",
"azureVirtualMachines.enableOutputTimestamps": "Prepends each line displayed in the output channel with a timestamp.",
"azureVirtualMachines.promptForPassphrase": "Prompts for a passphrase when creating a Linux Azure Virtual Machine.",
"azureVirtualMachines.copyIpAddress": "Copy IP Address"
"azureVirtualMachines.copyIpAddress": "Copy IP Address",
"azureVirtualMachines.viewProperties": "View Properties"
}

Просмотреть файл

@ -0,0 +1,16 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IActionContext, openReadOnlyJson } from 'vscode-azureextensionui';
import { ext } from '../extensionVariables';
import { VirtualMachineTreeItem } from '../tree/VirtualMachineTreeItem';
export async function viewProperties(context: IActionContext, node?: VirtualMachineTreeItem): Promise<void> {
if (!node) {
node = await ext.tree.showTreeItemPicker<VirtualMachineTreeItem>(VirtualMachineTreeItem.contextValue, context);
}
await openReadOnlyJson(node, node.data);
}

Просмотреть файл

@ -18,6 +18,7 @@ import { openInPortal } from './commands/openInPortal';
import { restartVirtualMachine } from './commands/restartVirtualMachine';
import { startVirtualMachine } from './commands/startVirtualMachine';
import { stopVirtualMachine } from './commands/stopVirtualMachine';
import { viewProperties } from './commands/viewProperties';
import { ext } from './extensionVariables';
import { AzureAccountTreeItem } from './tree/AzureAccountTreeItem';
import { SubscriptionTreeItem } from './tree/SubscriptionTreeItem';
@ -54,6 +55,7 @@ export async function activateInternal(context: vscode.ExtensionContext, perfSta
registerCommand('azureVirtualMachines.addSshKey', addSshKey);
registerCommand('azureVirtualMachines.deleteVirtualMachine', async (actionContext: IActionContext, node?: SubscriptionTreeItem) => await deleteNode(actionContext, VirtualMachineTreeItem.contextValue, node));
registerCommand('azureVirtualMachines.copyIpAddress', copyIpAddress);
registerCommand('azureVirtualMachines.viewProperties', viewProperties);
});
return createApiProvider([<AzureExtensionApi>{

Просмотреть файл

@ -40,6 +40,10 @@ export class VirtualMachineTreeItem extends AzureTreeItem {
return this._state?.toLowerCase() !== 'running' ? this._state : undefined;
}
public get data(): ComputeManagementModels.VirtualMachine {
return this.virtualMachine;
}
public static contextValue: string = 'azVmVirtualMachine';
public readonly contextValue: string = VirtualMachineTreeItem.contextValue;
public virtualMachine: ComputeManagementModels.VirtualMachine;