diff --git a/extensions/cms/src/apiWrapper.ts b/extensions/cms/src/apiWrapper.ts index 45a9041c55..7c05ee19a2 100644 --- a/extensions/cms/src/apiWrapper.ts +++ b/extensions/cms/src/apiWrapper.ts @@ -4,16 +4,8 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as nls from 'vscode-nls'; import * as vscode from 'vscode'; import * as azdata from 'azdata'; -import * as mssql from '../../mssql/src/api/mssqlapis'; -import * as Utils from './cmsResource/utils'; -import { ICmsResourceNodeInfo } from './cmsResource/tree/baseTreeNodes'; - -const localize = nls.loadMessageBundle(); -const cmsProvider: string = 'MSSQL-CMS'; -const mssqlProvider: string = 'MSSQL'; /** * Wrapper class to act as a facade over VSCode and Data APIs and allow us to test / mock callbacks into @@ -24,9 +16,6 @@ const mssqlProvider: string = 'MSSQL'; */ export class ApiWrapper { - private _cmsService: mssql.CmsService; - private _registeredCmsServers: ICmsResourceNodeInfo[]; - // Data APIs public registerConnectionProvider(provider: azdata.ConnectionProvider): vscode.Disposable { return azdata.dataprotocol.registerConnectionProvider(provider); diff --git a/extensions/cms/src/cmsResource/cmsResourceCommands.ts b/extensions/cms/src/cmsResource/cmsResourceCommands.ts index 453b4985b1..5832541dc1 100644 --- a/extensions/cms/src/cmsResource/cmsResourceCommands.ts +++ b/extensions/cms/src/cmsResource/cmsResourceCommands.ts @@ -74,11 +74,17 @@ export function addRegisteredServerCommand(appContext: AppContext, tree: CmsReso return; } let relativePath = node instanceof CmsResourceTreeNode ? '' : node.relativePath; - let serverName = node instanceof CmsResourceTreeNode ? node.connection.options.server : null; + let serverName = node instanceof CmsResourceTreeNode ? node.connection.options.registeredServerName === '' + ? node.connection.options.server : node.connection.options.registeredServerName : null; await appContext.cmsUtils.addRegisteredServer(relativePath, node.ownerUri, serverName).then((result) => { if (result) { tree.notifyNodeChanged(node); } + }, (error) => { + // error out + let errorText = localize('cms.errors.addRegisterServerFail', 'Could not add the Registered Server {0}', error); + appContext.apiWrapper.showErrorMessage(errorText); + return; }); }); } diff --git a/extensions/cms/src/cmsResource/tree/cmsResourceTreeNode.ts b/extensions/cms/src/cmsResource/tree/cmsResourceTreeNode.ts index b34ad08b49..0885d32335 100644 --- a/extensions/cms/src/cmsResource/tree/cmsResourceTreeNode.ts +++ b/extensions/cms/src/cmsResource/tree/cmsResourceTreeNode.ts @@ -75,8 +75,11 @@ export class CmsResourceTreeNode extends CmsResourceTreeNodeBase { } else { return [CmsResourceMessageTreeNode.create(CmsResourceTreeNode.noResourcesLabel, undefined)]; } - } + }, (error) => { + let errorText = localize('cms.errors.expandCmsFail', 'The Central Management Server {0} could not be found or is offline', this.name); + this.appContext.apiWrapper.showErrorMessage(errorText); + return []; }); } catch { return []; diff --git a/extensions/cms/src/cmsResource/tree/treeProvider.ts b/extensions/cms/src/cmsResource/tree/treeProvider.ts index d6fa2bb47e..55f216ea2c 100644 --- a/extensions/cms/src/cmsResource/tree/treeProvider.ts +++ b/extensions/cms/src/cmsResource/tree/treeProvider.ts @@ -34,7 +34,7 @@ export class CmsResourceTreeProvider implements TreeDataProvider, ICms try { // Call to collect all locally saved CMS servers // to determine whether the system has been initialized. - let cmsConfig = this._appContext.apiWrapper.getConfiguration(); + let cmsConfig = this._appContext.cmsUtils.getConfiguration(); let cachedServers = cmsConfig.servers ? cmsConfig.servers : []; if (cachedServers && cachedServers.length > 0) { let servers = []; @@ -68,7 +68,7 @@ export class CmsResourceTreeProvider implements TreeDataProvider, ICms server.ownerUri = undefined, server.connection.options.password = ''; }); - await this._appContext.apiWrapper.setConfiguration(toSaveCmsServers); + await this._appContext.cmsUtils.setConfiguration(toSaveCmsServers); return registeredCmsServers.map((server) => { return new CmsResourceTreeNode( server.name, diff --git a/extensions/cms/src/cmsUtils.ts b/extensions/cms/src/cmsUtils.ts index 6afff0b444..06aa8cf825 100644 --- a/extensions/cms/src/cmsUtils.ts +++ b/extensions/cms/src/cmsUtils.ts @@ -92,7 +92,9 @@ export class CmsUtils { } return provider.createCmsServer(name, description, connection, ownerUri).then((result) => { if (result) { - return result; + return Promise.resolve(result); + } else { + return Promise.reject(null); } }); } @@ -155,9 +157,12 @@ export class CmsUtils { } else { let registeredServerName = connection.options.registeredServerName === '' ? connection.options.server : connection.options.registeredServerName; let result = await provider.addRegisteredServer(ownerUri, relativePath, registeredServerName, connection.options.registeredServerDescription, connection); - return result; + if (result) { + return Promise.resolve(result); + } else { + return Promise.reject(registeredServerName); + } } - } }); }