Fix #4356 New Notebook from connection doesn't connect (#4364)

* Fix #4356 New Notebook from connection doesn't connect
Fix new notebook error by passing profile instead of ID.
- I could've just sent the ID over, but this fix sets the stage for disconnected connections to work (since we have enough info to properly connect).
- There's a bug in NotebookModel blocking the disconnected connection part working, but Yurong's in progress fixes will unblock this. Hence checking in as-is and working to properly unblock once that's in.

* Support connection profile in commandline service
- Added new context API for things that want to work on commandline and object explorer
- Refactored commandlineservice slightly to be async & have a simpler execution flow (far fewer if/else statements)

* Fix unit tests
- Fixed 2 issues raised by tests (sholdn't do new query if no profile passed, shouldn't error on new query failing)
- Updated unit tests to pass as expected given changes to the APIs.
This commit is contained in:
Kevin Cunnane
2019-03-12 12:14:08 -07:00
committed by GitHub
parent 77a3be6fd7
commit 7226f25c67
16 changed files with 166 additions and 143 deletions

View File

@@ -65,11 +65,11 @@ describe('Notebook Integration Test', function (): void {
await ensureJupyterInstalled();
// Given a connection to a server exists
let connectionId = await connectToSparkIntegrationServer();
let connectionProfile = await connectToSparkIntegrationServer();
// When I open a Spark notebook and run the cell
let notebook = await azdata.nb.showNotebookDocument(uri, {
connectionId: connectionId
connectionProfile: connectionProfile
});
should(notebook.document.cells).have.length(1);
let ran = await notebook.runCell(notebook.document.cells[0]);
@@ -90,7 +90,7 @@ describe('Notebook Integration Test', function (): void {
});
});
async function connectToSparkIntegrationServer(): Promise<string> {
async function connectToSparkIntegrationServer(): Promise<azdata.IConnectionProfile> {
assert.ok(process.env.BACKEND_HOSTNAME, 'BACKEND_HOSTNAME, BACKEND_USERNAME, BACKEND_PWD must be set using ./tasks/setbackenvariables.sh or .\\tasks\\setbackendvaraibles.bat');
let connInfo: azdata.connection.Connection = {
options: {
@@ -114,7 +114,7 @@ async function connectToSparkIntegrationServer(): Promise<string> {
let activeConnections = await azdata.connection.getActiveConnections();
should(activeConnections).have.length(1);
return result.connectionId;
return <azdata.IConnectionProfile><any>connInfo;
}
function writeNotebookToFile(pythonNotebook: INotebook): vscode.Uri {