diff --git a/Packages.props b/Packages.props index 975b47cc..91675bb2 100644 --- a/Packages.props +++ b/Packages.props @@ -31,7 +31,7 @@ - + diff --git a/bin/nuget/Microsoft.SqlServer.Migration.Tde.1.0.0-preview.1.0.20230720.98.nupkg b/bin/nuget/Microsoft.SqlServer.Migration.Tde.1.0.0-preview.1.0.20230720.98.nupkg deleted file mode 100644 index 422feea2..00000000 Binary files a/bin/nuget/Microsoft.SqlServer.Migration.Tde.1.0.0-preview.1.0.20230720.98.nupkg and /dev/null differ diff --git a/bin/nuget/Microsoft.SqlServer.Migration.Tde.1.0.20230403.55.nupkg b/bin/nuget/Microsoft.SqlServer.Migration.Tde.1.0.20230403.55.nupkg deleted file mode 100644 index aee57198..00000000 Binary files a/bin/nuget/Microsoft.SqlServer.Migration.Tde.1.0.20230403.55.nupkg and /dev/null differ diff --git a/src/Microsoft.SqlTools.Migration/Contracts/TdeValidationRequest.cs b/src/Microsoft.SqlTools.Migration/Contracts/TdeValidationRequest.cs new file mode 100644 index 00000000..46a9fafc --- /dev/null +++ b/src/Microsoft.SqlTools.Migration/Contracts/TdeValidationRequest.cs @@ -0,0 +1,29 @@ +// +// 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.Migration.Tde.Validations; +using Microsoft.SqlTools.Hosting.Protocol.Contracts; + +namespace Microsoft.SqlTools.Migration.Contracts +{ + public class TdeValidationParams + { + /// + /// Source connection string for SQL Server. + /// + public string? SourceSqlConnectionString { get; set; } + + /// + /// Location where certificates will be exported. + /// + public string? NetworkSharePath { get; set; } + } + + public class TdeValidationRequest + { + public static readonly RequestType Type = + RequestType.Create("migration/tdevalidation"); + } +} diff --git a/src/Microsoft.SqlTools.Migration/Contracts/TdeValidationTitlesRequest.cs b/src/Microsoft.SqlTools.Migration/Contracts/TdeValidationTitlesRequest.cs new file mode 100644 index 00000000..0c43f2de --- /dev/null +++ b/src/Microsoft.SqlTools.Migration/Contracts/TdeValidationTitlesRequest.cs @@ -0,0 +1,19 @@ +// +// 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; + +namespace Microsoft.SqlTools.Migration.Contracts +{ + public class TdeValidationTitlesParams + { + } + + public class TdeValidationTitlesRequest + { + public static readonly RequestType Type = + RequestType.Create("migration/tdevalidationtitles"); + } +} diff --git a/src/Microsoft.SqlTools.Migration/MigrationService.cs b/src/Microsoft.SqlTools.Migration/MigrationService.cs index f2f8e75e..0b407210 100644 --- a/src/Microsoft.SqlTools.Migration/MigrationService.cs +++ b/src/Microsoft.SqlTools.Migration/MigrationService.cs @@ -47,6 +47,7 @@ using Microsoft.SqlServer.Migration.SkuRecommendation.Models.Sql; using Microsoft.SqlServer.Migration.SkuRecommendation.Utils; using Microsoft.SqlServer.Migration.Tde; using Microsoft.SqlServer.Migration.Tde.Common; +using Microsoft.SqlServer.Migration.Tde.Validations; using Microsoft.SqlTools.Hosting; using Microsoft.SqlTools.Hosting.Protocol; using Microsoft.SqlTools.Migration.Contracts; @@ -114,10 +115,11 @@ namespace Microsoft.SqlTools.Migration this.ServiceHost.SetRequestHandler(EstablishUserMappingRequest.Type, HandleEstablishUserMapping, true); this.ServiceHost.SetRequestHandler(MigrateServerRolesAndSetPermissionsRequest.Type, HandleMigrateServerRolesAndSetPermissions, true); this.ServiceHost.SetRequestHandler(CertificateMigrationRequest.Type, HandleTdeCertificateMigrationRequest); + this.ServiceHost.SetRequestHandler(TdeValidationRequest.Type, HandleTdeValidationRequest); + this.ServiceHost.SetRequestHandler(TdeValidationTitlesRequest.Type, HandleTdeValidationTitlesRequest); Logger.Verbose("Migration Service initialized"); } - /// /// Handle request to start a migration session /// @@ -977,6 +979,24 @@ namespace Microsoft.SqlTools.Migration await requestContext.SendResult(result); } + internal async Task HandleTdeValidationRequest( + TdeValidationParams parameters, + RequestContext requestContext) + { + TdeValidationResult[] result = + await TdeMigration.RunTdeValidation( + parameters.SourceSqlConnectionString, + parameters.NetworkSharePath); + await requestContext.SendResult(result); + } + + internal async Task HandleTdeValidationTitlesRequest( + TdeValidationTitlesParams parameters, + RequestContext requestContext) + { + await requestContext.SendResult(TdeMigration.TdeValidationTitles); + } + /// /// Individual certificate migration operation ///