mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 01:25:40 -05:00
[SQL Migration] Mark SQL MI premium-series memory optimized SKUs as GA (#1811)
* GA SQL MI premium-series memory optimized SKUs * Fix null reference exception
This commit is contained in:
@@ -606,21 +606,6 @@ namespace Microsoft.SqlTools.ServiceLayer.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;
|
||||
|
||||
@@ -642,21 +627,6 @@ namespace Microsoft.SqlTools.ServiceLayer.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;
|
||||
|
||||
@@ -692,11 +662,6 @@ namespace Microsoft.SqlTools.ServiceLayer.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);
|
||||
@@ -722,30 +687,10 @@ namespace Microsoft.SqlTools.ServiceLayer.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;
|
||||
|
||||
@@ -761,19 +706,8 @@ namespace Microsoft.SqlTools.ServiceLayer.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;
|
||||
}
|
||||
@@ -994,24 +928,20 @@ namespace Microsoft.SqlTools.ServiceLayer.Migration
|
||||
AzureSqlPaaSServiceTier.GeneralPurpose,
|
||||
ComputeTier.Provisioned,
|
||||
AzureSqlPaaSHardwareType.PremiumSeries));
|
||||
// Premium Memory Optimized BC/GP
|
||||
eligibleSkuCategories.Add(new AzureSqlSkuPaaSCategory(
|
||||
AzureSqlTargetPlatform.AzureSqlManagedInstance,
|
||||
AzureSqlPurchasingModel.vCore,
|
||||
AzureSqlPaaSServiceTier.BusinessCritical,
|
||||
ComputeTier.Provisioned,
|
||||
AzureSqlPaaSHardwareType.PremiumSeriesMemoryOptimized));
|
||||
|
||||
if (includePreviewSkus)
|
||||
{
|
||||
// Premium Memory Optimized BC/GP
|
||||
eligibleSkuCategories.Add(new AzureSqlSkuPaaSCategory(
|
||||
AzureSqlTargetPlatform.AzureSqlManagedInstance,
|
||||
AzureSqlPurchasingModel.vCore,
|
||||
AzureSqlPaaSServiceTier.BusinessCritical,
|
||||
ComputeTier.Provisioned,
|
||||
AzureSqlPaaSHardwareType.PremiumSeriesMemoryOptimized));
|
||||
|
||||
eligibleSkuCategories.Add(new AzureSqlSkuPaaSCategory(
|
||||
AzureSqlTargetPlatform.AzureSqlManagedInstance,
|
||||
AzureSqlPurchasingModel.vCore,
|
||||
AzureSqlPaaSServiceTier.GeneralPurpose,
|
||||
ComputeTier.Provisioned,
|
||||
AzureSqlPaaSHardwareType.PremiumSeriesMemoryOptimized));
|
||||
}
|
||||
eligibleSkuCategories.Add(new AzureSqlSkuPaaSCategory(
|
||||
AzureSqlTargetPlatform.AzureSqlManagedInstance,
|
||||
AzureSqlPurchasingModel.vCore,
|
||||
AzureSqlPaaSServiceTier.GeneralPurpose,
|
||||
ComputeTier.Provisioned,
|
||||
AzureSqlPaaSHardwareType.PremiumSeriesMemoryOptimized));
|
||||
break;
|
||||
|
||||
case "AzureSqlVirtualMachine":
|
||||
@@ -1031,7 +961,6 @@ namespace Microsoft.SqlTools.ServiceLayer.Migration
|
||||
vmCapabilities.AddRange(vmPreviewCapabilities);
|
||||
}
|
||||
|
||||
|
||||
foreach (VirtualMachineFamily family in AzureVirtualMachineFamilyGroup.FamilyGroups[VirtualMachineFamilyType.GeneralPurpose]
|
||||
.Concat(AzureVirtualMachineFamilyGroup.FamilyGroups[VirtualMachineFamilyType.MemoryOptimized]))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user