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
///