From 306af5645b4546399ec7b58ad641345ef41c2c12 Mon Sep 17 00:00:00 2001 From: Lewis Sanchez <87730006+lewis-sanchez@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:20:21 -0700 Subject: [PATCH] Consolidate 2 context endpoints to just one (#24276) --- extensions/mssql/src/contracts.ts | 4 --- extensions/mssql/src/features.ts | 17 +-------- src/sql/azdata.proposed.d.ts | 13 ------- .../api/browser/mainThreadDataProtocol.ts | 3 +- .../api/common/extHostDataProtocol.ts | 6 +--- .../api/common/sqlExtHost.protocol.ts | 4 --- .../common/serverContextualizationService.ts | 35 ++----------------- 7 files changed, 5 insertions(+), 77 deletions(-) diff --git a/extensions/mssql/src/contracts.ts b/extensions/mssql/src/contracts.ts index 88b1267337..643208542b 100644 --- a/extensions/mssql/src/contracts.ts +++ b/extensions/mssql/src/contracts.ts @@ -1567,10 +1567,6 @@ export interface ServerContextualizationParams { ownerUri: string; } -export namespace GenerateServerContextualizationRequest { - export const type = new RequestType('metadata/generateServerContext'); -} - export namespace GetServerContextualizationRequest { export const type = new RequestType('metadata/getServerContext'); } diff --git a/extensions/mssql/src/features.ts b/extensions/mssql/src/features.ts index ea2e8f4755..23bd298ad9 100644 --- a/extensions/mssql/src/features.ts +++ b/extensions/mssql/src/features.ts @@ -1310,7 +1310,7 @@ export class ExecutionPlanServiceFeature extends SqlOpsFeature { */ export class ServerContextualizationServiceFeature extends SqlOpsFeature { private static readonly messagesTypes: RPCMessageType[] = [ - contracts.GenerateServerContextualizationRequest.type + contracts.GetServerContextualizationRequest.type ]; constructor(client: SqlOpsDataClient) { @@ -1330,20 +1330,6 @@ export class ServerContextualizationServiceFeature extends SqlOpsFeature => { - const params: contracts.ServerContextualizationParams = { - ownerUri: ownerUri - }; - - return client.sendRequest(contracts.GenerateServerContextualizationRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(contracts.GenerateServerContextualizationRequest.type, e); - return Promise.reject(e); - } - ); - }; - const getServerContextualization = (ownerUri: string): Thenable => { const params: contracts.ServerContextualizationParams = { ownerUri: ownerUri @@ -1360,7 +1346,6 @@ export class ServerContextualizationServiceFeature extends SqlOpsFeature; - /** * Gets server context, which can be in the form of create scripts but is left up each provider. * @param ownerUri The URI of the connection to get context for. diff --git a/src/sql/workbench/api/browser/mainThreadDataProtocol.ts b/src/sql/workbench/api/browser/mainThreadDataProtocol.ts index d0de82ca4f..61bc7ffa37 100644 --- a/src/sql/workbench/api/browser/mainThreadDataProtocol.ts +++ b/src/sql/workbench/api/browser/mainThreadDataProtocol.ts @@ -573,10 +573,9 @@ export class MainThreadDataProtocol extends Disposable implements MainThreadData }); } - // Database server contextualization handler + // Server contextualization handler public $registerServerContextualizationProvider(providerId: string, handle: number): void { this._serverContextualizationService.registerProvider(providerId, { - generateServerContextualization: (ownerUri: string) => this._proxy.$generateServerContextualization(handle, ownerUri), getServerContextualization: (ownerUri: string) => this._proxy.$getServerContextualization(handle, ownerUri) }); } diff --git a/src/sql/workbench/api/common/extHostDataProtocol.ts b/src/sql/workbench/api/common/extHostDataProtocol.ts index 8a102b1766..622bf792d5 100644 --- a/src/sql/workbench/api/common/extHostDataProtocol.ts +++ b/src/sql/workbench/api/common/extHostDataProtocol.ts @@ -970,11 +970,7 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape { return this._resolveProvider(handle).isExecutionPlan(value); } - // Database Server Contextualization API - - public override $generateServerContextualization(handle: number, ownerUri: string): Thenable { - return this._resolveProvider(handle).generateServerContextualization(ownerUri); - } + // Server Contextualization API public override $getServerContextualization(handle: number, ownerUri: string): Thenable { return this._resolveProvider(handle).getServerContextualization(ownerUri); diff --git a/src/sql/workbench/api/common/sqlExtHost.protocol.ts b/src/sql/workbench/api/common/sqlExtHost.protocol.ts index 8c65c87257..e9ff853903 100644 --- a/src/sql/workbench/api/common/sqlExtHost.protocol.ts +++ b/src/sql/workbench/api/common/sqlExtHost.protocol.ts @@ -595,10 +595,6 @@ export abstract class ExtHostDataProtocolShape { * Determines if the provided value is an execution plan and returns the appropriate file extension. */ $isExecutionPlan(handle: number, value: string): Thenable { throw ni(); } - /** - * Generates server context. - */ - $generateServerContextualization(handle: number, ownerUri: string): Thenable { throw ni(); } /** * Gets server context. */ diff --git a/src/sql/workbench/services/contextualization/common/serverContextualizationService.ts b/src/sql/workbench/services/contextualization/common/serverContextualizationService.ts index a7f9a9a8f0..10c8b68e5d 100644 --- a/src/sql/workbench/services/contextualization/common/serverContextualizationService.ts +++ b/src/sql/workbench/services/contextualization/common/serverContextualizationService.ts @@ -75,43 +75,12 @@ export class ServerContextualizationService extends Disposable implements IServe const getServerContextualizationResult = await this.getServerContextualization(uri); if (getServerContextualizationResult.context) { - this._logService.info(`Server contextualization was previously generated for the URI (${uri}) connection, so sending that to Copilot for context.`); + this._logService.info(`Server contextualization was retrieved for the URI (${uri}) connection, so sending that to Copilot for context.`); await this.sendServerContextualizationToCopilot(getServerContextualizationResult.context); } else { - this._logService.info(`Server contextualization was not previously generated for the URI (${uri}) connection. Generating now...`); - - const generateServerContextualizationResult = await this.generateServerContextualization(uri); - if (generateServerContextualizationResult.context) { - this._logService.info(`Server contextualization was generated for the URI (${uri}) connection, so sending that to Copilot.`); - - await this.sendServerContextualizationToCopilot(generateServerContextualizationResult.context); - } - else { - this._logService.warn(`Server contextualization was not generated for the URI (${uri}) connection, so no context will be sent to Copilot.`); - } - } - } - - /** - * Generates server context - * @param ownerUri The URI of the connection to generate context for. - */ - private async generateServerContextualization(ownerUri: string): Promise { - const providerName = this._connectionManagementService.getProviderIdFromUri(ownerUri); - const handler = this.getProvider(providerName); - if (handler) { - this._logService.info(`Generating server contextualization for ${ownerUri}`); - - return await handler.generateServerContextualization(ownerUri); - } - else { - this._logService.info(`No server contextualization provider found for ${ownerUri}`); - - return Promise.resolve({ - context: undefined - }); + this._logService.warn(`Server contextualization was not generated for the URI (${uri}) connection, so no context will be sent to Copilot.`); } }