From 8b5ce753e4e2d58caa1505817875fa389263c218 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Wed, 4 Sep 2019 13:49:08 -0700 Subject: [PATCH] More BDC updates (#6990) --- .../resources/dark/folder_inverse.svg | 1 - .../dark/sql_bigdata_cluster_inverse.svg | 46 ----- .../resources/light/folder.svg | 1 - .../resources/light/sql_bigdata_cluster.svg | 45 ----- .../src/bigDataCluster/constants.ts | 13 -- .../dialog/addControllerDialog.ts | 24 +-- .../dialog/bdcDashboardModel.ts | 4 +- .../dialog/bdcDashboardOverviewPage.ts | 20 +- .../tree/controllerTreeDataProvider.ts | 20 +- .../bigDataCluster/tree/controllerTreeNode.ts | 189 +----------------- extensions/big-data-cluster/src/extension.ts | 4 +- 11 files changed, 23 insertions(+), 344 deletions(-) delete mode 100644 extensions/big-data-cluster/resources/dark/folder_inverse.svg delete mode 100644 extensions/big-data-cluster/resources/dark/sql_bigdata_cluster_inverse.svg delete mode 100644 extensions/big-data-cluster/resources/light/folder.svg delete mode 100644 extensions/big-data-cluster/resources/light/sql_bigdata_cluster.svg diff --git a/extensions/big-data-cluster/resources/dark/folder_inverse.svg b/extensions/big-data-cluster/resources/dark/folder_inverse.svg deleted file mode 100644 index f94d427cb1..0000000000 --- a/extensions/big-data-cluster/resources/dark/folder_inverse.svg +++ /dev/null @@ -1 +0,0 @@ -folder_inverse_16x16 \ No newline at end of file diff --git a/extensions/big-data-cluster/resources/dark/sql_bigdata_cluster_inverse.svg b/extensions/big-data-cluster/resources/dark/sql_bigdata_cluster_inverse.svg deleted file mode 100644 index dbc823e9f0..0000000000 --- a/extensions/big-data-cluster/resources/dark/sql_bigdata_cluster_inverse.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - image/svg+xml - - sql_bigdata_cluster - - - - - - - sql_bigdata_cluster - - - - diff --git a/extensions/big-data-cluster/resources/light/folder.svg b/extensions/big-data-cluster/resources/light/folder.svg deleted file mode 100644 index 8442363a76..0000000000 --- a/extensions/big-data-cluster/resources/light/folder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/extensions/big-data-cluster/resources/light/sql_bigdata_cluster.svg b/extensions/big-data-cluster/resources/light/sql_bigdata_cluster.svg deleted file mode 100644 index fcf1133186..0000000000 --- a/extensions/big-data-cluster/resources/light/sql_bigdata_cluster.svg +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - image/svg+xml - - sql_bigdata_cluster - - - - - - - sql_bigdata_cluster - - - - diff --git a/extensions/big-data-cluster/src/bigDataCluster/constants.ts b/extensions/big-data-cluster/src/bigDataCluster/constants.ts index 7cab730ced..ccd93cc50f 100644 --- a/extensions/big-data-cluster/src/bigDataCluster/constants.ts +++ b/extensions/big-data-cluster/src/bigDataCluster/constants.ts @@ -10,9 +10,6 @@ import * as vscode from 'vscode'; export enum BdcItemType { controllerRoot = 'bigDataClusters.itemType.controllerRootNode', controller = 'bigDataClusters.itemType.controllerNode', - folder = 'bigDataClusters.itemType.folderNode', - sqlMaster = 'bigDataClusters.itemType.sqlMasterNode', - EndPoint = 'bigDataClusters.itemType.endPointNode', addController = 'bigDataClusters.itemType.addControllerNode', loadingController = 'bigDataClusters.itemType.loadingControllerNode' } @@ -26,8 +23,6 @@ export class IconPathHelper { private static extensionContext: vscode.ExtensionContext; public static controllerNode: IconPath; - public static folderNode: IconPath; - public static sqlMasterNode: IconPath; public static copy: IconPath; public static refresh: IconPath; public static status_ok: IconPath; @@ -40,14 +35,6 @@ export class IconPathHelper { dark: IconPathHelper.extensionContext.asAbsolutePath('resources/dark/bigDataCluster_controller.svg'), light: IconPathHelper.extensionContext.asAbsolutePath('resources/light/bigDataCluster_controller.svg') }; - IconPathHelper.folderNode = { - dark: IconPathHelper.extensionContext.asAbsolutePath('resources/dark/folder_inverse.svg'), - light: IconPathHelper.extensionContext.asAbsolutePath('resources/light/folder.svg') - }; - IconPathHelper.sqlMasterNode = { - dark: IconPathHelper.extensionContext.asAbsolutePath('resources/dark/sql_bigdata_cluster_inverse.svg'), - light: IconPathHelper.extensionContext.asAbsolutePath('resources/light/sql_bigdata_cluster.svg') - }; IconPathHelper.copy = { light: IconPathHelper.extensionContext.asAbsolutePath('resources/light/copy.svg'), dark: IconPathHelper.extensionContext.asAbsolutePath('resources/dark/copy_inverse.svg') diff --git a/extensions/big-data-cluster/src/bigDataCluster/dialog/addControllerDialog.ts b/extensions/big-data-cluster/src/bigDataCluster/dialog/addControllerDialog.ts index 0a04c0f096..0e687eeeac 100644 --- a/extensions/big-data-cluster/src/bigDataCluster/dialog/addControllerDialog.ts +++ b/extensions/big-data-cluster/src/bigDataCluster/dialog/addControllerDialog.ts @@ -11,7 +11,6 @@ import { getEndPoints, ControllerError } from '../controller/clusterControllerAp import { ControllerTreeDataProvider } from '../tree/controllerTreeDataProvider'; import { TreeNode } from '../tree/treeNode'; import { showErrorMessage } from '../utils'; -import { EndpointModel } from '../controller/apiGenerated'; const localize = nls.loadMessageBundle(); @@ -22,32 +21,26 @@ export class AddControllerDialogModel { constructor( public treeDataProvider: ControllerTreeDataProvider, public node?: TreeNode, - public prefilledClusterName?: string, public prefilledUrl?: string, public prefilledUsername?: string, public prefilledPassword?: string, public prefilledRememberPassword?: boolean ) { - this.prefilledClusterName = prefilledClusterName || (node && node['clusterName']); this.prefilledUrl = prefilledUrl || (node && node['url']); this.prefilledUsername = prefilledUsername || (node && node['username']); this.prefilledPassword = prefilledPassword || (node && node['password']); this.prefilledRememberPassword = prefilledRememberPassword || (node && node['rememberPassword']); } - public async onComplete(clusterName: string, url: string, username: string, password: string, rememberPassword: boolean): Promise { + public async onComplete(url: string, username: string, password: string, rememberPassword: boolean): Promise { try { // We pre-fetch the endpoints here to verify that the information entered is correct (the user is able to connect) let response = await getEndPoints(url, username, password, true); if (response && response.endPoints) { - let masterInstance: EndpointModel = undefined; - if (response.endPoints) { - masterInstance = response.endPoints.find(e => e.name && e.name === 'sql-server-master'); - } if (this._canceled) { return; } - this.treeDataProvider.addController(clusterName, url, username, password, rememberPassword, masterInstance); + this.treeDataProvider.addController(url, username, password, rememberPassword); await this.treeDataProvider.saveControllers(); } } catch (error) { @@ -76,7 +69,6 @@ export class AddControllerDialog { private dialog: azdata.window.Dialog; private uiModelBuilder: azdata.ModelBuilder; - private clusterNameInputBox: azdata.InputBoxComponent; private urlInputBox: azdata.InputBoxComponent; private usernameInputBox: azdata.InputBoxComponent; private passwordInputBox: azdata.InputBoxComponent; @@ -95,11 +87,6 @@ export class AddControllerDialog { this.dialog.registerContent(async view => { this.uiModelBuilder = view.modelBuilder; - this.clusterNameInputBox = this.uiModelBuilder.inputBox() - .withProperties({ - placeHolder: localize('textClusterNameLower', 'mssql-cluster'), - value: this.model.prefilledUrl || 'mssql-cluster' - }).component(); this.urlInputBox = this.uiModelBuilder.inputBox() .withProperties({ placeHolder: localize('textUrlLower', 'url'), @@ -127,10 +114,6 @@ export class AddControllerDialog { .withFormItems([{ components: [ { - component: this.clusterNameInputBox, - title: localize('textClusterNameCapital', 'Cluster Name'), - required: true - }, { component: this.urlInputBox, title: localize('textUrlCapital', 'URL'), required: true @@ -160,14 +143,13 @@ export class AddControllerDialog { } private async validate(): Promise { - let clusterName = this.clusterNameInputBox && this.clusterNameInputBox.value; let url = this.urlInputBox && this.urlInputBox.value; let username = this.usernameInputBox && this.usernameInputBox.value; let password = this.passwordInputBox && this.passwordInputBox.value; let rememberPassword = this.passwordInputBox && !!this.rememberPwCheckBox.checked; try { - await this.model.onComplete(clusterName, url, username, password, rememberPassword); + await this.model.onComplete(url, username, password, rememberPassword); return true; } catch (error) { showErrorMessage(error); diff --git a/extensions/big-data-cluster/src/bigDataCluster/dialog/bdcDashboardModel.ts b/extensions/big-data-cluster/src/bigDataCluster/dialog/bdcDashboardModel.ts index ad193a1c4f..0a119ba275 100644 --- a/extensions/big-data-cluster/src/bigDataCluster/dialog/bdcDashboardModel.ts +++ b/extensions/big-data-cluster/src/bigDataCluster/dialog/bdcDashboardModel.ts @@ -22,7 +22,7 @@ export class BdcDashboardModel { public onDidUpdateEndpoints = this._onDidUpdateEndpoints.event; public onDidUpdateBdcStatus = this._onDidUpdateBdcStatus.event; - constructor(public clusterName: string, private url: string, private username: string, private password: string) { + constructor(private url: string, private username: string, private password: string) { this.refresh(); } @@ -72,7 +72,7 @@ export class BdcDashboardModel { // We default to sa - if that doesn't work then callers of this should open up a connection // dialog so the user can enter in the correct connection information return { - connectionName: '', + connectionName: undefined, serverName: sqlServerMasterEndpoint.endpoint, databaseName: undefined, userName: 'sa', diff --git a/extensions/big-data-cluster/src/bigDataCluster/dialog/bdcDashboardOverviewPage.ts b/extensions/big-data-cluster/src/bigDataCluster/dialog/bdcDashboardOverviewPage.ts index 17e661ac81..4fa2f2b3d8 100644 --- a/extensions/big-data-cluster/src/bigDataCluster/dialog/bdcDashboardOverviewPage.ts +++ b/extensions/big-data-cluster/src/bigDataCluster/dialog/bdcDashboardOverviewPage.ts @@ -65,32 +65,22 @@ export class BdcDashboardOverviewPage { // Row 1 const row1 = view.modelBuilder.flexContainer().withLayout({ flexFlow: 'row', height: '30px', alignItems: 'center' }).component(); - // Cluster Name - const clusterNameLabel = view.modelBuilder.text().withProperties({ value: localize('bdc.dashboard.clusterName', "Cluster Name :") }).component(); - const clusterNameValue = view.modelBuilder.text().withProperties({ value: this.model.clusterName }).component(); - row1.addItem(clusterNameLabel, { CSSStyles: { 'width': '100px', 'min-width': '100px', 'user-select': 'none', 'font-weight': 'bold' } }); - row1.addItem(clusterNameValue, { CSSStyles: { 'user-select': 'text' } }); - - rootContainer.addItem(row1, { CSSStyles: { 'padding-left': '10px', 'border-top': 'solid 1px #ccc', 'box-sizing': 'border-box', 'user-select': 'text' } }); - - // Row 2 - const row2 = view.modelBuilder.flexContainer().withLayout({ flexFlow: 'row', height: '30px', alignItems: 'center' }).component(); // Cluster State const clusterStateLabel = view.modelBuilder.text().withProperties({ value: localize('bdc.dashboard.clusterState', "Cluster State :") }).component(); const clusterStateValue = view.modelBuilder.text().withProperties({ CSSStyles: { 'user-select': 'text' } }).component(); this.clusterStateLoadingComponent = view.modelBuilder.loadingComponent().withItem(clusterStateValue).component(); - row2.addItem(clusterStateLabel, { CSSStyles: { 'width': '125px', 'min-width': '125px', 'user-select': 'none', 'font-weight': 'bold' } }); - row2.addItem(this.clusterStateLoadingComponent, { CSSStyles: { 'width': '125px', 'min-width': '125px', 'user-select': 'none' } }); + row1.addItem(clusterStateLabel, { CSSStyles: { 'width': '125px', 'min-width': '125px', 'user-select': 'none', 'font-weight': 'bold' } }); + row1.addItem(this.clusterStateLoadingComponent, { CSSStyles: { 'width': '125px', 'min-width': '125px', 'user-select': 'none' } }); // Health Status const healthStatusLabel = view.modelBuilder.text().withProperties({ value: localize('bdc.dashboard.healthStatus', "Health Status :") }).component(); const healthStatusValue = view.modelBuilder.text().withProperties({ CSSStyles: { 'user-select': 'text' } }).component(); this.clusterHealthStatusLoadingComponent = view.modelBuilder.loadingComponent().withItem(healthStatusValue).component(); - row2.addItem(healthStatusLabel, { CSSStyles: { 'width': '125px', 'min-width': '125px', 'user-select': 'none', 'font-weight': 'bold' } }); - row2.addItem(this.clusterHealthStatusLoadingComponent, { CSSStyles: { 'width': '125px', 'min-width': '125px', 'user-select': 'none' } }); + row1.addItem(healthStatusLabel, { CSSStyles: { 'width': '125px', 'min-width': '125px', 'user-select': 'none', 'font-weight': 'bold' } }); + row1.addItem(this.clusterHealthStatusLoadingComponent, { CSSStyles: { 'width': '125px', 'min-width': '125px', 'user-select': 'none' } }); - rootContainer.addItem(row2, { CSSStyles: { 'padding-left': '10px', 'border-bottom': 'solid 1px #ccc', 'box-sizing': 'border-box', 'user-select': 'text' } }); + rootContainer.addItem(row1, { CSSStyles: { 'padding-left': '10px', 'border-bottom': 'solid 1px #ccc', 'box-sizing': 'border-box', 'user-select': 'text' } }); // ############ // # OVERVIEW # diff --git a/extensions/big-data-cluster/src/bigDataCluster/tree/controllerTreeDataProvider.ts b/extensions/big-data-cluster/src/bigDataCluster/tree/controllerTreeDataProvider.ts index 88878d022f..2163e0a46a 100644 --- a/extensions/big-data-cluster/src/bigDataCluster/tree/controllerTreeDataProvider.ts +++ b/extensions/big-data-cluster/src/bigDataCluster/tree/controllerTreeDataProvider.ts @@ -13,12 +13,10 @@ import { AddControllerNode } from './addControllerNode'; import { ControllerRootNode, ControllerNode } from './controllerTreeNode'; import { showErrorMessage } from '../utils'; import { LoadingControllerNode } from './loadingControllerNode'; -import { EndpointModel } from '../controller/apiGenerated'; const CredentialNamespace = 'clusterControllerCredentials'; interface IControllerInfoSlim { - clusterName: string; url: string; username: string; password?: string; @@ -58,15 +56,13 @@ export class ControllerTreeDataProvider implements vscode.TreeDataProvider { - let controllers = this.root.children.map(e => { + let controllers = this.root.children.map((e): IControllerInfoSlim => { let controller = e as ControllerNode; - return { - clusterName: controller.clusterName, + return { url: controller.url, username: controller.username, password: controller.password, @@ -146,9 +141,8 @@ export class ControllerTreeDataProvider implements vscode.TreeDataProvider { - return { - clusterName: e.clusterName, + let controllersWithoutPassword = controllers.map((e): IControllerInfoSlim => { + return { url: e.url, username: e.username, rememberPassword: e.rememberPassword diff --git a/extensions/big-data-cluster/src/bigDataCluster/tree/controllerTreeNode.ts b/extensions/big-data-cluster/src/bigDataCluster/tree/controllerTreeNode.ts index f00515d380..31f6a7f62e 100644 --- a/extensions/big-data-cluster/src/bigDataCluster/tree/controllerTreeNode.ts +++ b/extensions/big-data-cluster/src/bigDataCluster/tree/controllerTreeNode.ts @@ -11,9 +11,6 @@ import * as nls from 'vscode-nls'; import { IControllerTreeChangeHandler } from './controllerTreeChangeHandler'; import { TreeNode } from './treeNode'; import { IconPathHelper, BdcItemType, IconPath } from '../constants'; -import { getEndPoints } from '../controller/clusterControllerApi'; -import { showErrorMessage } from '../utils'; -import { EndpointModel } from '../controller/apiGenerated'; const localize = nls.loadMessageBundle(); @@ -44,9 +41,7 @@ export abstract class ControllerTreeNode extends TreeNode { let item: vscode.TreeItem = {}; item.id = this.id; item.label = this.label; - item.collapsibleState = this.isLeaf ? - vscode.TreeItemCollapsibleState.None : - vscode.TreeItemCollapsibleState.Collapsed; + item.collapsibleState = vscode.TreeItemCollapsibleState.None; item.iconPath = this._iconPath; item.contextValue = this._nodeType; item.tooltip = this._description; @@ -103,23 +98,19 @@ export abstract class ControllerTreeNode extends TreeNode { export class ControllerRootNode extends ControllerTreeNode { - private _masterNodeFactory: SqlMasterNodeFactory; - constructor(treeChangeHandler: IControllerTreeChangeHandler) { super('root', undefined, treeChangeHandler, undefined, BdcItemType.controllerRoot); - this._masterNodeFactory = new SqlMasterNodeFactory(); } public async getChildren(): Promise { return this.children as ControllerNode[]; } - public addControllerNode(clusterName: string, + public addControllerNode( url: string, username: string, password: string, - rememberPassword: boolean, - masterInstance?: EndpointModel + rememberPassword: boolean ): void { let controllerNode = this.getExistingControllerNode(url, username); if (controllerNode) { @@ -127,13 +118,9 @@ export class ControllerRootNode extends ControllerTreeNode { controllerNode.rememberPassword = rememberPassword; controllerNode.clearChildren(); } else { - controllerNode = new ControllerNode(clusterName, url, username, password, rememberPassword, undefined, this, this.treeChangeHandler, undefined); + controllerNode = new ControllerNode(url, username, password, rememberPassword, undefined, this, this.treeChangeHandler, undefined); this.addChild(controllerNode); } - - if (masterInstance) { - controllerNode.addSqlMasterNode(masterInstance.endpoint, masterInstance.description); - } } public deleteControllerNode(url: string, username: string): ControllerNode { @@ -156,16 +143,11 @@ export class ControllerRootNode extends ControllerTreeNode { let nodes = this.children as ControllerNode[]; return nodes.find(e => e.url === url && e.username === username); } - - public get sqlMasterNodeFactory(): SqlMasterNodeFactory { - return this._masterNodeFactory; - } } export class ControllerNode extends ControllerTreeNode { constructor( - private _clusterName: string, private _url: string, private _username: string, private _password: string, @@ -178,7 +160,6 @@ export class ControllerNode extends ControllerTreeNode { super(label, parent, treeChangeHandler, description, BdcItemType.controller, IconPathHelper.controllerNode); this.label = label; this.description = description; - } public async getChildren(): Promise { @@ -190,18 +171,6 @@ export class ControllerNode extends ControllerTreeNode { vscode.commands.executeCommand('bigDataClusters.command.addController', this); return this.children as ControllerTreeNode[]; } - - try { - let response = await getEndPoints(this._url, this._username, this._password, true); - if (response && response.endPoints) { - let master = response.endPoints.find(e => e.name && e.name === 'sql-server-master'); - this.addSqlMasterNode(master.endpoint, master.description); - } - return this.children as ControllerTreeNode[]; - } catch (error) { - showErrorMessage(error); - return this.children as ControllerTreeNode[]; - } } public static toIpAndPort(url: string): string { @@ -211,37 +180,6 @@ export class ControllerNode extends ControllerTreeNode { return url.trim().replace(/ /g, '').replace(/^.+\:\/\//, '').replace(/:(\d+)$/, ',$1'); } - public addSqlMasterNode(endPointAddress: string, description: string): void { - let epFolder = this.getEndPointFolderNode(); - let node = (this.root as ControllerRootNode).sqlMasterNodeFactory - .getSqlMasterNode(endPointAddress, epFolder, undefined, this.treeChangeHandler, description); - epFolder.addChild(node); - } - - private getEndPointFolderNode(): FolderNode { - let label = localize('textSqlServers', 'SQL Servers'); - let epFolderNode = this.children.find(e => e instanceof FolderNode && e.label === label); - if (!epFolderNode) { - epFolderNode = new FolderNode(label, this, this.treeChangeHandler); - this.addChild(epFolderNode); - } - return epFolderNode as FolderNode; - } - - public getTreeItem(): vscode.TreeItem { - let item: vscode.TreeItem = super.getTreeItem(); - item.collapsibleState = vscode.TreeItemCollapsibleState.Collapsed; - return item; - } - - public get clusterName() { - return this._clusterName; - } - - public set clusterName(clusterName: string) { - this._clusterName = clusterName; - } - public get url() { return this._url; } @@ -291,122 +229,3 @@ export class ControllerNode extends ControllerTreeNode { } } -export class FolderNode extends ControllerTreeNode { - constructor( - label: string, - parent: ControllerTreeNode, - treeChangeHandler: IControllerTreeChangeHandler - ) { - super(label, parent, treeChangeHandler, label, BdcItemType.folder, IconPathHelper.folderNode); - } -} - -export class SqlMasterNode extends ControllerTreeNode { - private static readonly _role: string = 'sql-server-master'; - private _username: string; - private _password: string; - - constructor( - private _endPointAddress: string, - parent: ControllerTreeNode, - label: string, - treeChangeHandler: IControllerTreeChangeHandler, - description?: string, - ) { - super(label, parent, treeChangeHandler, description, BdcItemType.sqlMaster, IconPathHelper.sqlMasterNode); - this._username = 'sa'; - this.label = label; - this.description = description; - } - - private getControllerPassword(): string { - if (!this._password) { - let current: TreeNode = this; - while (current && !(current instanceof ControllerNode)) { - current = current.parent; - } - this._password = current && current instanceof ControllerNode ? current.password : undefined; - } - return this._password; - } - - public getTreeItem(): vscode.TreeItem { - let item = super.getTreeItem(); - let connectionProfile: azdata.IConnectionProfile = { - id: this.id, - connectionName: '', - serverName: this._endPointAddress, - databaseName: '', - userName: this._username, - password: this.getControllerPassword(), - authenticationType: 'SqlLogin', - savePassword: false, - groupFullName: '', - groupId: '', - providerName: 'MSSQL', - saveProfile: false, - options: {} - }; - return Object.assign(item, { - payload: connectionProfile, - childProvider: 'MSSQL', - type: 'Server' - }); - } - - public get role() { - return SqlMasterNode._role; - } - - public get endPointAddress() { - return this._endPointAddress; - } - - public set endPointAddress(endPointAddress: string) { - this._endPointAddress = endPointAddress; - } - - public set label(label: string) { - super.label = label || `master: ${this._endPointAddress} (${this._username})`; - } - - public get label(): string { - return super.label; - } - - public set description(description: string) { - super.description = description || super.label; - } - - public get description(): string { - return super.description; - } -} - -export class SqlMasterNodeFactory { - private registry: {} = {}; - - public getSqlMasterNode( - endPointAddress: string, - parent: ControllerTreeNode, - label: string, - treeChangeHandler: IControllerTreeChangeHandler, - description?: string - ): SqlMasterNode { - let id = this.createRegistryId(endPointAddress, 'sa'); - if (!this.registry[id]) { - this.registry[id] = new SqlMasterNode(endPointAddress, parent, label, treeChangeHandler, description); - } else { - let node = this.registry[id] as SqlMasterNode; - node.parent = parent; - node.label = label; - node.treeChangeHandler = treeChangeHandler; - description = description; - } - return this.registry[id] as SqlMasterNode; - } - - private createRegistryId(endPointAddress: string, username: string): string { - return `${endPointAddress}::${username}`; - } -} diff --git a/extensions/big-data-cluster/src/extension.ts b/extensions/big-data-cluster/src/extension.ts index 7fbaf3e491..e0a131c0e8 100644 --- a/extensions/big-data-cluster/src/extension.ts +++ b/extensions/big-data-cluster/src/extension.ts @@ -55,8 +55,8 @@ function registerCommands(context: vscode.ExtensionContext, treeDataProvider: Co }); vscode.commands.registerCommand(ManageControllerCommand, async (node: ControllerNode) => { - const title: string = `${localize('bdc.dashboard.title', "Big Data Cluster Dashboard -")} ${ControllerNode.toIpAndPort(node.url)} ${localize('bdc.dash', "-")} ${node.clusterName}`; - const dashboard: BdcDashboard = new BdcDashboard(title, new BdcDashboardModel(node.clusterName, node.url, node.username, node.password)); + const title: string = `${localize('bdc.dashboard.title', "Big Data Cluster Dashboard -")} ${ControllerNode.toIpAndPort(node.url)}`; + const dashboard: BdcDashboard = new BdcDashboard(title, new BdcDashboardModel(node.url, node.username, node.password)); dashboard.showDashboard(); }); }