diff --git a/src/Microsoft.Kusto.ServiceLayer/DataSource/KustoDataSource.cs b/src/Microsoft.Kusto.ServiceLayer/DataSource/KustoDataSource.cs index 6366b3f8..95458e99 100644 --- a/src/Microsoft.Kusto.ServiceLayer/DataSource/KustoDataSource.cs +++ b/src/Microsoft.Kusto.ServiceLayer/DataSource/KustoDataSource.cs @@ -118,10 +118,16 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource { try { - CancellationTokenSource source = new CancellationTokenSource(); - CancellationToken token = source.Token; + var source = new CancellationTokenSource(); - var count = await ExecuteScalarQueryAsync(".show databases | count", token); + if (ClusterName.Contains(AriaProxyURL, StringComparison.OrdinalIgnoreCase)) + { + + var result = await ExecuteScalarQueryAsync(".show databases | take 1 | project DatabaseName", source.Token); + return !string.IsNullOrWhiteSpace(result); + } + + var count = await ExecuteScalarQueryAsync(".show databases | count", source.Token); return count >= 0; } catch @@ -136,21 +142,25 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource private DiagnosticsInfo GetClusterDiagnostics() { - CancellationTokenSource source = new CancellationTokenSource(); - CancellationToken token = source.Token; - DiagnosticsInfo clusterDiagnostics = new DiagnosticsInfo(); + if (ClusterName.Contains(AriaProxyURL, StringComparison.CurrentCultureIgnoreCase)) + { + return new DiagnosticsInfo(); + } + + var source = new CancellationTokenSource(); + var clusterDiagnostics = new DiagnosticsInfo(); var query = ".show diagnostics | extend Passed= (IsHealthy) and not(IsScaleOutRequired) | extend Summary = strcat('Cluster is ', iif(Passed, '', 'NOT'), 'healthy.'),Details=pack('MachinesTotal', MachinesTotal, 'DiskCacheCapacity', round(ClusterDataCapacityFactor,1)) | project Action = 'Cluster Diagnostics', Category='Info', Summary, Details;"; - using (var reader = _kustoClient.ExecuteQuery(query, token)) + using (var reader = _kustoClient.ExecuteQuery(query, source.Token)) + { + while (reader.Read()) { - while(reader.Read()) - { - var details = JsonConvert.DeserializeObject>(reader["Details"].ToString()); - clusterDiagnostics.Options["summary"] = reader["Summary"].ToString(); - clusterDiagnostics.Options["machinesTotal"] = details["MachinesTotal"].ToString(); - clusterDiagnostics.Options["diskCacheCapacity"] = details["DiskCacheCapacity"].ToString() + "%"; - } + var details = JsonConvert.DeserializeObject>(reader["Details"].ToString()); + clusterDiagnostics.Options["summary"] = reader["Summary"].ToString(); + clusterDiagnostics.Options["machinesTotal"] = details["MachinesTotal"].ToString(); + clusterDiagnostics.Options["diskCacheCapacity"] = details["DiskCacheCapacity"].ToString() + "%"; } + } return clusterDiagnostics; } @@ -163,22 +173,25 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource SetDatabaseMetadata(includeSizeDetails); } - return _databaseMetadata; + return _databaseMetadata.OrderBy(x => x.PrettyName); } private void SetDatabaseMetadata(bool includeSizeDetails) { + if (ClusterName.Contains(AriaProxyURL, StringComparison.CurrentCultureIgnoreCase)) + { + includeSizeDetails = false; + } + CancellationTokenSource source = new CancellationTokenSource(); CancellationToken token = source.Token; // Getting database names when we are connected to a specific database should not happen. ValidationUtils.IsNotNull(DatabaseName, nameof(DatabaseName)); - var query = ".show databases" + (this.ClusterName.IndexOf(AriaProxyURL, StringComparison.CurrentCultureIgnoreCase) == -1 ? " | project DatabaseName, PrettyName" : ""); - - if (includeSizeDetails == true){ - query = ".show cluster extents | summarize sum(OriginalSize) by tostring(DatabaseName)"; - } + var query = includeSizeDetails + ? ".show cluster extents | summarize sum(OriginalSize) by tostring(DatabaseName)" + : ".show databases | project DatabaseName, PrettyName"; using (var reader = _kustoClient.ExecuteQuery(query, token)) { @@ -189,10 +202,10 @@ namespace Microsoft.Kusto.ServiceLayer.DataSource ClusterName = this.ClusterName, MetadataType = DataSourceMetadataType.Database, MetadataTypeName = DataSourceMetadataType.Database.ToString(), - SizeInMB = includeSizeDetails == true ? row["sum_OriginalSize"].ToString() : null, + SizeInMB = includeSizeDetails ? row["sum_OriginalSize"].ToString() : "", Name = row["DatabaseName"].ToString(), - PrettyName = includeSizeDetails == true ? row["DatabaseName"].ToString(): (String.IsNullOrEmpty(row["PrettyName"]?.ToString()) ? row["DatabaseName"].ToString() : row["PrettyName"].ToString()), - Urn = $"{this.ClusterName}.{row["DatabaseName"].ToString()}" + PrettyName = includeSizeDetails ? row["DatabaseName"].ToString(): (string.IsNullOrEmpty(row["PrettyName"]?.ToString()) ? row["DatabaseName"].ToString() : row["PrettyName"].ToString()), + Urn = $"{ClusterName}.{row["DatabaseName"]}" }) .Materialize() .OrderBy(row => row.Name, StringComparer.Ordinal); // case-sensitive diff --git a/src/Microsoft.Kusto.ServiceLayer/ObjectExplorer/Nodes/TreeNode.cs b/src/Microsoft.Kusto.ServiceLayer/ObjectExplorer/Nodes/TreeNode.cs index 86d2a09f..8ffacbab 100644 --- a/src/Microsoft.Kusto.ServiceLayer/ObjectExplorer/Nodes/TreeNode.cs +++ b/src/Microsoft.Kusto.ServiceLayer/ObjectExplorer/Nodes/TreeNode.cs @@ -51,7 +51,7 @@ namespace Microsoft.Kusto.ServiceLayer.ObjectExplorer.Nodes { DataSource = dataSource; ObjectMetadata = objectMetadata; - NodeValue = objectMetadata.Name; + NodeValue = objectMetadata.PrettyName; } private object buildingMetadataLock = new object(); diff --git a/test/Microsoft.Kusto.ServiceLayer.UnitTests/ObjectExplorer/DataSourceModel/ServerNodeTests.cs b/test/Microsoft.Kusto.ServiceLayer.UnitTests/ObjectExplorer/DataSourceModel/ServerNodeTests.cs index 4407226f..f70f97ae 100644 --- a/test/Microsoft.Kusto.ServiceLayer.UnitTests/ObjectExplorer/DataSourceModel/ServerNodeTests.cs +++ b/test/Microsoft.Kusto.ServiceLayer.UnitTests/ObjectExplorer/DataSourceModel/ServerNodeTests.cs @@ -154,7 +154,7 @@ namespace Microsoft.Kusto.ServiceLayer.UnitTests.ObjectExplorer.DataSourceModel Assert.AreEqual(childMetadata.MetadataTypeName, child.NodeType); Assert.AreEqual(NodeTypes.Database, child.NodeTypeId); - Assert.AreEqual(childMetadata.Name, child.NodeValue); + Assert.AreEqual(childMetadata.PrettyName, child.NodeValue); } } } \ No newline at end of file