Exemplo n.º 1
0
        private static void UpdateAzureRegions(IEnumerable <AzureCatalogue> azureCatalogueResult)
        {
            try
            {
                var cmpWapDb     = new CmpWapDb();
                var cmpRegions   = cmpWapDb.FetchAzureRegionList(onlyActiveOnes: false);
                var azureRegions = azureCatalogueResult.Select(ac => new AzureRegion
                {
                    Name             = ac.RegionName,
                    Description      = ac.RegionDisplayName,
                    OsImageContainer = null,
                    IsActive         = true,
                    CreatedBy        = "CMP WAP Extension",
                    LastUpdatedBy    = "CMP WAP Extension",
                    CreatedOn        = DateTime.UtcNow,
                    LastUpdatedOn    = DateTime.UtcNow
                });

                var newRegions = azureRegions.Where(azureItem => !cmpRegions.Any(cmpItem => string.Equals(azureItem.Name.Replace(" ", string.Empty), cmpItem.Name.Replace(" ", string.Empty), StringComparison.InvariantCultureIgnoreCase))).ToList();

                if (newRegions.Any())
                {
                    cmpWapDb.InsertAzureRegionByBatch(newRegions);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Exception caught in UpdateAzureRegions: " + ex.ToString());
            }
        }
Exemplo n.º 2
0
        //*********************************************************************
        ///
        /// <summary>
        ///     This method fetchs Azure region specific information from the
        ///     WAP DB.
        /// </summary>
        ///
        //*********************************************************************

        private void FetchAzureRegionFromDb()
        {
            var cwdb = new CmpWapDb();
            var list = cwdb.FetchAzureRegionList(onlyActiveOnes: true);

            OsList.Clear();
            OsList.AddRange(list);
        }
Exemplo n.º 3
0
        private static void UpdateRegionVmOsMappings(IEnumerable <AzureCatalogue> azureCatalogueResult)
        {
            var cmpWapDb      = new CmpWapDb();
            var cmpWapRegions = cmpWapDb.FetchAzureRegionList(onlyActiveOnes: false).ToList();
            var cmpWapVmOses  = cmpWapDb.FetchOsInfoList(onlyActiveOnes: false).ToList();
            var newMappings   = new List <AzureRegionVmOsMapping>();

            try
            {
                foreach (var regionInCatalogue in azureCatalogueResult)
                {
                    foreach (var vmOs in regionInCatalogue.VmOses)
                    {
                        //Since we format the VmOs name when inserting it into the DB table, to look it up, we will need to do the same format operation as before
                        var vmOsName = (vmOs.Publisher + ", " + vmOs.Offer + ", " + vmOs.SKU).Length >= 100
                            ? (vmOs.Publisher + ", " + vmOs.Offer + ", " + vmOs.SKU).Substring(0, 100)
                            : (vmOs.Publisher + ", " + vmOs.Offer + ", " + vmOs.SKU); //Adjusting for DB limitations in length, so that the logic comparison does not fail

                        //We need to get the IDs to make the mapping object. Query the VmOs and Region tables to get them.
                        var vmOsToMap   = cmpWapVmOses.FirstOrDefault(x => string.Equals(vmOsName, x.Name, StringComparison.InvariantCultureIgnoreCase));
                        var regionToMap = cmpWapRegions.FirstOrDefault(y => string.Equals(regionInCatalogue.RegionName.Replace(" ", string.Empty), y.Name.Replace(" ", string.Empty), StringComparison.InvariantCultureIgnoreCase));
                        if (vmOsToMap == null || regionToMap == null)
                        {
                            continue; //something's wrong here if we reach this.
                        }
                        var newMapping = new AzureRegionVmOsMapping
                        {
                            AzureRegionId = regionToMap.AzureRegionId,
                            VmOsId        = vmOsToMap.VmOsId,
                            IsActive      = true
                        };

                        newMappings.Add(newMapping);
                    }
                }

                if (newMappings.Any())
                {
                    cmpWapDb.SetRegionVmOsMappingsByBatch(newMappings);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Exception caught in UpdateRegionVmOsMappings: " + ex.ToString());
            }
        }
Exemplo n.º 4
0
        //*********************************************************************
        ///
        /// <summary>
        ///     This method fetchs Azure region specific information from the
        ///     WAP DB.
        /// </summary>
        ///
        //*********************************************************************

        private void FetchAzureRegionFromDb(string subscriptionId)
        {
            var cwdb = new CmpWapDb();

            OsList.Clear();
            List <AzureRegion> list;

            if (!string.IsNullOrWhiteSpace(subscriptionId))
            {
                var repository = cwdb as ICmpWapDbTenantRepository;
                list = repository.FetchAzureRegionList(subscriptionId);
            }
            else
            {
                list = cwdb.FetchAzureRegionList(onlyActiveOnes: true);
            }
            OsList.AddRange(list);
        }
Exemplo n.º 5
0
        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());
            }
        }