From 90d8c37f91da1a09f09555c30a7571b0aafd69b2 Mon Sep 17 00:00:00 2001 From: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com> Date: Thu, 31 Jan 2019 09:50:27 -0800 Subject: [PATCH] Fix a not implemented issue when we were not sanitizing kernel display name (#3869) Fixing an issue where we got a 501 Not Implemented because kernel display name sanitization was not occurring with the _defaultKernel case. In addition, changed a method name to make it more clear, and removed an erroneous error that would occur every time you opened a notebook without any existing connections. I'm just removing this, as it adds no value. --- src/sql/parts/notebook/models/notebookModel.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/sql/parts/notebook/models/notebookModel.ts b/src/sql/parts/notebook/models/notebookModel.ts index 85667c2fff..2a2d70faf3 100644 --- a/src/sql/parts/notebook/models/notebookModel.ts +++ b/src/sql/parts/notebook/models/notebookModel.ts @@ -396,7 +396,7 @@ export class NotebookModel extends Disposable implements INotebookModel { } public changeKernel(displayName: string): void { - let spec = this.getSpecNameFromDisplayName(displayName); + let spec = this.getKernelSpecFromDisplayName(displayName); this.doChangeKernel(spec); } @@ -416,7 +416,6 @@ export class NotebookModel extends Disposable implements INotebookModel { // TODO should revert kernels dropdown }); } - this.notifyError(localize('noActiveClientSessionFound', 'No active client session was found.')); return Promise.resolve(); } @@ -472,6 +471,10 @@ export class NotebookModel extends Disposable implements INotebookModel { this._kernelsChangedEmitter.fire(session.kernel); }); }); + let spec = this.getKernelSpecFromDisplayName(this._defaultKernel.display_name); + if (spec) { + this._defaultKernel = spec; + } this.doChangeKernel(this._defaultKernel); } } catch (err) { @@ -495,7 +498,7 @@ export class NotebookModel extends Disposable implements INotebookModel { return notebook!.metadata!.kernelspec; } - private getSpecNameFromDisplayName(displayName: string): nb.IKernelSpec { + private getKernelSpecFromDisplayName(displayName: string): nb.IKernelSpec { displayName = this.sanitizeDisplayName(displayName); let kernel: nb.IKernelSpec = this.specs.kernels.find(k => k.display_name.toLowerCase() === displayName.toLowerCase()); if (!kernel) {