mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Feature/viewlet cmsapis (#4312)
* first set of changes to experiment the registration of cms related apis * Adding cms service entry to workbench * Adding basic functionality for add remove reg servers and group * Returning relative path as part of RegServerResult as string * Removing the cms apis from core. Having mssql extension expose them for cms extension * Propogating the backend name changes to apis * Fixing some missing sqlops references * Adding a sqltools service version with CMS apis available
This commit is contained in:
committed by
Anthony Dresser
parent
d00c3780a6
commit
ddce7731b9
102
extensions/mssql/src/cms/cmsService.ts
Normal file
102
extensions/mssql/src/cms/cmsService.ts
Normal file
@@ -0,0 +1,102 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import * as azdata from 'azdata';
|
||||
import * as constants from '../constants';
|
||||
import * as contracts from '../contracts';
|
||||
import { AppContext } from '../appContext';
|
||||
import { ConnectParams } from 'dataprotocol-client/lib/protocol';
|
||||
import { SqlOpsDataClient } from 'dataprotocol-client';
|
||||
import { ListRegisteredServersResult } from '../api/mssqlapis';
|
||||
|
||||
export class CmsService {
|
||||
|
||||
constructor(private appContext: AppContext, private client: SqlOpsDataClient) {
|
||||
|
||||
this.appContext.registerService<CmsService>(constants.CmsService, this);
|
||||
}
|
||||
|
||||
createCmsServer(name: string, description:string, connectiondetails: azdata.ConnectionInfo, ownerUri: string): Thenable<ListRegisteredServersResult> {
|
||||
let connectparams: ConnectParams = { ownerUri: ownerUri, connection: connectiondetails };
|
||||
let cmsparams: contracts.CreateCentralManagementServerParams = { registeredServerName: name, registeredServerDescription: description, connectParams: connectparams};
|
||||
|
||||
return this.client.sendRequest(contracts.CreateCentralManagementServerRequest.type, cmsparams).then(
|
||||
r => {
|
||||
return r;
|
||||
},
|
||||
e => {
|
||||
this.client.logFailedRequest(contracts.CreateCentralManagementServerRequest.type, e);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
getRegisteredServers(ownerUri: string, relativePath: string): Thenable<ListRegisteredServersResult> {
|
||||
let params: contracts.ListRegisteredServersParams = { parentOwnerUri: ownerUri, relativePath: relativePath };
|
||||
return this.client.sendRequest(contracts.ListRegisteredServersRequest.type, params).then(
|
||||
r => {
|
||||
return r;
|
||||
},
|
||||
e => {
|
||||
this.client.logFailedRequest(contracts.ListRegisteredServersRequest.type, e);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
addRegisteredServer (ownerUri: string, relativePath: string, registeredServerName: string, registeredServerDescription:string, connectionDetails:azdata.ConnectionInfo): Thenable<boolean> {
|
||||
let params: contracts.AddRegisteredServerParams = { parentOwnerUri: ownerUri, relativePath: relativePath, registeredServerName: registeredServerName, registeredServerDescription: registeredServerDescription, registeredServerConnectionDetails: connectionDetails };
|
||||
return this.client.sendRequest(contracts.AddRegisteredServerRequest.type, params).then(
|
||||
r => {
|
||||
return r;
|
||||
},
|
||||
e => {
|
||||
this.client.logFailedRequest(contracts.AddRegisteredServerRequest.type, e);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
removeRegisteredServer (ownerUri: string, relativePath: string, registeredServerName: string): Thenable<boolean> {
|
||||
let params: contracts.RemoveRegisteredServerParams = { parentOwnerUri: ownerUri, relativePath: relativePath, registeredServerName: registeredServerName };
|
||||
return this.client.sendRequest(contracts.RemoveRegisteredServerRequest.type, params).then(
|
||||
r => {
|
||||
return r;
|
||||
},
|
||||
e => {
|
||||
this.client.logFailedRequest(contracts.RemoveRegisteredServerRequest.type, e);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
addServerGroup (ownerUri: string, relativePath: string, groupName: string, groupDescription:string): Thenable<boolean> {
|
||||
let params: contracts.AddServerGroupParams = { parentOwnerUri: ownerUri, relativePath: relativePath, groupName: groupName, groupDescription: groupDescription };
|
||||
return this.client.sendRequest(contracts.AddServerGroupRequest.type, params).then(
|
||||
r => {
|
||||
return r;
|
||||
},
|
||||
e => {
|
||||
this.client.logFailedRequest(contracts.AddServerGroupRequest.type, e);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
removeServerGroup (ownerUri: string, relativePath: string, groupName: string): Thenable<boolean> {
|
||||
let params: contracts.RemoveServerGroupParams = { parentOwnerUri: ownerUri, relativePath: relativePath, groupName: groupName };
|
||||
return this.client.sendRequest(contracts.RemoveServerGroupRequest.type, params).then(
|
||||
r => {
|
||||
return r;
|
||||
},
|
||||
e => {
|
||||
this.client.logFailedRequest(contracts.RemoveServerGroupRequest.type, e);
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user