mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 01:25:40 -05:00
[SQL-Migration] Port changes to new migration service (#1835)
This PR ports some changes that were missed to the new, separated Migration Service project. Here is the PR to separate Migration Service into project: #1828 Changes from the following PRs were not ported over: [SQL Migration] Mark SQL MI premium-series memory optimized SKUs as GA #1811 Update login migrations nuget with perf improvements #1789
This commit is contained in:
@@ -546,21 +546,6 @@ namespace Microsoft.SqlTools.Migration
|
||||
prefs.EligibleSkuCategories = GetEligibleSkuCategories("AzureSqlManagedInstance", parameters.IncludePreviewSkus);
|
||||
resultSet.sqlMiResults = provider.GetSkuRecommendation(prefs, req);
|
||||
|
||||
// if no result was generated, create a result with a null SKU
|
||||
if (!resultSet.sqlMiResults.Any())
|
||||
{
|
||||
resultSet.sqlMiResults.Add(new SkuRecommendationResult()
|
||||
{
|
||||
SqlInstanceName = parameters.TargetSqlInstance,
|
||||
DatabaseName = null,
|
||||
TargetSku = null,
|
||||
MonthlyCost = null,
|
||||
Ranking = -1,
|
||||
PositiveJustifications = null,
|
||||
NegativeJustifications = null,
|
||||
});
|
||||
}
|
||||
|
||||
sqlMiStopwatch.Stop();
|
||||
resultSet.sqlMiDurationInMs = sqlMiStopwatch.ElapsedMilliseconds;
|
||||
|
||||
@@ -582,21 +567,6 @@ namespace Microsoft.SqlTools.Migration
|
||||
prefs.EligibleSkuCategories = GetEligibleSkuCategories("AzureSqlVirtualMachine", parameters.IncludePreviewSkus);
|
||||
resultSet.sqlVmResults = provider.GetSkuRecommendation(prefs, req);
|
||||
|
||||
// if no result was generated, create a result with a null SKU
|
||||
if (!resultSet.sqlVmResults.Any())
|
||||
{
|
||||
resultSet.sqlVmResults.Add(new SkuRecommendationResult()
|
||||
{
|
||||
SqlInstanceName = parameters.TargetSqlInstance,
|
||||
DatabaseName = null,
|
||||
TargetSku = null,
|
||||
MonthlyCost = null,
|
||||
Ranking = -1,
|
||||
PositiveJustifications = null,
|
||||
NegativeJustifications = null,
|
||||
});
|
||||
}
|
||||
|
||||
sqlVmStopwatch.Stop();
|
||||
resultSet.sqlVmDurationInMs = sqlVmStopwatch.ElapsedMilliseconds;
|
||||
|
||||
@@ -632,11 +602,6 @@ namespace Microsoft.SqlTools.Migration
|
||||
List<AzureSqlSkuCategory> eligibleSkuCategories = GetEligibleSkuCategories("AzureSqlDatabase", parameters.IncludePreviewSkus);
|
||||
ElasticStrategySKURecommendationPipeline pi = new ElasticStrategySKURecommendationPipeline(eligibleSkuCategories);
|
||||
DataTable SqlMISpec = pi.SqlMISpec.Copy();
|
||||
if (!parameters.IncludePreviewSkus)
|
||||
{
|
||||
SqlMISpec = pi.SqlMISpec.AsEnumerable().Where(
|
||||
p => !p.Field<string>("SLO").Contains("Premium")).CopyToDataTable();
|
||||
}
|
||||
MISkuRecParams MiSkuRecParams = new MISkuRecParams(pi.SqlGPMIFileSpec, SqlMISpec, elasticaggregator.FileLevelTs, elasticaggregator.InstanceTs, pi.MILookupTable, Convert.ToDouble(parameters.ScalingFactor) / 100.0, parameters.TargetSqlInstance);
|
||||
DbSkuRecParams DbSkuRecParams = new DbSkuRecParams(pi.SqlDbSpec, elasticaggregator.DatabaseTs, pi.DbLookupTable, Convert.ToDouble(parameters.ScalingFactor) / 100.0, parameters.TargetSqlInstance);
|
||||
resultSet.sqlDbResults = pi.ElasticStrategyGetSkuRecommendation(MiSkuRecParams, DbSkuRecParams, req);
|
||||
@@ -662,30 +627,10 @@ namespace Microsoft.SqlTools.Migration
|
||||
List<AzureSqlSkuCategory> eligibleSkuCategories = GetEligibleSkuCategories("AzureSqlManagedInstance", parameters.IncludePreviewSkus);
|
||||
ElasticStrategySKURecommendationPipeline pi = new ElasticStrategySKURecommendationPipeline(eligibleSkuCategories);
|
||||
DataTable SqlMISpec = pi.SqlMISpec.Copy();
|
||||
if (!parameters.IncludePreviewSkus)
|
||||
{
|
||||
SqlMISpec = pi.SqlMISpec.AsEnumerable().Where(
|
||||
p => !p.Field<string>("SLO").Contains("Premium")).CopyToDataTable();
|
||||
}
|
||||
MISkuRecParams MiSkuRecParams = new MISkuRecParams(pi.SqlGPMIFileSpec, SqlMISpec, elasticaggregator.FileLevelTs, elasticaggregator.InstanceTs, pi.MILookupTable, Convert.ToDouble(parameters.ScalingFactor) / 100.0, parameters.TargetSqlInstance);
|
||||
DbSkuRecParams DbSkuRecParams = new DbSkuRecParams(pi.SqlDbSpec, elasticaggregator.DatabaseTs, pi.DbLookupTable, Convert.ToDouble(parameters.ScalingFactor) / 100.0, parameters.TargetSqlInstance);
|
||||
resultSet.sqlMiResults = pi.ElasticStrategyGetSkuRecommendation(MiSkuRecParams, DbSkuRecParams, req);
|
||||
|
||||
// if no result was generated, create a result with a null SKU
|
||||
if (!resultSet.sqlMiResults.Any())
|
||||
{
|
||||
resultSet.sqlMiResults.Add(new SkuRecommendationResult()
|
||||
{
|
||||
SqlInstanceName = parameters.TargetSqlInstance,
|
||||
DatabaseName = null,
|
||||
TargetSku = null,
|
||||
MonthlyCost = null,
|
||||
Ranking = -1,
|
||||
PositiveJustifications = null,
|
||||
NegativeJustifications = null,
|
||||
});
|
||||
}
|
||||
|
||||
sqlMiStopwatch.Stop();
|
||||
resultSet.sqlMiDurationInMs = sqlMiStopwatch.ElapsedMilliseconds;
|
||||
|
||||
@@ -701,19 +646,8 @@ namespace Microsoft.SqlTools.Migration
|
||||
// generate SQL VM recommendations, if applicable
|
||||
if (parameters.TargetPlatforms.Contains("AzureSqlVirtualMachine"))
|
||||
{
|
||||
// elastic model currently doesn't support VM recommendation, return null SKU for now
|
||||
resultSet.sqlVmResults = new List<SkuRecommendationResult> {
|
||||
new SkuRecommendationResult()
|
||||
{
|
||||
SqlInstanceName = parameters.TargetSqlInstance,
|
||||
DatabaseName = null,
|
||||
TargetSku = null,
|
||||
MonthlyCost = null,
|
||||
Ranking = -1,
|
||||
PositiveJustifications = null,
|
||||
NegativeJustifications = null,
|
||||
}
|
||||
};
|
||||
// elastic model currently doesn't support VM recommendation, return empty list
|
||||
resultSet.sqlVmResults = new List<SkuRecommendationResult> { };
|
||||
resultSet.sqlVmDurationInMs = -1;
|
||||
resultSet.sqlVmReportPath = String.Empty;
|
||||
}
|
||||
@@ -935,8 +869,6 @@ namespace Microsoft.SqlTools.Migration
|
||||
ComputeTier.Provisioned,
|
||||
AzureSqlPaaSHardwareType.PremiumSeries));
|
||||
|
||||
if (includePreviewSkus)
|
||||
{
|
||||
// Premium Memory Optimized BC/GP
|
||||
eligibleSkuCategories.Add(new AzureSqlSkuPaaSCategory(
|
||||
AzureSqlTargetPlatform.AzureSqlManagedInstance,
|
||||
@@ -951,7 +883,6 @@ namespace Microsoft.SqlTools.Migration
|
||||
AzureSqlPaaSServiceTier.GeneralPurpose,
|
||||
ComputeTier.Provisioned,
|
||||
AzureSqlPaaSHardwareType.PremiumSeriesMemoryOptimized));
|
||||
}
|
||||
break;
|
||||
|
||||
case "AzureSqlVirtualMachine":
|
||||
@@ -971,7 +902,6 @@ namespace Microsoft.SqlTools.Migration
|
||||
vmCapabilities.AddRange(vmPreviewCapabilities);
|
||||
}
|
||||
|
||||
|
||||
foreach (VirtualMachineFamily family in AzureVirtualMachineFamilyGroup.FamilyGroups[VirtualMachineFamilyType.GeneralPurpose]
|
||||
.Concat(AzureVirtualMachineFamilyGroup.FamilyGroups[VirtualMachineFamilyType.MemoryOptimized]))
|
||||
{
|
||||
|
||||
@@ -13,6 +13,11 @@ namespace Microsoft.SqlTools.Migration.Utils
|
||||
{
|
||||
public static void AddExceptions(this IDictionary<string, IEnumerable<ReportableException>> exceptionMap1, IDictionary<string, IEnumerable<ReportableException>> exceptionMap2)
|
||||
{
|
||||
if (exceptionMap1 is null || exceptionMap2 is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var keyValuePair2 in exceptionMap2)
|
||||
{
|
||||
// If the dictionary already contains the key then merge them
|
||||
|
||||
Reference in New Issue
Block a user