SQL Kernel Improvements/Removing Spark Code from Core/Attach to Changes (#3790)

* Scenarios work besides loading saved kernel

* Fix compilation issue

* Save and load functional

* Fix loading kernesl issue when sql kernel is not enabled

* Fix language mapping to not be hardcoded any longer

* Remove unnecessary comment

* PR Comments vol. 1

* Code cleanup, use ConnectionProfile instead of IConnectionProfile when accessing serverName

* PR changes vol. 2

* One final comment for PR

* Fix linting issue
This commit is contained in:
Chris LaFreniere
2019-01-25 18:54:04 -08:00
committed by GitHub
parent ea67859de7
commit 43be88a37c
29 changed files with 768 additions and 627 deletions

View File

@@ -125,6 +125,16 @@ export class ExtHostNotebook implements ExtHostNotebookShape {
return session.changeKernel(kernelInfo).then(kernel => this.saveKernel(kernel));
}
$configureKernel(sessionId: number, kernelInfo: sqlops.nb.IKernelSpec): Thenable<void> {
let session = this._getAdapter<sqlops.nb.ISession>(sessionId);
return session.configureKernel(kernelInfo).then(() => null);
}
$configureConnection(sessionId: number, connection: sqlops.IConnectionProfile): Thenable<void> {
let session = this._getAdapter<sqlops.nb.ISession>(sessionId);
return session.configureConnection(connection).then(() => null);
}
$getKernelReadyStatus(kernelId: number): Thenable<sqlops.nb.IInfoReply> {
let kernel = this._getAdapter<sqlops.nb.IKernel>(kernelId);
return kernel.ready.then(success => kernel.info);

View File

@@ -168,6 +168,7 @@ export class ExtHostNotebookDocumentsAndEditors implements ExtHostNotebookDocume
options.position = showOptions.viewColumn;
options.providerId = showOptions.providerId;
options.connectionId = showOptions.connectionId;
options.defaultKernel = showOptions.defaultKernel;
}
let id = await this._proxy.$tryShowNotebookDocument(uri, options);
let editor = this.getEditor(id);

View File

@@ -288,11 +288,30 @@ class SessionWrapper implements sqlops.nb.ISession {
return this.doChangeKernel(kernelInfo);
}
configureKernel(kernelInfo: sqlops.nb.IKernelSpec): Thenable<void> {
return this.doConfigureKernel(kernelInfo);
}
configureConnection(connection: sqlops.IConnectionProfile): Thenable<void> {
if (connection['capabilitiesService'] !== undefined) {
connection['capabilitiesService'] = undefined;
}
return this.doConfigureConnection(connection);
}
private async doChangeKernel(kernelInfo: sqlops.nb.IKernelSpec): Promise<sqlops.nb.IKernel> {
let kernelDetails = await this._proxy.ext.$changeKernel(this.sessionDetails.sessionId, kernelInfo);
this._kernel = new KernelWrapper(this._proxy, kernelDetails);
return this._kernel;
}
private async doConfigureKernel(kernelInfo: sqlops.nb.IKernelSpec): Promise<void> {
await this._proxy.ext.$configureKernel(this.sessionDetails.sessionId, kernelInfo);
}
private async doConfigureConnection(connection: sqlops.IConnectionProfile): Promise<void> {
await this._proxy.ext.$configureConnection(this.sessionDetails.sessionId, connection);
}
}
class KernelWrapper implements sqlops.nb.IKernel {

View File

@@ -25,7 +25,7 @@ import {
import { NotebookInputModel, NotebookInput } from 'sql/parts/notebook/notebookInput';
import { INotebookService, INotebookEditor, DEFAULT_NOTEBOOK_PROVIDER } from 'sql/workbench/services/notebook/common/notebookService';
import { TPromise } from 'vs/base/common/winjs.base';
import { getProvidersForFileName } from 'sql/parts/notebook/notebookUtils';
import { getProvidersForFileName, getStandardKernelsForProvider } from 'sql/parts/notebook/notebookUtils';
import { ISingleNotebookEditOperation } from 'sql/workbench/api/common/sqlExtHostTypes';
import { disposed } from 'vs/base/common/errors';
import { ICellModel, NotebookContentChange } from 'sql/parts/notebook/models/modelInterfaces';
@@ -332,6 +332,11 @@ export class MainThreadNotebookDocumentsAndEditors extends Disposable implements
}
model.providers = providers;
model.providerId = providerId;
model.defaultKernel = options && options.defaultKernel;
model.providers.forEach(provider => {
let standardKernels = getStandardKernelsForProvider(provider, this._notebookService);
model.standardKernels = standardKernels;
});
let input = this._instantiationService.createInstance(NotebookInput, undefined, model);
let editor = await this._editorService.openEditor(input, editorOptions, viewColumnToEditorGroup(this._editorGroupService, options.position));

View File

@@ -773,6 +773,8 @@ export interface ExtHostNotebookShape {
// Session APIs
$changeKernel(sessionId: number, kernelInfo: sqlops.nb.IKernelSpec): Thenable<INotebookKernelDetails>;
$configureKernel(sessionId: number, kernelInfo: sqlops.nb.IKernelSpec): Thenable<void>;
$configureConnection(sessionId: number, connection: sqlops.IConnectionProfile): Thenable<void>;
// Kernel APIs
$getKernelReadyStatus(kernelId: number): Thenable<sqlops.nb.IInfoReply>;
@@ -829,6 +831,7 @@ export interface INotebookShowOptions {
preview?: boolean;
providerId?: string;
connectionId?: string;
defaultKernel?: sqlops.nb.IKernelSpec;
}
export interface ExtHostNotebookDocumentsAndEditorsShape {