Skip to content

Commit bcadc56

Browse files
author
ivan
committed
添加AS的参数 MultiZoneSubnetPolicy ,支持多可用区(子网)打散
1 parent 1eedd4a commit bcadc56

File tree

3 files changed

+45
-17
lines changed

3 files changed

+45
-17
lines changed

tencentcloud/data_source_tc_as_scaling_groups.go

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,11 @@ func dataSourceTencentCloudAsScalingGroups() *schema.Resource {
196196
Computed: true,
197197
Description: "Tags of the scaling group.",
198198
},
199+
"multi_zone_subnet_policy": {
200+
Type: schema.TypeString,
201+
Computed: true,
202+
Description: "Multi zone or subnet strategy, Valid values: PRIORITY and EQUALITY.",
203+
},
199204
},
200205
},
201206
},
@@ -241,23 +246,24 @@ func dataSourceTencentCloudAsScalingGroupRead(d *schema.ResourceData, meta inter
241246
}
242247

243248
mapping := map[string]interface{}{
244-
"scaling_group_id": scalingGroup.AutoScalingGroupId,
245-
"scaling_group_name": scalingGroup.AutoScalingGroupName,
246-
"configuration_id": scalingGroup.LaunchConfigurationId,
247-
"status": scalingGroup.AutoScalingGroupStatus,
248-
"instance_count": scalingGroup.InstanceCount,
249-
"max_size": scalingGroup.MaxSize,
250-
"min_size": scalingGroup.MinSize,
251-
"vpc_id": scalingGroup.VpcId,
252-
"subnet_ids": helper.StringsInterfaces(scalingGroup.SubnetIdSet),
253-
"zones": helper.StringsInterfaces(scalingGroup.ZoneSet),
254-
"default_cooldown": scalingGroup.DefaultCooldown,
255-
"desired_capacity": scalingGroup.DesiredCapacity,
256-
"load_balancer_ids": helper.StringsInterfaces(scalingGroup.LoadBalancerIdSet),
257-
"termination_policies": helper.StringsInterfaces(scalingGroup.TerminationPolicySet),
258-
"retry_policy": scalingGroup.RetryPolicy,
259-
"create_time": scalingGroup.CreatedTime,
260-
"tags": tags,
249+
"scaling_group_id": scalingGroup.AutoScalingGroupId,
250+
"scaling_group_name": scalingGroup.AutoScalingGroupName,
251+
"configuration_id": scalingGroup.LaunchConfigurationId,
252+
"status": scalingGroup.AutoScalingGroupStatus,
253+
"instance_count": scalingGroup.InstanceCount,
254+
"max_size": scalingGroup.MaxSize,
255+
"min_size": scalingGroup.MinSize,
256+
"vpc_id": scalingGroup.VpcId,
257+
"subnet_ids": helper.StringsInterfaces(scalingGroup.SubnetIdSet),
258+
"zones": helper.StringsInterfaces(scalingGroup.ZoneSet),
259+
"default_cooldown": scalingGroup.DefaultCooldown,
260+
"desired_capacity": scalingGroup.DesiredCapacity,
261+
"load_balancer_ids": helper.StringsInterfaces(scalingGroup.LoadBalancerIdSet),
262+
"termination_policies": helper.StringsInterfaces(scalingGroup.TerminationPolicySet),
263+
"retry_policy": scalingGroup.RetryPolicy,
264+
"create_time": scalingGroup.CreatedTime,
265+
"tags": tags,
266+
"multi_zone_subnet_policy": scalingGroup.MultiZoneSubnetPolicy,
261267
}
262268
if scalingGroup.ForwardLoadBalancerSet != nil && len(scalingGroup.ForwardLoadBalancerSet) > 0 {
263269
forwardLoadBalancers := make([]map[string]interface{}, 0, len(scalingGroup.ForwardLoadBalancerSet))

tencentcloud/extension_as.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,3 +147,8 @@ const (
147147
SCALING_GROUP_IN_ACTIVITY_STATUS = "IN_ACTIVITY"
148148
SCALING_GROUP_NOT_IN_ACTIVITY_STATUS = "NOT_IN_ACTIVITY"
149149
)
150+
151+
const (
152+
MultiZoneSubnetPolicyPriority = "PRIORITY"
153+
MultiZoneSubnetPolicyEquality = "EQUALITY"
154+
)

tencentcloud/resource_tc_as_scaling_group.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,13 @@ func resourceTencentCloudAsScalingGroup() *schema.Resource {
216216
Computed: true,
217217
Description: "The time when the AS group was created.",
218218
},
219+
"multi_zone_subnet_policy": {
220+
Type: schema.TypeString,
221+
Optional: true,
222+
ValidateFunc: validateAllowedStringValue([]string{MultiZoneSubnetPolicyPriority,
223+
MultiZoneSubnetPolicyEquality}),
224+
Description: "Multi zone or subnet strategy, Valid values: PRIORITY and EQUALITY.",
225+
},
219226
},
220227
}
221228
}
@@ -303,6 +310,10 @@ func resourceTencentCloudAsScalingGroupCreate(d *schema.ResourceData, meta inter
303310
}
304311
}
305312

313+
if v, ok := d.GetOk("multi_zone_subnet_policy"); ok {
314+
request.MultiZoneSubnetPolicy = helper.String(v.(string))
315+
}
316+
306317
var id string
307318
if err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
308319
ratelimit.Check(request.GetAction())
@@ -408,6 +419,7 @@ func resourceTencentCloudAsScalingGroupRead(d *schema.ResourceData, meta interfa
408419
_ = d.Set("termination_policies", helper.StringsInterfaces(scalingGroup.TerminationPolicySet))
409420
_ = d.Set("retry_policy", scalingGroup.RetryPolicy)
410421
_ = d.Set("create_time", scalingGroup.CreatedTime)
422+
_ = d.Set("multi_zone_subnet_policy", scalingGroup.MultiZoneSubnetPolicy)
411423

412424
if scalingGroup.ForwardLoadBalancerSet != nil && len(scalingGroup.ForwardLoadBalancerSet) > 0 {
413425
forwardLoadBalancers := make([]map[string]interface{}, 0, len(scalingGroup.ForwardLoadBalancerSet))
@@ -521,6 +533,11 @@ func resourceTencentCloudAsScalingGroupUpdate(d *schema.ResourceData, meta inter
521533
}
522534
}
523535

536+
if d.HasChange("multi_zone_subnet_policy") {
537+
updateAttrs = append(updateAttrs, "multi_zone_subnet_policy")
538+
request.MultiZoneSubnetPolicy = helper.String(d.Get("multi_zone_subnet_policy").(string))
539+
}
540+
524541
if err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
525542
ratelimit.Check(request.GetAction())
526543

0 commit comments

Comments
 (0)