Skip to content

Commit 1f238b3

Browse files
committed
resource/alicloud_ess_scaling_group: add attributes of compensate_with_on_demand, capacity_options_on_demand_base_capacity, capacity_options_on_demand_percentage_above_base_capacity, capacity_options_compensate_with_on_demand and capacity_options_spot_auto_replace_on_demand.
1 parent 1e36241 commit 1f238b3

3 files changed

+319
-0
lines changed

alicloud/resource_alicloud_ess_scaling_group.go

+85
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,33 @@ func resourceAlicloudEssScalingGroup() *schema.Resource {
186186
Optional: true,
187187
Computed: true,
188188
},
189+
"compensate_with_on_demand": {
190+
Type: schema.TypeBool,
191+
Optional: true,
192+
Computed: true,
193+
},
194+
"capacity_options_on_demand_base_capacity": {
195+
Type: schema.TypeInt,
196+
Optional: true,
197+
Computed: true,
198+
ValidateFunc: IntBetween(0, 1000),
199+
},
200+
"capacity_options_on_demand_percentage_above_base_capacity": {
201+
Type: schema.TypeInt,
202+
Optional: true,
203+
Computed: true,
204+
ValidateFunc: IntBetween(0, 100),
205+
},
206+
"capacity_options_compensate_with_on_demand": {
207+
Type: schema.TypeBool,
208+
Optional: true,
209+
Computed: true,
210+
},
211+
"capacity_options_spot_auto_replace_on_demand": {
212+
Type: schema.TypeBool,
213+
Optional: true,
214+
Computed: true,
215+
},
189216
"resource_group_id": {
190217
Type: schema.TypeString,
191218
Optional: true,
@@ -331,7 +358,9 @@ func resourceAliyunEssScalingGroupRead(d *schema.ResourceData, meta interface{})
331358
if object["SpotInstancePools"] != nil {
332359
d.Set("spot_instance_pools", object["SpotInstancePools"])
333360
}
361+
334362
d.Set("spot_instance_remedy", object["SpotInstanceRemedy"])
363+
d.Set("compensate_with_on_demand", object["CompensateWithOnDemand"])
335364
d.Set("group_deletion_protection", object["GroupDeletionProtection"])
336365
var polices []string
337366
if len(object["RemovalPolicies"].(map[string]interface{})["RemovalPolicy"].([]interface{})) > 0 {
@@ -393,6 +422,22 @@ func resourceAliyunEssScalingGroupRead(d *schema.ResourceData, meta interface{})
393422
}
394423
}
395424

425+
if v := object["CapacityOptions"]; v != nil {
426+
m := v.(map[string]interface{})
427+
if m["OnDemandBaseCapacity"] != nil {
428+
d.Set("capacity_options_on_demand_base_capacity", m["OnDemandBaseCapacity"])
429+
}
430+
if m["OnDemandPercentageAboveBaseCapacity"] != nil {
431+
d.Set("capacity_options_on_demand_percentage_above_base_capacity", m["OnDemandPercentageAboveBaseCapacity"])
432+
}
433+
if m["CompensateWithOnDemand"] != nil {
434+
d.Set("capacity_options_compensate_with_on_demand", m["CompensateWithOnDemand"])
435+
}
436+
if m["SpotAutoReplaceOnDemand"] != nil {
437+
d.Set("capacity_options_spot_auto_replace_on_demand", m["SpotAutoReplaceOnDemand"])
438+
}
439+
}
440+
396441
if v := object["AlbServerGroups"]; v != nil {
397442
result := make([]map[string]interface{}, 0)
398443
if w, ok := d.GetOk("alb_server_group"); ok {
@@ -540,10 +585,30 @@ func resourceAliyunEssScalingGroupUpdate(d *schema.ResourceData, meta interface{
540585
request["SpotInstancePools"] = requests.NewInteger(d.Get("spot_instance_pools").(int))
541586
}
542587

588+
if d.HasChange("capacity_options_on_demand_base_capacity") {
589+
request["CapacityOptions.OnDemandBaseCapacity"] = requests.NewInteger(d.Get("capacity_options_on_demand_base_capacity").(int))
590+
}
591+
592+
if d.HasChange("capacity_options_on_demand_base_capacity") {
593+
request["CapacityOptions.OnDemandBaseCapacity"] = requests.NewInteger(d.Get("capacity_options_on_demand_base_capacity").(int))
594+
}
595+
596+
if d.HasChange("capacity_options_compensate_with_on_demand") {
597+
request["CapacityOptions.CompensateWithOnDemand"] = requests.NewBoolean(d.Get("capacity_options_compensate_with_on_demand").(bool))
598+
}
599+
600+
if d.HasChange("capacity_options_spot_auto_replace_on_demand") {
601+
request["CapacityOptions.SpotAutoReplaceOnDemand"] = requests.NewBoolean(d.Get("capacity_options_spot_auto_replace_on_demand").(bool))
602+
}
603+
543604
if d.HasChange("spot_instance_remedy") {
544605
request["SpotInstanceRemedy"] = requests.NewBoolean(d.Get("spot_instance_remedy").(bool))
545606
}
546607

608+
if d.HasChange("compensate_with_on_demand") {
609+
request["CompensateWithOnDemand"] = requests.NewBoolean(d.Get("compensate_with_on_demand").(bool))
610+
}
611+
547612
if d.HasChange("az_balance") {
548613
request["AzBalance"] = requests.NewBoolean(d.Get("az_balance").(bool))
549614
}
@@ -765,10 +830,30 @@ func buildAlicloudEssScalingGroupArgs(d *schema.ResourceData, meta interface{})
765830
request["SpotInstancePools"] = v
766831
}
767832

833+
if v, ok := d.GetOk("capacity_options_on_demand_base_capacity"); ok {
834+
request["CapacityOptions.OnDemandBaseCapacity"] = v
835+
}
836+
837+
if v, ok := d.GetOk("capacity_options_on_demand_base_capacity"); ok {
838+
request["CapacityOptions.OnDemandBaseCapacity"] = v
839+
}
840+
841+
if v, ok := d.GetOk("capacity_options_compensate_with_on_demand"); ok {
842+
request["CapacityOptions.CompensateWithOnDemand"] = v
843+
}
844+
845+
if v, ok := d.GetOk("capacity_options_spot_auto_replace_on_demand"); ok {
846+
request["CapacityOptions.SpotAutoReplaceOnDemand"] = v
847+
}
848+
768849
if v, ok := d.GetOk("spot_instance_remedy"); ok {
769850
request["SpotInstanceRemedy"] = v
770851
}
771852

853+
if v, ok := d.GetOk("compensate_with_on_demand"); ok {
854+
request["CompensateWithOnDemand"] = v
855+
}
856+
772857
if v, ok := d.GetOk("health_check_type"); ok {
773858
request["HealthCheckType"] = v
774859
}

0 commit comments

Comments
 (0)