/// <summary> /// Initializes an instance of the PSAutoscaleSettingProperty class. /// </summary> /// <param name="autoscaleSetting">The autoscale setting to use as base</param> public PSAutoscaleSettingProperty(AutoscaleSetting autoscaleSetting) { if (autoscaleSetting != null) { this.Enabled = autoscaleSetting.Enabled; this.Name = autoscaleSetting.Name; this.Profiles = autoscaleSetting.Profiles; this.TargetResourceUri = autoscaleSetting.TargetResourceUri; } }
private PSAutoscaleSetting CreateCompleteSpec(string location, string name, List<AutoscaleProfile> profiles = null) { if (profiles == null) { profiles = new List<AutoscaleProfile>() { this.CreateAutoscaleProfile() }; } var settingProperty = new AutoscaleSetting { Name = name, Enabled = true, Profiles = profiles, TargetResourceUri = Utilities.ResourceUri }; var setting = new AutoscaleSettingResource { Location = location, Name = name, Properties = new PSAutoscaleSettingProperty(settingProperty), Tags = new LazyDictionary<string, string>() }; return new PSAutoscaleSetting(setting); }
private static AutoscaleSetting CreateAutoscaleSetting(string resourceUri, string metricName, string metricNamespace) { var capacity = new ScaleCapacity { Default = "1", Maximum = "100", Minimum = "1" }; var fixedDate = new TimeWindow() { End = DateTime.Parse("2014-04-16T21:06:11.7882792Z"), Start = DateTime.Parse("2014-04-15T21:06:11.7882792Z"), TimeZone = TimeZoneInfo.Utc.Id.ToString() }; var recurrence = new Recurrence() { Frequency = RecurrenceFrequency.Week, Schedule = new RecurrentSchedule() { Days = new List<string> { "Monday" }, Hours = new List<int> { 0 }, Minutes = new int[] { 10 }, TimeZone = "UTC-11" } }; var rules = new ScaleRule[] { new ScaleRule() { MetricTrigger = new MetricTrigger { MetricName = metricName, MetricNamespace = metricNamespace, MetricResourceUri = resourceUri, Operator = ComparisonOperationType.GreaterThan, Statistic = MetricStatisticType.Average, Threshold = 80.0, TimeAggregation = TimeAggregationType.Maximum, TimeGrain = TimeSpan.FromMinutes(1), TimeWindow = TimeSpan.FromHours(1) }, ScaleAction = new ScaleAction { Cooldown = TimeSpan.FromMinutes(20), Direction = ScaleDirection.Increase, Type = ScaleType.ExactCount, Value = "10" } } }; AutoscaleSetting setting = new AutoscaleSetting { Name = "setting1", TargetResourceUri = resourceUri, Enabled = true, Profiles = new AutoscaleProfile[] { new AutoscaleProfile() { Name = "Profile1", Capacity = capacity, FixedDate = fixedDate, Recurrence = null, Rules = rules }, new AutoscaleProfile() { Name = "Profile2", Capacity = capacity, FixedDate = null, Recurrence = recurrence, Rules = rules } } }; return setting; }
private static void AreEqual(AutoscaleSetting exp, AutoscaleSetting act) { if (exp != null) { Assert.Equal(exp.Enabled, act.Enabled); Assert.Equal(exp.Name, act.Name); Assert.Equal(exp.TargetResourceUri, act.TargetResourceUri); for (int i = 0; i < exp.Profiles.Count; i++) { var expectedProfile = exp.Profiles[i]; var actualProfile = act.Profiles[i]; AreEqual(expectedProfile, actualProfile); } } }