mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-16 01:25:41 -05:00
Added AzureMonitor to Microsoft.Kusto.ServiceLayer (#1208)
* Added AzureMonitor to Microsoft.Kusto.ServiceLayer. * Added Intellisense for AzureMonitor. Moved Intellisense logic from KustoIntellisenseClient to IntellisenseClientBase. * Added ServiceName as a command parameter for starting Kusto. * Added check to return null if connectionInfo is not in the connectionService. * Added support for Dashboard in MetadataService and AdminService. * Removed workspace id from databaseName for Monitor. Added logic for MetadataService and AdminService to return different information for AzureMonitor. * Moved providerName and providerDescription to DataSourceFactory. * Changed DatabaseName to include Name and Id. Changed ProviderName to LOGANALYTICS in DataSourceFactory * Fixed unit tests * Changed logic to use ServiceName instead of server to determine DataSourceType * Code review feedback and reverted changes to ObjectExplorerService. * Removed unused reference from HostLoader * Changed Parallel.Invoke to await Task.Run * Moved Kusto datasource and supporting classes to separate directory. * Removed unused datasourceFactory from ConnectionService. Added GetDatabases and GetDatabaseInfo to IDataSource and child classes * Renamed Instance variables in ObjectExplorerService. Removed unused attribute on TSqlFormatterService. Removed invalid comment in ConnectionService. * Fixed warnings in build. * Moved SizeInMB to DatabaseMetadata. Refactored ConvertToDatabaseInfo * Fixed unit test
This commit is contained in:
@@ -6,6 +6,8 @@ using Microsoft.Kusto.ServiceLayer.Connection.Contracts;
|
||||
using Microsoft.Kusto.ServiceLayer.DataSource.Contracts;
|
||||
using Microsoft.SqlTools.ServiceLayer.Connection.ReliableConnection;
|
||||
using Microsoft.Kusto.ServiceLayer.DataSource.Intellisense;
|
||||
using Microsoft.Kusto.ServiceLayer.DataSource.Kusto;
|
||||
using Microsoft.Kusto.ServiceLayer.DataSource.Monitor;
|
||||
using Microsoft.Kusto.ServiceLayer.LanguageServices;
|
||||
using Microsoft.Kusto.ServiceLayer.LanguageServices.Contracts;
|
||||
using Microsoft.Kusto.ServiceLayer.Utility;
|
||||
@@ -16,8 +18,14 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource
|
||||
[Export(typeof(IDataSourceFactory))]
|
||||
public class DataSourceFactory : IDataSourceFactory
|
||||
{
|
||||
public IDataSource Create(DataSourceType dataSourceType, ConnectionDetails connectionDetails, string ownerUri)
|
||||
private const string KustoProviderName = "KUSTO";
|
||||
private const string LogAnalyticsProviderName = "LOGANALYTICS";
|
||||
private const string KustoProviderDescription = "Microsoft Azure Data Explorer";
|
||||
private const string LogAnalyticsProviderDescription = "Microsoft Azure Monitor Explorer";
|
||||
|
||||
public IDataSource Create(ConnectionDetails connectionDetails, string ownerUri)
|
||||
{
|
||||
var dataSourceType = GetDataSourceType();
|
||||
switch (dataSourceType)
|
||||
{
|
||||
case DataSourceType.Kusto:
|
||||
@@ -27,7 +35,12 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource
|
||||
var intellisenseClient = new KustoIntellisenseClient(kustoClient);
|
||||
return new KustoDataSource(kustoClient, intellisenseClient);
|
||||
}
|
||||
|
||||
case DataSourceType.LogAnalytics:
|
||||
{
|
||||
var httpClient = new MonitorClient(connectionDetails.ServerName, connectionDetails.AccountToken);
|
||||
var intellisenseClient = new MonitorIntellisenseClient(httpClient);
|
||||
return new MonitorDataSource(httpClient, intellisenseClient);
|
||||
}
|
||||
default:
|
||||
|
||||
throw new ArgumentException($@"Unsupported data source type ""{dataSourceType}""",
|
||||
@@ -35,6 +48,11 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource
|
||||
}
|
||||
}
|
||||
|
||||
private DataSourceType GetDataSourceType()
|
||||
{
|
||||
return Program.ServiceName.Contains("Kusto") ? DataSourceType.Kusto : DataSourceType.LogAnalytics;
|
||||
}
|
||||
|
||||
private DataSourceConnectionDetails MapKustoConnectionDetails(ConnectionDetails connectionDetails)
|
||||
{
|
||||
if (connectionDetails.AuthenticationType == "dstsAuth" || connectionDetails.AuthenticationType == "AzureMFA")
|
||||
@@ -95,7 +113,7 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource
|
||||
}
|
||||
|
||||
default:
|
||||
throw new ArgumentException($"Unsupported data source type \"{dataSourceType}\"", nameof(dataSourceType));
|
||||
throw new ArgumentException($@"Unsupported data source type ""{dataSourceType}""", nameof(dataSourceType));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +127,7 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource
|
||||
}
|
||||
|
||||
default:
|
||||
throw new ArgumentException($"Unsupported data source type \"{dataSourceType}\"", nameof(dataSourceType));
|
||||
throw new ArgumentException($@"Unsupported data source type ""{dataSourceType}""", nameof(dataSourceType));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,8 +144,18 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource
|
||||
}
|
||||
|
||||
default:
|
||||
throw new ArgumentException($"Unsupported data source type \"{dataSourceType}\"", nameof(dataSourceType));
|
||||
throw new ArgumentException($@"Unsupported data source type ""{dataSourceType}""", nameof(dataSourceType));
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetProviderName()
|
||||
{
|
||||
return Program.ServiceName.Contains("Kusto") ? KustoProviderName : LogAnalyticsProviderName;
|
||||
}
|
||||
|
||||
public static string GetProviderDescription()
|
||||
{
|
||||
return Program.ServiceName.Contains("Kusto") ? KustoProviderDescription : LogAnalyticsProviderDescription;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user