From 68ac1e01fce7fe5aabc9df22d05635f2fdbe2e30 Mon Sep 17 00:00:00 2001 From: Benjin Dubishar Date: Tue, 28 Feb 2023 18:27:42 -0800 Subject: [PATCH] Adding project property support to SqlProj service (#1883) * Nuget update * Updating nuget * implementation * GetProperties test * Adding SetDatabaseSource * adding comment * Nuget update * PR feedback * Fixing cross-plat path tests * Updating to signed nuget * fixing None test --- Packages.props | 2 +- ...rver.DacFx.Projects.161.8093.0-alpha.nupkg | Bin 52711 -> 0 bytes ...rver.DacFx.Projects.161.8416.0-alpha.nupkg | Bin 0 -> 54502 bytes .../Projects/GetProjectProperties.cs | 58 ++++++++++++++++++ .../Contracts/Projects/SetDatabaseSource.cs | 31 ++++++++++ .../SqlProjects/SqlProjectsService.cs | 31 +++++++++- .../SqlProjects/SqlProjectsServiceTests.cs | 55 +++++++++++++++-- .../FileUtils.cs | 8 ++- 8 files changed, 175 insertions(+), 10 deletions(-) delete mode 100644 bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8093.0-alpha.nupkg create mode 100644 bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8416.0-alpha.nupkg create mode 100644 src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/GetProjectProperties.cs create mode 100644 src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/SetDatabaseSource.cs diff --git a/Packages.props b/Packages.props index cd4afd99..5b389bf4 100644 --- a/Packages.props +++ b/Packages.props @@ -21,7 +21,7 @@ - + diff --git a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8093.0-alpha.nupkg b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.161.8093.0-alpha.nupkg deleted file mode 100644 index 9fef77346a5d880154276449de3326ddf7cd5ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52711 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 bf1e&ND**{y^75nYVL=js_knl%N9z9r93+I9 literal 0 HcmV?d00001 diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/GetProjectProperties.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/GetProjectProperties.cs new file mode 100644 index 00000000..cb3033a8 --- /dev/null +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/GetProjectProperties.cs @@ -0,0 +1,58 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +// + +using Microsoft.SqlTools.Hosting.Protocol.Contracts; +using Microsoft.SqlTools.ServiceLayer.Utility; + +#nullable disable + +namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts +{ + /// + /// Get the cross-platform compatibility status for a project + /// + public class GetProjectPropertiesRequest + { + public static readonly RequestType Type = RequestType.Create("sqlProjects/getProjectProperties"); + } + + /// + /// Result containing project properties contained in the .sqlproj XML + /// + public class GetProjectPropertiesResult : ResultStatus + { + /// + /// GUID for the SQL project + /// + public string ProjectGuid { get; set; } + + /// + /// Build configuration, defaulted to Debug if not specified + /// + public string Configuration { get; set; } + + /// + /// Build platform, defaulted to AnyCPU if not specified + /// + public string Platform { get; set; } + + /// + /// Output path for build, defaulted to "bin/Debug" if not specified. + /// May be absolute or relative. + /// + public string OutputPath { get; set; } + + /// + /// Default collation for the project, defaulted to SQL_Latin1_General_CP1_CI_AS if not specified + /// + public string DefaultCollation { get; set; } + + /// + /// Source of the database schema, used in telemetry + /// + public string? DatabaseSource { get; set; } + + } +} diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/SetDatabaseSource.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/SetDatabaseSource.cs new file mode 100644 index 00000000..b11b1910 --- /dev/null +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/Projects/SetDatabaseSource.cs @@ -0,0 +1,31 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +// + +#nullable disable + +using Microsoft.SqlTools.Hosting.Protocol.Contracts; +using Microsoft.SqlTools.ServiceLayer.Utility; + +namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts +{ + /// + /// Parameters for setting the DatabaseSource property of a .sqlproj file + /// + public class SetDatabaseSourceParams : SqlProjectParams + { + /// + /// Source of the database schema, used in telemetry + /// + public string DatabaseSource { get; set; } + } + + /// + /// Set the DatabaseSource property of a .sqlproj file + /// + public class SetDatabaseSourceRequest + { + public static readonly RequestType Type = RequestType.Create("sqlProjects/setDatabaseSource"); + } +} diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs index 66a4a1a4..253a9fa9 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs @@ -46,6 +46,8 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects serviceHost.SetRequestHandler(CreateSqlProjectRequest.Type, HandleCreateSqlProjectRequest, isParallelProcessingSupported: true); serviceHost.SetRequestHandler(GetCrossPlatformCompatibilityRequest.Type, HandleGetCrossPlatformCompatibilityRequest, isParallelProcessingSupported: true); serviceHost.SetRequestHandler(UpdateProjectForCrossPlatformRequest.Type, HandleUpdateProjectForCrossPlatformRequest, isParallelProcessingSupported: false); + serviceHost.SetRequestHandler(GetProjectPropertiesRequest.Type, HandleGetProjectPropertiesRequest, isParallelProcessingSupported: true); + serviceHost.SetRequestHandler(SetDatabaseSourceRequest.Type, HandleSetDatabaseSourceRequest, isParallelProcessingSupported: false); // SQL object script functions serviceHost.SetRequestHandler(GetSqlObjectScriptsRequest.Type, HandleGetSqlObjectScriptsRequest, isParallelProcessingSupported: true); @@ -133,6 +135,31 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects await RunWithErrorHandling(() => GetProject(requestParams.ProjectUri).UpdateForCrossPlatform(), requestContext); } + internal async Task HandleGetProjectPropertiesRequest(SqlProjectParams requestParams, RequestContext requestContext) + { + await RunWithErrorHandling(() => + { + SqlProjectProperties props = GetProject(requestParams.ProjectUri).Properties; + + return new GetProjectPropertiesResult() + { + Success = true, + ErrorMessage = null, + ProjectGuid = props.ProjectGuid, + Configuration = props.Configuration, + Platform = props.Platform, + OutputPath = props.OutputPath, + DefaultCollation = props.DefaultCollation, + DatabaseSource = props.DatabaseSource, + }; + }, requestContext); + } + + internal async Task HandleSetDatabaseSourceRequest(SetDatabaseSourceParams requestParams, RequestContext requestContext) + { + await RunWithErrorHandling(() => GetProject(requestParams.ProjectUri).Properties.DatabaseSource = requestParams.DatabaseSource, requestContext); + } + #endregion #region Script/folder functions @@ -310,7 +337,7 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects #endregion - #region Database Reference functions + #region Database reference functions internal async Task HandleGetDatabaseReferencesRequest(SqlProjectParams requestParams, RequestContext requestContext) { @@ -459,7 +486,7 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects { if (!Projects.ContainsKey(projectUri)) { - Projects[projectUri] = new SqlProject(projectUri); + Projects[projectUri] = SqlProject.OpenProject(projectUri); } return Projects[projectUri]; diff --git a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs index 48b04201..b004e9d5 100644 --- a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs +++ b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs @@ -161,7 +161,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects // Validate moving a SQL object script string movedScriptRelativePath = @"SubPath\MyRenamedTable.sql"; - string movedScriptAbsolutePath = Path.Join(Path.GetDirectoryName(projectUri), movedScriptRelativePath); + string movedScriptAbsolutePath = Path.Join(Path.GetDirectoryName(projectUri), FileUtils.NormalizePath(movedScriptRelativePath)); Directory.CreateDirectory(Path.GetDirectoryName(movedScriptAbsolutePath)!); requestMock = new(); @@ -254,7 +254,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects // Validate moving a None script string movedScriptRelativePath = @"SubPath\RenamedNoneIncludeFile.json"; - string movedScriptAbsolutePath = Path.Join(Path.GetDirectoryName(projectUri), movedScriptRelativePath); + string movedScriptAbsolutePath = Path.Join(Path.GetDirectoryName(projectUri), FileUtils.NormalizePath(movedScriptRelativePath)); Directory.CreateDirectory(Path.GetDirectoryName(movedScriptAbsolutePath)!); requestMock = new(); @@ -343,7 +343,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects // Validate moving a pre-deployment object script string movedScriptRelativePath = @"SubPath\RenamedPreDeploymentScript.sql"; - string movedScriptAbsolutePath = Path.Join(Path.GetDirectoryName(projectUri), movedScriptRelativePath); + string movedScriptAbsolutePath = Path.Join(Path.GetDirectoryName(projectUri), FileUtils.NormalizePath(movedScriptRelativePath)); Directory.CreateDirectory(Path.GetDirectoryName(movedScriptAbsolutePath)!); requestMock = new(); @@ -432,7 +432,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects // Validate moving a post-deployment object script string movedScriptRelativePath = @"SubPath\RenamedPostDeploymentScript.sql"; - string movedScriptAbsolutePath = Path.Join(Path.GetDirectoryName(projectUri), movedScriptRelativePath); + string movedScriptAbsolutePath = Path.Join(Path.GetDirectoryName(projectUri), FileUtils.NormalizePath(movedScriptRelativePath)); Directory.CreateDirectory(Path.GetDirectoryName(movedScriptAbsolutePath)!); requestMock = new(); @@ -823,6 +823,53 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects Assert.IsTrue(((GetCrossPlatformCompatibilityResult)getRequestMock.Result).IsCrossPlatformCompatible, "Input file should be cross-platform compatible after conversion"); } + [Test] + public async Task TestProjectProperties() + { + SqlProjectsService service = new(); + string projectUri = await service.CreateSqlProject(); + + MockRequest mock = new(); + + await service.HandleGetProjectPropertiesRequest(new SqlProjectParams() + { + ProjectUri = projectUri + }, mock.Object); + + mock.AssertSuccess(nameof(service.HandleGetProjectPropertiesRequest)); + + Assert.IsTrue(Guid.TryParse(mock.Result.ProjectGuid, out _), $"{mock.Result.ProjectGuid} should be set"); + Assert.AreEqual("AnyCPU", mock.Result.Platform); + Assert.AreEqual("Debug", mock.Result.Configuration); + Assert.AreEqual(@"bin\Debug\", mock.Result.OutputPath); // default value is normalized to Windows slashes + Assert.AreEqual("SQL_Latin1_General_CP1_CI_AS", mock.Result.DefaultCollation); + Assert.IsNull(mock.Result.DatabaseSource, nameof(mock.Result.DatabaseSource)); // validate DatabaseSource is null when the tag isn't present + + // Validate that DatabaseSource can be set when the tag doesn't exist + + MockRequest setSourceMock = new(); + await service.HandleSetDatabaseSourceRequest(new SetDatabaseSourceParams() + { + ProjectUri = projectUri, + DatabaseSource = "TestSource" + }, setSourceMock.Object); + + setSourceMock.AssertSuccess(nameof(service.HandleSetDatabaseSourceRequest)); + Assert.AreEqual("TestSource", service.Projects[projectUri].Properties.DatabaseSource); + + // Validate DatabaseSource is read when it has a value + + mock = new(); + + await service.HandleGetProjectPropertiesRequest(new SqlProjectParams() + { + ProjectUri = projectUri + }, mock.Object); + + mock.AssertSuccess(nameof(service.HandleGetProjectPropertiesRequest)); + Assert.AreEqual("TestSource", mock.Result.DatabaseSource); + } + #region Helpers private async Task<(SqlProjectsService Service, string ProjectUri, SqlCmdVariable DatabaseVar, SqlCmdVariable ServerVar)> SetUpDatabaseReferenceTest() diff --git a/test/Microsoft.SqlTools.ServiceLayer.Test.Common/FileUtils.cs b/test/Microsoft.SqlTools.ServiceLayer.Test.Common/FileUtils.cs index 22b58097..c3f21dd9 100644 --- a/test/Microsoft.SqlTools.ServiceLayer.Test.Common/FileUtils.cs +++ b/test/Microsoft.SqlTools.ServiceLayer.Test.Common/FileUtils.cs @@ -80,13 +80,15 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common } /// - /// Normalizes Windows, Unix, and mixed paths to the same slash direction, specified by + /// Normalizes Windows, Unix, and mixed paths to the same slash direction, specified by . /// /// - /// Win32NT for \, Unix for / + /// Win32NT for \, Unix for /. If not set, path will be normalized to the current platform. /// - public static string NormalizePath(string path, PlatformID separatorType) + public static string NormalizePath(string path, PlatformID? separatorType = null) { + separatorType ??= Environment.OSVersion.Platform; + return separatorType switch { PlatformID.Win32NT => path.Contains('/')