mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-06-22 11:25:06 -04:00
* added agent notebooks, notebook history view and view materialized notebook button * Got a basic UI running for viewing notebook history * made some changes to make UI look good * Added new notebook dialog * Added new notebook Dialog * Added create notebook dialog * Added edit and delete notebook job * Added some notebook history features * Added new notebook job icons, fixed a minor bug in openmaterializednotebookAPI and added fixed the schedule Picker API. * Fixed Bugs in Notebook Grid expansion * Fixed Notebook table highlighting and grid generation is done using code. * fixed some UI bugs * Added changes to reflect sqltoolservice api * Fixed some localize keys * Made changes in the PR and added ability to open Template Notebooks from notebook history view. * Added pin and renaming to notebook history * made some library calls async * fixed an import bug caused by merging from master * Validation in NotebookJobDialog * Added entry points for scheduling notebooks on file explorer and notebook editor * Handled no active connections and a small bug in collapsing grid * fix a bug in scheduling notebook from explorer and toolbar * setting up agent providers from connection now * changed modals * Reupload edited template * Add dialog info, solved an edit bug and localized UI strings. * Bug fixes in UI, notebook renaming and editing template on fly. * fixed a bug that failed editing notebook jobs from notebook jobs table * Fixed a cyclic dependency, made strings const and some other changes in the PR * Made some cyclic dependency and some fixes from PR * made some changes mentioned in the PR * Changed storage database health text * Changed the sqltoolservice version to the point to the latest build.
70 lines
2.9 KiB
TypeScript
70 lines
2.9 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
'use strict';
|
|
|
|
import * as azdata from 'azdata';
|
|
import * as fs from 'fs';
|
|
import { promisify } from 'util';
|
|
|
|
|
|
export class AgentUtils {
|
|
|
|
private static _agentService: azdata.AgentServicesProvider;
|
|
private static _connectionService: azdata.ConnectionProvider;
|
|
private static _queryProvider: azdata.QueryProvider;
|
|
|
|
public static async setupProvidersFromConnection(connection?: azdata.connection.Connection) {
|
|
this._agentService = azdata.dataprotocol.getProvider<azdata.AgentServicesProvider>(connection.providerName, azdata.DataProviderType.AgentServicesProvider);
|
|
this._connectionService = azdata.dataprotocol.getProvider<azdata.ConnectionProvider>(connection.providerName, azdata.DataProviderType.ConnectionProvider);
|
|
this._queryProvider = azdata.dataprotocol.getProvider<azdata.QueryProvider>(connection.providerName, azdata.DataProviderType.QueryProvider);
|
|
}
|
|
|
|
public static async getAgentService(): Promise<azdata.AgentServicesProvider> {
|
|
if (!AgentUtils._agentService) {
|
|
let currentConnection = await azdata.connection.getCurrentConnection();
|
|
this._agentService = azdata.dataprotocol.getProvider<azdata.AgentServicesProvider>(currentConnection.providerId, azdata.DataProviderType.AgentServicesProvider);
|
|
}
|
|
return AgentUtils._agentService;
|
|
}
|
|
|
|
public static async getDatabases(ownerUri: string): Promise<string[]> {
|
|
if (!AgentUtils._connectionService) {
|
|
let currentConnection = await azdata.connection.getCurrentConnection();
|
|
this._connectionService = azdata.dataprotocol.getProvider<azdata.ConnectionProvider>(currentConnection.providerId, azdata.DataProviderType.ConnectionProvider);
|
|
}
|
|
return AgentUtils._connectionService.listDatabases(ownerUri).then(result => {
|
|
if (result && result.databaseNames && result.databaseNames.length > 0) {
|
|
return result.databaseNames;
|
|
}
|
|
});
|
|
}
|
|
|
|
public static async getQueryProvider(): Promise<azdata.QueryProvider> {
|
|
if (!AgentUtils._queryProvider) {
|
|
let currentConnection = await azdata.connection.getCurrentConnection();
|
|
this._queryProvider = azdata.dataprotocol.getProvider<azdata.QueryProvider>(currentConnection.providerId, azdata.DataProviderType.QueryProvider);
|
|
}
|
|
return this._queryProvider;
|
|
}
|
|
|
|
}
|
|
|
|
export function exists(path: string): Promise<boolean> {
|
|
return promisify(fs.exists)(path);
|
|
}
|
|
|
|
export function mkdir(path: string): Promise<void> {
|
|
return promisify(fs.mkdir)(path);
|
|
}
|
|
|
|
export function unlink(path: string): Promise<void> {
|
|
return promisify(fs.unlink)(path);
|
|
}
|
|
|
|
export function writeFile(path: string, data: string): Promise<void> {
|
|
return promisify(fs.writeFile)(path, data);
|
|
}
|