From 608f75e7615af88702fdd19e737e9eeb0d8154b8 Mon Sep 17 00:00:00 2001 From: AkshayMata Date: Wed, 8 Feb 2023 07:10:56 -0800 Subject: [PATCH] Enable local logging for login migrations (#1846) This change allows the login migration nuget to log changes locally.. --- .../MigrationService.cs | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/Microsoft.SqlTools.Migration/MigrationService.cs b/src/Microsoft.SqlTools.Migration/MigrationService.cs index 816f087e..7f28abc8 100644 --- a/src/Microsoft.SqlTools.Migration/MigrationService.cs +++ b/src/Microsoft.SqlTools.Migration/MigrationService.cs @@ -26,6 +26,9 @@ using Microsoft.SqlServer.Migration.Assessment.Common.Models; using Microsoft.SqlServer.Migration.Assessment.Common.Utils; using Microsoft.SqlServer.Migration.Logins; using Microsoft.SqlServer.Migration.Logins.Contracts; +using Microsoft.SqlServer.Migration.Logins.Contracts.ErrorHandling; +using Microsoft.SqlServer.Migration.Logins.ErrorHandling; +using Microsoft.SqlServer.Migration.Logins.Helpers; using Microsoft.SqlServer.Migration.SkuRecommendation; using Microsoft.SqlServer.Migration.SkuRecommendation.Aggregation; using Microsoft.SqlServer.Migration.SkuRecommendation.Billing; @@ -287,8 +290,9 @@ namespace Microsoft.SqlTools.Migration { try { + ILoginsMigrationLogger logger = this.GetLoginsMigrationLogger(); ILoginsMigration loginMigration = new LoginsMigration(parameters.SourceConnectionString, parameters.TargetConnectionString, - null, parameters.LoginList, parameters.AADDomainName); + null, parameters.LoginList, parameters.AADDomainName, logger); IDictionary> exceptionMap = new Dictionary>(); @@ -319,8 +323,9 @@ namespace Microsoft.SqlTools.Migration { try { + ILoginsMigrationLogger logger = this.GetLoginsMigrationLogger(); ILoginsMigration loginMigration = new LoginsMigration(parameters.SourceConnectionString, parameters.TargetConnectionString, - null, parameters.LoginList, parameters.AADDomainName); + null, parameters.LoginList, parameters.AADDomainName, logger); IDictionary> exceptionMap = new Dictionary>(); Stopwatch stopWatch = new Stopwatch(); @@ -351,8 +356,9 @@ namespace Microsoft.SqlTools.Migration { try { + ILoginsMigrationLogger logger = this.GetLoginsMigrationLogger(); ILoginsMigration loginMigration = new LoginsMigration(parameters.SourceConnectionString, parameters.TargetConnectionString, - null, parameters.LoginList, parameters.AADDomainName); + null, parameters.LoginList, parameters.AADDomainName, logger); IDictionary> exceptionMap = new Dictionary>(); Stopwatch stopWatch = new Stopwatch(); @@ -383,8 +389,9 @@ namespace Microsoft.SqlTools.Migration { try { + ILoginsMigrationLogger logger = this.GetLoginsMigrationLogger(); ILoginsMigration loginMigration = new LoginsMigration(parameters.SourceConnectionString, parameters.TargetConnectionString, - null, parameters.LoginList, parameters.AADDomainName); + null, parameters.LoginList, parameters.AADDomainName, logger); IDictionary> exceptionMap = new Dictionary>(); @@ -416,8 +423,9 @@ namespace Microsoft.SqlTools.Migration { try { + ILoginsMigrationLogger logger = this.GetLoginsMigrationLogger(); ILoginsMigration loginMigration = new LoginsMigration(parameters.SourceConnectionString, parameters.TargetConnectionString, - null, parameters.LoginList, parameters.AADDomainName); + null, parameters.LoginList, parameters.AADDomainName, logger); IDictionary> exceptionMap = new Dictionary>(); Stopwatch stopWatch = new Stopwatch(); @@ -994,6 +1002,14 @@ namespace Microsoft.SqlTools.Migration } } + private ILoginsMigrationLogger GetLoginsMigrationLogger() + { + SqlLoginMigrationConfiguration.AllowTelemetry = true; + SqlLoginMigrationConfiguration.EnableLocalLogging = true; + SqlLoginMigrationConfiguration.LogsRootFolderPath = Path.GetDirectoryName(Logger.LogFileFullPath); + return new DefaultLoginsMigrationLogger(); + } + /// /// Disposes the Migration Service ///