public VmDashboardInfo GetVm(string subscriptionId, int Id) { try { ICmpWapDb cwdb = new CmpWapDb(); ICmpWapDbTenantRepository cwdbTenant = new CmpWapDb(); var foundVmDepRequest = cwdb.FetchVmDepRequest(Id); var vmsizes = cwdbTenant.FetchVmSizeInfoList(subscriptionId); if (null != foundVmDepRequest && null != foundVmDepRequest.CmpRequestID) { var cmpi = new VMServiceRepository(_eventLog); //when we solve the big 'method not returning' bug: uncomment line below, delete second line below //var vm = cmpi.GetVm(Convert.ToInt32(foundVmDepRequest.CmpRequestID), // CmpInterfaceModel.Constants.FetchType.AzureStatus); var vm = GetLocalvmDBI(foundVmDepRequest); cwdb.UpdateVmIp(Id, vm.InternalIP); vm.Cores = vmsizes.Where(x => x.Name == vm.RoleSize).Select(x => x.Cores).FirstOrDefault().ToString(); vm.OSVirtualHardDisk.Type = "OS Disk"; if (vm.DataVirtualHardDisks != null) { vm.DataVirtualHardDisks.Select(d => { d.Type = "Data Disk"; return(d); }).ToList(); } return(vm); } return(null); } catch (Exception ex) { LogThis(ex, EventLogEntryType.Error, "CmpWapExtension.VmsController.GetVm()", 100, 1); throw; } }
//********************************************************************* /// /// <summary> /// This method fetches VM size information from WAP DB. /// </summary> /// /// All Azure sizes -> https://msdn.microsoft.com/en-us/library/azure/dn197896.aspx /// //********************************************************************* private void FetchVmSizeFromDb() { var cwdb = new CmpWapDb(); var list = cwdb.FetchVmSizeInfoList(onlyActiveOnes: true); SizeList.Clear(); SizeList.AddRange(list); }
private static void UpdateVmSizes(IEnumerable <AzureCatalogue> azureCatalogueResult) { try { var cmpWapDb = new CmpWapDb(); var cmpWapVmSizes = cmpWapDb.FetchVmSizeInfoList(onlyActiveOnes: false).ToList(); var newVmSizes = new List <VmSize>(); var azureCatalogueVmSizes = new List <AzureVmSizeArmData>(); //Eliminate dupes, we only need them to establish the mappings in another method. foreach (var regionInCatalogue in azureCatalogueResult) { azureCatalogueVmSizes.AddRange(regionInCatalogue.VmSizes); } azureCatalogueVmSizes = azureCatalogueVmSizes.Distinct(new AzureVmSizeArmData.AzureVmSizeComparer()).ToList(); //Translate and convert each AzureVmSizeArmData object into a VmSize object. foreach (var vmSize in azureCatalogueVmSizes) { if (!cmpWapVmSizes.Any(x => string.Equals(vmSize.name, x.Name, StringComparison.InvariantCultureIgnoreCase))) { var newVmSize = new VmSize { Name = vmSize.name, Cores = vmSize.numberOfCores, Memory = vmSize.memoryInMB, MaxDataDiskCount = vmSize.maxDataDiskCount, IsActive = true, CreatedBy = "CMP WAP Extension", LastUpdatedBy = "CMP WAP Extension", CreatedOn = DateTime.UtcNow, LastUpdatedOn = DateTime.UtcNow }; if (vmSize.memoryInMB >= 1000) { newVmSize.Description = vmSize.name + " - " + vmSize.numberOfCores + " Cores, " + vmSize.memoryInMB / 1000 + " GB, " + vmSize.maxDataDiskCount + " Disk"; } else { newVmSize.Description = vmSize.name + " - " + vmSize.numberOfCores + " Cores, " + vmSize.memoryInMB + " MB, " + vmSize.maxDataDiskCount + " Disk"; } newVmSizes.Add(newVmSize); } } if (newVmSizes.Any()) { cmpWapDb.InsertVmSizeByBatch(newVmSizes); } } catch (Exception ex) { throw new Exception("Exception caught in UpdateVmSizes: " + ex.ToString()); } }
private static void UpdateRegionVmSizeMappings(IEnumerable <AzureCatalogue> azureCatalogueResult) { var cmpWapDb = new CmpWapDb(); var cmpWapRegions = cmpWapDb.FetchAzureRegionList(onlyActiveOnes: false).ToList(); var cmpWapVmSizes = cmpWapDb.FetchVmSizeInfoList(onlyActiveOnes: false).ToList(); var newMappings = new List <AzureRegionVmSizeMapping>(); try { foreach (var regionInCatalogue in azureCatalogueResult) { foreach (var vmSize in regionInCatalogue.VmSizes) { //We need to get the IDs to make the mapping object. Query the VmSize and Region tables to get them. var vmSizeToMap = cmpWapVmSizes.FirstOrDefault(x => string.Equals(vmSize.name, x.Name, StringComparison.InvariantCultureIgnoreCase)); var regionToMap = cmpWapRegions.FirstOrDefault(y => string.Equals(regionInCatalogue.RegionName.Replace(" ", string.Empty), y.Name.Replace(" ", string.Empty), StringComparison.InvariantCultureIgnoreCase)); if (vmSizeToMap == null || regionToMap == null) { continue; //something's wrong here if we reach this. } var newMapping = new AzureRegionVmSizeMapping { AzureRegionId = regionToMap.AzureRegionId, VmSizeId = vmSizeToMap.VmSizeId, IsActive = true }; newMappings.Add(newMapping); } } if (newMappings.Any()) { cmpWapDb.SetRegionVmSizeMappingsByBatch(newMappings); } } catch (Exception ex) { throw new Exception("Exception caught in UpdateRegionVmSizeMappings: " + ex.ToString()); } }
private void FetchTenantVmSizes() { ICmpWapDbTenantRepository ctr = new CmpWapDb(); var result = ctr.FetchVmSizeInfoList(""); }