mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-09 09:42:34 -05:00
* Merge from vscode a234f13c45b40a0929777cb440ee011b7549eed2 * update distro * fix layering * update distro * fix tests
56 lines
2.2 KiB
TypeScript
56 lines
2.2 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { nb } from 'azdata';
|
|
import * as vscode from 'vscode';
|
|
import { ServerConnection, SessionManager } from '@jupyterlab/services';
|
|
|
|
import { JupyterSessionManager } from './jupyterSessionManager';
|
|
import { ApiWrapper } from '../common/apiWrapper';
|
|
import { LocalJupyterServerManager } from './jupyterServerManager';
|
|
|
|
export class JupyterNotebookManager implements nb.NotebookManager, vscode.Disposable {
|
|
protected _serverSettings: ServerConnection.ISettings;
|
|
private _sessionManager: JupyterSessionManager;
|
|
|
|
constructor(private _serverManager: LocalJupyterServerManager, sessionManager?: JupyterSessionManager, private apiWrapper: ApiWrapper = new ApiWrapper()) {
|
|
let pythonEnvVarPath = this._serverManager && this._serverManager.jupyterServerInstallation && this._serverManager.jupyterServerInstallation.pythonEnvVarPath;
|
|
this._sessionManager = sessionManager || new JupyterSessionManager(pythonEnvVarPath);
|
|
this._serverManager.onServerStarted(() => {
|
|
this.setServerSettings(this._serverManager.serverSettings);
|
|
});
|
|
|
|
}
|
|
public get contentManager(): nb.ContentManager {
|
|
return undefined;
|
|
}
|
|
|
|
public get sessionManager(): nb.SessionManager {
|
|
return this._sessionManager;
|
|
}
|
|
|
|
public get serverManager(): nb.ServerManager {
|
|
return this._serverManager;
|
|
}
|
|
|
|
public get serverSettings(): ServerConnection.ISettings {
|
|
return this._serverSettings;
|
|
}
|
|
|
|
public setServerSettings(settings: Partial<ServerConnection.ISettings>): void {
|
|
this._serverSettings = ServerConnection.makeSettings(settings);
|
|
this._sessionManager.setJupyterSessionManager(new SessionManager({ serverSettings: this._serverSettings }));
|
|
}
|
|
|
|
dispose() {
|
|
if (this._sessionManager) {
|
|
this._sessionManager.shutdownAll().then(() => this._sessionManager.dispose());
|
|
}
|
|
if (this._serverManager) {
|
|
this._serverManager.stopServer().then(success => undefined, error => this.apiWrapper.showErrorMessage(error));
|
|
}
|
|
}
|
|
}
|