diff --git a/src/sql/workbench/contrib/notebook/browser/notebookActions.ts b/src/sql/workbench/contrib/notebook/browser/notebookActions.ts index f7013791cf..ef63990038 100644 --- a/src/sql/workbench/contrib/notebook/browser/notebookActions.ts +++ b/src/sql/workbench/contrib/notebook/browser/notebookActions.ts @@ -455,10 +455,15 @@ export class AttachToDropdown extends SelectBox { **/ public async openConnectionDialog(useProfile: boolean = false): Promise { try { + // Get all providers to show all available connections in connection dialog + let providers = this.model.getApplicableConnectionProviderIds(this.model.clientSession.kernel.name); + for (let alias of this.model.kernelAliases) { + providers = providers.concat(this.model.getApplicableConnectionProviderIds(alias)); + } let connection = await this._connectionDialogService.openDialogAndWait(this._connectionManagementService, { connectionType: ConnectionType.temporary, - providers: this.model.getApplicableConnectionProviderIds(this.model.clientSession.kernel.name) + providers: providers }, useProfile ? this.model.connectionProfile : undefined); diff --git a/src/sql/workbench/services/notebook/browser/models/notebookModel.ts b/src/sql/workbench/services/notebook/browser/models/notebookModel.ts index e186898417..e47001aaec 100644 --- a/src/sql/workbench/services/notebook/browser/models/notebookModel.ts +++ b/src/sql/workbench/services/notebook/browser/models/notebookModel.ts @@ -593,8 +593,10 @@ export class NotebookModel extends Disposable implements INotebookModel { let providers = this._capabilitiesService.providers; for (const server in providers) { let alias = providers[server].connection.notebookKernelAlias; + // Add Notebook Kernel Alias to kernelAliases if (alias && this._kernelAliases.indexOf(alias) === -1) { this._kernelAliases.push(providers[server].connection.notebookKernelAlias); + this._kernelDisplayNameToConnectionProviderIds.set(alias, [providers[server].connection.providerId]); } } } @@ -640,7 +642,7 @@ export class NotebookModel extends Disposable implements INotebookModel { let standardKernels = find(this._standardKernels, kernel => this._defaultKernel && kernel.displayName === this._defaultKernel.display_name); let connectionProviderIds = standardKernels ? standardKernels.connectionProviderIds : undefined; let providerFeatures = this._capabilitiesService.getCapabilities(profile.providerName); - if (connectionProviderIds.length > 0) { + if (connectionProviderIds.length > 0 && this._currentKernelAlias) { this._currentKernelAlias = providerFeatures?.connection.notebookKernelAlias; this._kernelDisplayNameToConnectionProviderIds.set(this._currentKernelAlias, [profile.providerName]); }