Skip to content

Commit 586c6b7

Browse files
authored
feat(clb): [118298169] support CDC (#2720)
* add * add * add * add * add * add
1 parent c46800b commit 586c6b7

File tree

12 files changed

+2202
-1647
lines changed

12 files changed

+2202
-1647
lines changed

.changelog/2720.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_clb_instance: add params `dedicated_cluster_id`
3+
```
4+
5+
```release-note:enhancement
6+
data_source/tencentcloud_clb_instances: add params `dedicated_cluster_id`
7+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ require (
4343
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600
4444
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ciam v1.0.695
4545
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748
46-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.860
46+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.961
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.962
4949
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.967

go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -856,6 +856,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748 h1:rVvR
856856
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748/go.mod h1:nvb4W+PgsAe8NFG1ZevZa9ZLfto3aeBcJqxzYCRI9V4=
857857
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.860 h1:P2TPFCB1oyJ6yOTgFDBdKByepog3iMg2fIUN/VHo9EM=
858858
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.860/go.mod h1:eTGN2Qz4NxaYl+CwMpcj4vNImNOr74NC8WTCLSJN8Ks=
859+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.960 h1:wiX0lViAGID1CRQBnoK8TqkgsA/qPm37AwPyy1TgVVo=
860+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.960/go.mod h1:ge3NiZB+9eEL6gcnlX2CnyYq3Qvx1AW29aP8d9RiDxE=
861+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.961 h1:H8oPv420A7TtLsrKQv1VYaHHboI6YmYT/kNbgZXfO1Y=
862+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.961/go.mod h1:iEXw9vSSrx7vJ2v+ird8vpjRPmF7kqTa2/VypAs8n64=
859863
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544 h1:ApY6rS7I9otgujOdAFy0+Epno1PNVCQmsOoWQxx724Y=
860864
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544/go.mod h1:c37rIdL3LrJXYwrfp9c8L4MabTqKIZUe1xvnWhN75oc=
861865
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.860 h1:IU20AhNd0fEbgFzTTGB8cdMkUCrgB0FsLd0puC4QDzU=
@@ -958,6 +962,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.959 h1:GZUq
958962
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.959/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
959963
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.960 h1:hde8uWA3624nGUvC8QPf9njcyBZ7A9weqscRrqyM1Rk=
960964
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.960/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
965+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.961 h1:UqinjIsO+Y48BQYSxrD6aHQe8SD+Wsbvj+jU9V9VvWM=
966+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.961/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
961967
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
962968
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860/go.mod h1:NZo1WplQcC314kMlCRUoy8NQju2BnolIJj7NAWgsuhY=
963969
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=

tencentcloud/services/clb/data_source_tc_clb_instances.go

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ func DataSourceTencentCloudClbInstances() *schema.Resource {
7575
Computed: true,
7676
Description: "ID of the project.",
7777
},
78+
"cluster_id": {
79+
Type: schema.TypeString,
80+
Computed: true,
81+
Description: "ID of the cluster.",
82+
},
7883
"clb_vips": {
7984
Type: schema.TypeList,
8085
Computed: true,
@@ -182,42 +187,49 @@ func DataSourceTencentCloudClbInstances() *schema.Resource {
182187
func dataSourceTencentCloudClbInstancesRead(d *schema.ResourceData, meta interface{}) error {
183188
defer tccommon.LogElapsed("data_source.tencentcloud_clb_instances.read")()
184189

185-
logId := tccommon.GetLogId(tccommon.ContextNil)
186-
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
190+
var (
191+
logId = tccommon.GetLogId(tccommon.ContextNil)
192+
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
193+
clbService = ClbService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
194+
clbs []*clb.LoadBalancer
195+
)
187196

188197
params := make(map[string]interface{})
189198
if v, ok := d.GetOk("clb_id"); ok {
190199
params["clb_id"] = v.(string)
191200
}
201+
192202
if v, ok := d.GetOk("clb_name"); ok {
193203
params["clb_name"] = v.(string)
194204
}
205+
195206
if v, ok := d.GetOkExists("project_id"); ok {
196207
params["project_id"] = v.(int)
197208
}
209+
198210
if v, ok := d.GetOk("network_type"); ok {
199211
params["network_type"] = v.(string)
200212
}
213+
201214
if v, ok := d.GetOk("master_zone"); ok {
202215
params["master_zone"] = v.(string)
203216
}
204217

205-
clbService := ClbService{
206-
client: meta.(tccommon.ProviderMeta).GetAPIV3Conn(),
207-
}
208-
var clbs []*clb.LoadBalancer
209218
err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
210219
results, e := clbService.DescribeLoadBalancerByFilter(ctx, params)
211220
if e != nil {
212221
return tccommon.RetryError(e)
213222
}
223+
214224
clbs = results
215225
return nil
216226
})
227+
217228
if err != nil {
218229
log.Printf("[CRITAL]%s read CLB instances failed, reason:%+v", logId, err)
219230
return err
220231
}
232+
221233
clbList := make([]map[string]interface{}, 0, len(clbs))
222234
ids := make([]string, 0, len(clbs))
223235
for _, clbInstance := range clbs {
@@ -238,10 +250,16 @@ func dataSourceTencentCloudClbInstancesRead(d *schema.ResourceData, meta interfa
238250
"vip_isp": clbInstance.VipIsp,
239251
"security_groups": helper.StringsInterfaces(clbInstance.SecureGroups),
240252
}
253+
254+
if clbInstance.ClusterIds != nil && len(clbInstance.ClusterIds) > 0 {
255+
mapping["cluster_id"] = *clbInstance.ClusterIds[0]
256+
}
257+
241258
if clbInstance.NetworkAttributes != nil {
242259
mapping["internet_charge_type"] = *clbInstance.NetworkAttributes.InternetChargeType
243260
mapping["internet_bandwidth_max_out"] = *clbInstance.NetworkAttributes.InternetMaxBandwidthOut
244261
}
262+
245263
if clbInstance.MasterZone != nil {
246264
mapping["zone_id"] = *clbInstance.MasterZone.ZoneId
247265
mapping["zone"] = *clbInstance.MasterZone.Zone
@@ -255,8 +273,10 @@ func dataSourceTencentCloudClbInstancesRead(d *schema.ResourceData, meta interfa
255273
for _, t := range clbInstance.Tags {
256274
tags[*t.TagKey] = *t.TagValue
257275
}
276+
258277
mapping["tags"] = tags
259278
}
279+
260280
clbList = append(clbList, mapping)
261281
ids = append(ids, *clbInstance.LoadBalancerId)
262282
}

tencentcloud/services/clb/resource_tc_clb_instance.go

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@ func ResourceTencentCloudClbInstance() *schema.Resource {
6969
ValidateFunc: tccommon.ValidateStringLengthInRange(2, 60),
7070
Description: "In the case of purchasing a `INTERNAL` clb instance, the subnet id must be specified. The VIP of the `INTERNAL` clb instance will be generated from this subnet.",
7171
},
72+
"cluster_id": {
73+
Type: schema.TypeString,
74+
Optional: true,
75+
ForceNew: true,
76+
Description: "Cluster ID.",
77+
},
7278
"address_ip_version": {
7379
Type: schema.TypeString,
7480
Optional: true,
@@ -286,6 +292,10 @@ func resourceTencentCloudClbInstanceCreate(d *schema.ResourceData, meta interfac
286292
request.SubnetId = helper.String(v.(string))
287293
}
288294

295+
if v, ok := d.GetOk("cluster_id"); ok {
296+
request.ClusterIds = []*string{helper.String(v.(string))}
297+
}
298+
289299
//vip_isp
290300
if v, ok := d.GetOk("vip_isp"); ok {
291301
if networkType == CLB_NETWORK_TYPE_INTERNAL {
@@ -459,7 +469,6 @@ func resourceTencentCloudClbInstanceCreate(d *schema.ResourceData, meta interfac
459469
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
460470
logId, sgRequest.GetAction(), sgRequest.ToJsonString(), sgResponse.ToJsonString())
461471
requestId := *sgResponse.Response.RequestId
462-
463472
retryErr := waitForTaskFinish(requestId, meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClbClient())
464473
if retryErr != nil {
465474
return tccommon.RetryError(errors.WithStack(retryErr))
@@ -489,7 +498,6 @@ func resourceTencentCloudClbInstanceCreate(d *schema.ResourceData, meta interfac
489498
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
490499
logId, logRequest.GetAction(), logRequest.ToJsonString(), logResponse.ToJsonString())
491500
requestId := *logResponse.Response.RequestId
492-
493501
retryErr := waitForTaskFinish(requestId, meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClbClient())
494502
if retryErr != nil {
495503
return tccommon.RetryError(errors.WithStack(retryErr))
@@ -515,6 +523,7 @@ func resourceTencentCloudClbInstanceCreate(d *schema.ResourceData, meta interfac
515523
Region: &targetRegionInfoRegion,
516524
VpcId: &targetRegionInfoVpcId,
517525
}
526+
518527
mRequest := clb.NewModifyLoadBalancerAttributesRequest()
519528
mRequest.LoadBalancerId = helper.String(clbId)
520529
mRequest.TargetRegionInfo = &targetRegionInfo
@@ -620,6 +629,10 @@ func resourceTencentCloudClbInstanceRead(d *schema.ResourceData, meta interface{
620629
_ = d.Set("ipv6_mode", instance.IPv6Mode)
621630
_ = d.Set("address_ipv6", instance.AddressIPv6)
622631

632+
if instance.ClusterIds != nil && len(instance.ClusterIds) > 0 {
633+
_ = d.Set("cluster_id", instance.ClusterIds[0])
634+
}
635+
623636
if instance.SlaType != nil {
624637
_ = d.Set("sla_type", instance.SlaType)
625638
}
@@ -686,7 +699,6 @@ func resourceTencentCloudClbInstanceUpdate(d *schema.ResourceData, meta interfac
686699
)
687700

688701
immutableArgs := []string{"snat_ips", "dynamic_vip", "master_zone_id", "slave_zone_id", "vpc_id", "subnet_id", "address_ip_version", "bandwidth_package_id", "zone_id"}
689-
690702
for _, v := range immutableArgs {
691703
if d.HasChange(v) {
692704
return fmt.Errorf("argument `%s` cannot be changed", v)
@@ -801,7 +813,6 @@ func resourceTencentCloudClbInstanceUpdate(d *schema.ResourceData, meta interfac
801813
param.LoadBalancerId = &clbId
802814
param.SlaType = helper.String(d.Get("sla_type").(string))
803815
slaRequest.LoadBalancerSla = []*clb.SlaUpdateParam{&param}
804-
805816
var taskId string
806817
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
807818
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClbClient().ModifyLoadBalancerSla(slaRequest)
@@ -857,7 +868,6 @@ func resourceTencentCloudClbInstanceUpdate(d *schema.ResourceData, meta interfac
857868
log.Printf("[CRITAL]%s update CLB instance security_group failed, reason:%+v", logId, err)
858869
return err
859870
}
860-
861871
}
862872

863873
if d.HasChange("log_set_id") || d.HasChange("log_topic_id") {
@@ -875,7 +885,6 @@ func resourceTencentCloudClbInstanceUpdate(d *schema.ResourceData, meta interfac
875885
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
876886
logId, logRequest.GetAction(), logRequest.ToJsonString(), logResponse.ToJsonString())
877887
requestId := *logResponse.Response.RequestId
878-
879888
retryErr := waitForTaskFinish(requestId, meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClbClient())
880889
if retryErr != nil {
881890
return tccommon.RetryError(errors.WithStack(retryErr))
@@ -976,6 +985,7 @@ func checkSameName(name string, meta interface{}) (flag bool, errRet error) {
976985
clbService = ClbService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
977986
)
978987

988+
flag = false
979989
params := make(map[string]interface{})
980990
params["clb_name"] = name
981991
err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {

0 commit comments

Comments
 (0)