mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-14 17:22:20 -05:00
* Added Azure Log Analytics resource for generating AAD Token. * Fixed AzureResource * Removed debug code from connectionManagementService * Moved AzureLogAnalytics from AzureResource enum in azdata.d.ts to azdata.proposed.d.ts. Added azureLogAnalyticsResource to all azureSettings in providerSettings.ts * Updated endpoint for generating AAD Token for LogAnalytics for UsGov, UsNat, and China * Initial Commit of Azure Monitor Extension * Added extension name to azuremonitor package strings * Removed azureMonitor resource from germanyCloud in providerSettings * Added logic to exclude menuItems in object explorer for LogAnalytics * Changed exe from AzureMonitor to Kusto * Added if clause for queryName for new queries * Changed queryWindow name from KustoQuery to KQLQuery for Kusto and LogAnalytics. * Added LogAnalytics for setTaskBarContent * Added serialization and telemetry feature classes to AzureMonitor. Added references for azdata and vscode. * Added azure monitor light and dark icons * Added config for Dashboard in package.json * Added workspace information to dashboard * Added language support for LogAnalytics * Added Notebook support * Added Hide flag to package.json for databaseName * Changed providerId from LogAnalytics to LOGANALYTICS * Changed Workspace to Workspace ID in package.nls.json * Added support for Azure Widget browser * Changed fullName to use workspaceId when connecting * Changed providerId from alertsManagement to azureMonitor * Added .gitignore and *.vsix to vscodeignore. * Removed unused devDependencies * Code Review Feedback * Changed tsconfig.json to match Kusto and Sql * Changed package.json to match kusto package. * Changed tsconfig to validate unused params and implictAny. Changed existing code to satisfy build. * Fixed tsconfig to use the correct base class. * Added objectExplorerNodeProvider and all related classes. * Removed unused tmLanguage file * Added logic to to download extension from toolservice * Fixed launchArgs. Removed commented code from extension.ts. Changed config.json to use net5.0 * Added displayName to package.nls.json. Removed hide flag from databaseName. Other code review feedback. * Added readme info to AzureMonitor * Removed unused client-error-handler and ui-references files. Combined outputChannel in azuremonitorServer. Removed TODO from contextProvider. Renamed function in extension.ts. Removed unneeded 'use strict' from cancelableStream.ts. Removed second outputChannel from objectExplorerNodeProvider. * Removed unused files
77 lines
2.4 KiB
TypeScript
77 lines
2.4 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 * as vscode from 'vscode';
|
|
import * as azdata from 'azdata';
|
|
|
|
import * as types from './types';
|
|
|
|
export enum BuiltInCommands {
|
|
SetContext = 'setContext',
|
|
}
|
|
|
|
export enum ContextKeys {
|
|
ISCLOUD = 'azuremonitor:iscloud',
|
|
EDITIONID = 'azuremonitor:engineedition',
|
|
ISCLUSTER = 'azuremonitor:iscluster',
|
|
SERVERMAJORVERSION = 'azuremonitor:servermajorversion'
|
|
}
|
|
|
|
const isCloudEditions = [
|
|
azdata.DatabaseEngineEdition.SqlDatabase,
|
|
azdata.DatabaseEngineEdition.SqlDataWarehouse,
|
|
azdata.DatabaseEngineEdition.SqlOnDemand
|
|
];
|
|
|
|
export function setCommandContext(key: ContextKeys | string, value: any) {
|
|
return vscode.commands.executeCommand(BuiltInCommands.SetContext, key, value);
|
|
}
|
|
|
|
export default class ContextProvider {
|
|
private _disposables = new Array<vscode.Disposable>();
|
|
|
|
constructor() {
|
|
this._disposables.push(azdata.workspace.onDidOpenDashboard(this.onDashboardOpen, this));
|
|
this._disposables.push(azdata.workspace.onDidChangeToDashboard(this.onDashboardOpen, this));
|
|
}
|
|
|
|
public onDashboardOpen(e: azdata.DashboardDocument): void {
|
|
let iscloud: boolean = false;
|
|
let edition: number | undefined;
|
|
let isCluster: boolean = false;
|
|
let serverMajorVersion: number | undefined;
|
|
if (e.profile.providerName.toLowerCase() === 'loganalytics' && !types.isUndefinedOrNull(e.serverInfo) && !types.isUndefinedOrNull(e.serverInfo.engineEditionId)) {
|
|
if (isCloudEditions.some(i => i === e.serverInfo.engineEditionId)) {
|
|
iscloud = true;
|
|
} else {
|
|
iscloud = false;
|
|
}
|
|
|
|
edition = e.serverInfo.engineEditionId;
|
|
|
|
serverMajorVersion = e.serverInfo.serverMajorVersion;
|
|
}
|
|
|
|
if (iscloud === true || iscloud === false) {
|
|
setCommandContext(ContextKeys.ISCLOUD, iscloud);
|
|
}
|
|
|
|
if (!types.isUndefinedOrNull(edition)) {
|
|
setCommandContext(ContextKeys.EDITIONID, edition);
|
|
}
|
|
|
|
if (!types.isUndefinedOrNull(isCluster)) {
|
|
setCommandContext(ContextKeys.ISCLUSTER, isCluster);
|
|
}
|
|
|
|
if (!types.isUndefinedOrNull(serverMajorVersion)) {
|
|
setCommandContext(ContextKeys.SERVERMAJORVERSION, serverMajorVersion);
|
|
}
|
|
}
|
|
|
|
dispose(): void {
|
|
this._disposables = this._disposables.map(i => i.dispose());
|
|
}
|
|
}
|