internal static WhiteListForecastWorker GetWhiteListForecastWorker() { IConfigurationSource configurationSource = GetConfigurationSource(); WhiteListConfiguration whiteListConfiguration = configurationSource.GetWindowsAzureHostedServiceWhiteListConfiguration(); if (whiteListConfiguration != null) { SubscriptionConfiguration[] subscriptionConfigurations = configurationSource.GetAllWindowsAzureSubscriptionConfigurations(); ISubscription[] subscriptions = new ISubscription[subscriptionConfigurations.Length]; for (int i = 0; i < subscriptionConfigurations.Length; i++) { subscriptions[i] = subscriptionConfigurations[i].Convert(); } if (whiteListConfiguration.IncludeDeploymentCreateServices) { foreach (DeploymentCreateConfiguration deploymentCreateConfiguration in configurationSource.GetWindowsAzureDeploymentCreateConfigurations()) { bool alreadyIncluded = false; foreach (WhiteListService configuredWhiteListService in whiteListConfiguration.Services) { if (configuredWhiteListService.Name == deploymentCreateConfiguration.ServiceName) { alreadyIncluded = true; } } if (!alreadyIncluded) { WhiteListService whiteListService = new WhiteListService { Name = deploymentCreateConfiguration.ServiceName }; whiteListConfiguration.Services.Add(whiteListService); } } } if (whiteListConfiguration.IncludeDeploymentDeleteServices) { foreach (DeploymentDeleteConfiguration deploymentDeleteConfiguration in configurationSource.GetWindowsAzureDeploymentDeleteConfigurations()) { bool alreadyIncluded = false; foreach (WhiteListService configuredWhiteListService in whiteListConfiguration.Services) { if (configuredWhiteListService.Name == deploymentDeleteConfiguration.ServiceName) { alreadyIncluded = true; } } if (!alreadyIncluded) { WhiteListService whiteListService = new WhiteListService { Name = deploymentDeleteConfiguration.ServiceName }; whiteListConfiguration.Services.Add(whiteListService); } } } if (whiteListConfiguration.IncludeHorizontalScaleServices) { foreach (ScheduledHorizontalScaleConfiguration windowsAzureScheduledHorizontalScaleConfiguration in configurationSource.GetWindowsAzureScheduledHorizontalScaleConfigurations()) { bool alreadyIncluded = false; foreach (WhiteListService configuredWhiteListService in whiteListConfiguration.Services) { if (configuredWhiteListService.Name == windowsAzureScheduledHorizontalScaleConfiguration.ServiceName) { alreadyIncluded = true; } } if (!alreadyIncluded) { WhiteListService whiteListService = new WhiteListService { Name = windowsAzureScheduledHorizontalScaleConfiguration.ServiceName }; whiteListConfiguration.Services.Add(whiteListService); } } } WhiteListForecastWorker whiteListForecastWorker = new WhiteListForecastWorker( subscriptions, new Deployment(), new Operation(), whiteListConfiguration.Services.ToArray(), whiteListConfiguration.PollingIntervalInMinutes); return(whiteListForecastWorker); } return(null); }
internal static ScheduledHorizontalScaleForecastWorker[] GetScheduledHorizontalScaleForecastWorkers() { IConfigurationSource configurationSource = GetConfigurationSource(); ArrayList list = new ArrayList(); foreach (ScheduledHorizontalScaleConfiguration scheduledHorizontalScaleConfiguration in configurationSource.GetWindowsAzureScheduledHorizontalScaleConfigurations()) { SubscriptionConfiguration subscriptionConfiguration = configurationSource.GetWindowsAzureSubscriptionConfiguration(scheduledHorizontalScaleConfiguration.SubscriptionConfigurationId); foreach (ScheduleDefinitionConfiguration scheduleDefinitionConfiguration in scheduledHorizontalScaleConfiguration.Schedules) { HorizontalScale[] horizontalScales = GetHorizontalScalesFromHorizontalScaleConfiguration(scheduledHorizontalScaleConfiguration.HorizontalScales.ToArray()); ScheduleDay[] scheduleDays = GetScheduleDaysFromScheduleConfiguration(scheduleDefinitionConfiguration); ScheduledHorizontalScaleForecastWorker scheduledHorizontalScaleForecastWorker = new ScheduledHorizontalScaleForecastWorker( new Deployment(), new Operation(), subscriptionConfiguration.SubscriptionId, subscriptionConfiguration.CertificateThumbprint, scheduledHorizontalScaleConfiguration.ServiceName, scheduledHorizontalScaleConfiguration.DeploymentSlot, horizontalScales, scheduleDays, scheduledHorizontalScaleConfiguration.TreatWarningsAsError, scheduledHorizontalScaleConfiguration.Mode, scheduledHorizontalScaleConfiguration.PollingIntervalInMinutes); list.Add(scheduledHorizontalScaleForecastWorker); } } return((ScheduledHorizontalScaleForecastWorker[])list.ToArray(typeof(ScheduledHorizontalScaleForecastWorker))); }