mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-13 17:23:02 -05:00
Improve how server OS and Platform are displayed (#2264)
* Also fixed versioning issues with how isPolybaseEnabled and isXTPSupported properties are accessed.
This commit is contained in:
@@ -115,14 +115,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
{
|
||||
return false;
|
||||
}
|
||||
bool isXTPSupported = false;
|
||||
|
||||
if (server.ConnectionContext.ExecuteScalar("SELECT SERVERPROPERTY('IsXTPSupported')") != DBNull.Value)
|
||||
{
|
||||
isXTPSupported = server.IsXTPSupported;
|
||||
}
|
||||
|
||||
return isXTPSupported;
|
||||
return server.IsSupportedProperty(nameof(server.IsXTPSupported)) && server.IsXTPSupported;
|
||||
}
|
||||
|
||||
public static bool IsPolybasedInstalledOnServer(SMO.Server server)
|
||||
|
||||
@@ -1199,7 +1199,6 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
this.processors = server.Processors;
|
||||
this.isClustered = server.IsClustered;
|
||||
this.isHadrEnabled = server.IsHadrEnabled;
|
||||
this.isPolyBaseInstalled = server.IsPolyBaseInstalled;
|
||||
|
||||
this.product = server.Product;
|
||||
this.rootDirectory = server.RootDirectory;
|
||||
@@ -1212,19 +1211,25 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
this.reservedStorageSizeMB = server.ReservedStorageSizeMB;
|
||||
this.storageSpaceUsageInMB = server.UsedStorageSizeMB;
|
||||
}
|
||||
if (server.VersionMajor < 14 || server.HostPlatform == null)
|
||||
{
|
||||
this.platform = server.Platform;
|
||||
this.operatingSystem = "Microsoft Windows NT " +
|
||||
Convert.ToString(server.OSVersion, System.Globalization.CultureInfo.InvariantCulture);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.isXTPSupported = server.IsXTPSupported;
|
||||
}
|
||||
if (server.VersionMajor >= 14)
|
||||
{
|
||||
this.operatingSystem = server.HostDistribution;
|
||||
this.platform = server.HostPlatform;
|
||||
this.operatingSystem = $"{server.HostDistribution} ({server.HostRelease})";
|
||||
}
|
||||
if (server.VersionMajor >= 13)
|
||||
{
|
||||
this.isPolyBaseInstalled = server.IsPolyBaseInstalled;
|
||||
}
|
||||
if (Utils.IsXTPSupportedOnServer(server))
|
||||
{
|
||||
this.isXTPSupported = server.IsXTPSupported;
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadMemoryProperties()
|
||||
|
||||
@@ -48,6 +48,8 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
Name = prototype.Name,
|
||||
Language = prototype.Language,
|
||||
MemoryInMB = prototype.MemoryInMB,
|
||||
OperatingSystem = prototype.OperatingSystem,
|
||||
Platform = prototype.Platform,
|
||||
Processors = prototype.Processors,
|
||||
IsClustered = prototype.IsClustered,
|
||||
IsHadrEnabled = prototype.IsHadrEnabled,
|
||||
@@ -90,11 +92,6 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
serverObjInfo.ReservedStorageSizeMB = sMI.ReservedStorageSizeMB;
|
||||
serverObjInfo.StorageSpaceUsageInMB = sMI.StorageSpaceUsageInMB;
|
||||
}
|
||||
if (prototype is ServerPrototype140 s140)
|
||||
{
|
||||
serverObjInfo.OperatingSystem = s140.OperatingSystem;
|
||||
serverObjInfo.Platform = s140.Platform;
|
||||
}
|
||||
if (prototype is ServerPrototype130 s130)
|
||||
{
|
||||
serverObjInfo.IsPolyBaseInstalled = s130.IsPolyBaseInstalled;
|
||||
@@ -169,11 +166,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
{
|
||||
prototype = new ServerPrototypeMI(server, connection);
|
||||
}
|
||||
else if (server.VersionMajor >= 14)
|
||||
{
|
||||
prototype = new ServerPrototype140(server, connection);
|
||||
}
|
||||
else if (server.VersionMajor == 13)
|
||||
else if (server.VersionMajor >= 13)
|
||||
{
|
||||
prototype = new ServerPrototype130(server, connection);
|
||||
}
|
||||
|
||||
@@ -53,6 +53,19 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public string OperatingSystem
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.currentState.OperatingSystem;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.currentState.OperatingSystem = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string Version
|
||||
{
|
||||
get
|
||||
@@ -77,6 +90,18 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
}
|
||||
}
|
||||
|
||||
public string Platform
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.currentState.Platform;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.currentState.Platform = value;
|
||||
}
|
||||
}
|
||||
|
||||
public int MemoryInMB
|
||||
{
|
||||
get
|
||||
@@ -924,6 +949,8 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
this.Name = serverInfo.Name ?? string.Empty;
|
||||
this.Language = serverInfo.Language;
|
||||
this.MemoryInMB = serverInfo.MemoryInMB;
|
||||
this.OperatingSystem = serverInfo.OperatingSystem;
|
||||
this.Platform = serverInfo.Platform;
|
||||
this.Version = serverInfo.Version;
|
||||
this.Processors = serverInfo.Processors;
|
||||
this.Version = serverInfo.Version;
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
|
||||
using Microsoft.SqlServer.Management.Common;
|
||||
using Microsoft.SqlServer.Management.Smo;
|
||||
|
||||
namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
{
|
||||
internal class ServerPrototype140 : ServerPrototype130
|
||||
{
|
||||
public ServerPrototype140(Server server, ServerConnection connection) : base(server, connection) { }
|
||||
|
||||
public string OperatingSystem
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.currentState.OperatingSystem;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.currentState.OperatingSystem = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string Platform
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.currentState.Platform;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.currentState.Platform = value;
|
||||
}
|
||||
}
|
||||
|
||||
public override void ApplyInfoToPrototype(ServerInfo serverInfo)
|
||||
{
|
||||
base.ApplyInfoToPrototype(serverInfo);
|
||||
|
||||
this.OperatingSystem = serverInfo.OperatingSystem;
|
||||
this.Platform = serverInfo.Platform;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectManagement
|
||||
/// <summary>
|
||||
/// Prototype for representing a manage instance server.
|
||||
/// </summary>
|
||||
internal class ServerPrototypeMI : ServerPrototype140
|
||||
internal class ServerPrototypeMI : ServerPrototype130
|
||||
{
|
||||
public ServerPrototypeMI(Server server, ServerConnection connection) : base(server, connection) { }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user