in src/Assessment/Parser/AzureSQLAssessedInstancesParser.cs [135:210]
private void UpdateAssessedInstancesDataset(Dictionary<string, AzureSQLInstanceDataset> AzureSQLInstancesData, string key, AzureSQLAssessedInstanceValue value, AssessmentInformation assessmentInfo, string currencySymbol)
{
if (AzureSQLInstancesData.ContainsKey(key))
return;
AzureSQLInstancesData.Add(key, new AzureSQLInstanceDataset());
AzureSQLInstancesData[key].MemoryInUseMB = value.Properties.MemoryInUseInMB;
AzureSQLInstancesData[key].RecommendedAzureSqlTargetType = value.Properties.RecommendedAzureSqlTargetType;
AzureSQLInstancesData[key].RecommendedSuitability = value.Properties.RecommendedSuitability;
if (assessmentInfo.AssessmentName.Contains("Dev"))
AzureSQLInstancesData[key].Environment = "Dev";
else if (assessmentInfo.AssessmentName.Contains("Prod"))
AzureSQLInstancesData[key].Environment = "Prod";
AzureSQLInstancesData[key].AzureSQLMISkuServiceTier = value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku?.AzureSqlServiceTier;
AzureSQLInstancesData[key].AzureSQLMISkuComputeTier = value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku?.AzureSqlComputeTier;
AzureSQLInstancesData[key].AzureSQLMISkuHardwareGeneration = value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku?.AzureSqlHardwareGeneration;
AzureSQLInstancesData[key].AzureSQLMISkuStorageMaxSizeInMB = value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku == null ? 0.0 : value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku.StorageMaxSizeInMB;
AzureSQLInstancesData[key].AzureSQLMISkuPredictedDataSizeInMB = value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku == null ? 0.0 : value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku.PredictedDataSizeInMB;
AzureSQLInstancesData[key].AzureSQLMISkuPredictedLogSizeInMB = value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku == null ? 0.0 : value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku.PredictedLogSizeInMB;
AzureSQLInstancesData[key].AzureSQLMISkuCores = value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku == null ? 0 : value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku.Cores;
AzureSQLInstancesData[key].AzureSQLMITargetType = value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku == null ? 0 : value.Properties.AzureSqlMISuitabilityDetails.AzureSqlSku.AzureSqlTargetType;
AzureSQLInstancesData[key].AzureSQLMIMonthlyStorageCost = value.Properties.AzureSqlMISuitabilityDetails.MonthlyStorageCost;
AzureSQLInstancesData[key].AzureSQLMIMonthlyLicenseCost = value.Properties.AzureSqlMISuitabilityDetails.MonthlyLicenseCost;
AzureSQLInstancesData[key].AzureSQLMIMigrationTargetPlatform = value.Properties.AzureSqlMISuitabilityDetails.MigrationTargetPlatform;
AzureSQLInstancesData[key].AzureSQLMISuitability = value.Properties.AzureSqlMISuitabilityDetails.Suitability;
AzureSQLInstancesData[key].AzureSQLMIMonthlySecurityCost = UtilityFunctions.GetSecurityCost(value.Properties.AzureSqlMISuitabilityDetails.CostComponents);
AzureSQLInstancesData[key].AzureSQLMIMigrationIssues = GetMigrationIssueList(value.Properties.AzureSqlMISuitabilityDetails.MigrationIssues);
AzureSQLInstancesData[key].AzureSQLVMFamily = value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku?.VirtualMachineSize?.AzureVmFamily;
AzureSQLInstancesData[key].AzureSQLVMCores = value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku == null ? 0 : value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku.VirtualMachineSize.Cores;
AzureSQLInstancesData[key].AzureSQLVMSkuName = value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku?.VirtualMachineSize?.AzureSkuName;
AzureSQLInstancesData[key].AzureSQLVMAvailableCores = value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku == null ? 0 : value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku.VirtualMachineSize.AvailableCores;
AzureSQLInstancesData[key].AzureSQLVMMaxNetworkInterfaces = value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku == null ? 0 : value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku.VirtualMachineSize.MaxNetworkInterfaces;
AzureSQLInstancesData[key].AzureSQLVMDataDisks = value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku == null ? new List<AssessedDisk>() : ConvertDataAndLogDiskToAssessedDiskList(value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku.DataDiskSizes);
AzureSQLInstancesData[key].AzureSQLVMLogDisks = value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku == null ? new List<AssessedDisk>() : ConvertDataAndLogDiskToAssessedDiskList(value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku.LogDiskSizes);
AzureSQLInstancesData[key].AzureSQLVMTargetType = value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku == null ? 0 : value.Properties.AzureSqlVMSuitabilityDetails.AzureSqlSku.AzureSqlTargetType;
AzureSQLInstancesData[key].AzureSQLVMMonthlyLicenseCost = value.Properties.AzureSqlVMSuitabilityDetails.MonthlyLicenseCost;
AzureSQLInstancesData[key].AzureSQLVMMonthlyStorageCost = value.Properties.AzureSqlVMSuitabilityDetails.MonthlyStorageCost;
AzureSQLInstancesData[key].AzureSQLVMMigrationTargetPlatform = value.Properties.AzureSqlVMSuitabilityDetails.MigrationTargetPlatform;
AzureSQLInstancesData[key].AzureSQLVMMonthlySecurityCost = UtilityFunctions.GetSecurityCost(value.Properties.AzureSqlVMSuitabilityDetails.CostComponents);
AzureSQLInstancesData[key].AzureSQLVMSuitability = value.Properties.AzureSqlVMSuitabilityDetails.Suitability;
AzureSQLInstancesData[key].AzureSQLVMMigrationIssues = GetMigrationIssueList(value.Properties.AzureSqlVMSuitabilityDetails.MigrationIssues);
AzureSQLInstancesData[key].MachineArmId = value.Properties.MachineArmId?.ToLower();
AzureSQLInstancesData[key].MachineName = value.Properties.MachineName;
AzureSQLInstancesData[key].InstanceName = value.Properties.InstanceName;
AzureSQLInstancesData[key].SQLInstanceSDSArmId = value.Properties.SqlInstanceSDSArmId?.ToLower();
AzureSQLInstancesData[key].SQLEdition = value.Properties.SqlEdition;
AzureSQLInstancesData[key].SQLVersion = value.Properties.SqlVersion;
AzureSQLInstancesData[key].SupportStatus = value.Properties.ProductSupportStatus == null ? new EnumDescriptionHelper().GetEnumDescription(SupportabilityStatus.Unknown) : new EnumDescriptionHelper().GetEnumDescription(value.Properties.ProductSupportStatus.SupportStatus);
AzureSQLInstancesData[key].NumberOfCoresAllocated = value.Properties.NumberOfCoresAllocated;
AzureSQLInstancesData[key].PercentageCoresUtilization = value.Properties.PercentageCoresUtilization;
AzureSQLInstancesData[key].LogicalDisks = GetAssessedLogicalDiskList(value.Properties.LogicalDisks);
AzureSQLInstancesData[key].ConfidenceRatingInPercentage = value.Properties.ConfidenceRatingInPercentage;
AzureSQLInstancesData[key].CreatedTimestamp = value.Properties.CreatedTimestamp;
AzureSQLInstancesData[key].DatabaseSummaryNumberOfUserDatabases = value.Properties.DatabaseSummary == null ? 0 : value.Properties.DatabaseSummary.NumberOfUserDatabases;
AzureSQLInstancesData[key].DatabaseSummaryTotalDiscoveredUserDatabases = value.Properties.DatabaseSummary == null ? 0 : value.Properties.DatabaseSummary.TotalDiscoveredUserDatabases;
AzureSQLInstancesData[key].DatabaseSummaryTotalDatabaseSizeInMB = value.Properties.DatabaseSummary == null ? 0 : value.Properties.DatabaseSummary.TotalDatabaseSizeInMB;
AzureSQLInstancesData[key].DatabaseSumaryLargestDatabaseSizeInMB = value.Properties.DatabaseSummary == null ? 0 : value.Properties.DatabaseSummary.LargestDatabaseSizeInMB;
AzureSQLInstancesData[key].GroupName = assessmentInfo.GroupName;
if (AzureSQLInstancesData[key].Environment.Equals("Dev"))
{
AzureSQLInstancesData[key].MonthlyAzureBackupCostEstimate = 0;
AzureSQLInstancesData[key].MonthlyAzureSiteRecoveryCostEstimate = 0;
return;
}
AzureSQLInstancesData[key].MonthlyAzureSiteRecoveryCostEstimate = UtilityFunctions.GetAzureSiteRecoveryMonthlyCostEstimate(currencySymbol);
AzureSQLInstancesData[key].MonthlyAzureBackupCostEstimate = UtilityFunctions.GetAzureBackupMonthlyCostEstimate(AzureSQLInstancesData[key].LogicalDisks, currencySymbol);
}