Skip to content

Commit 0830fac

Browse files
authored
fix(tke): [112302300] fix paging instance of scale worker cannot work (#2774)
* fix(tke): [] fix paging instance of scale worker cannot work * add changelog and doc * rm comments
1 parent e7f65dc commit 0830fac

File tree

3 files changed

+40
-16
lines changed

3 files changed

+40
-16
lines changed

.changelog/2774.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
resource/tencentcloud_kubernetes_scale_worker: fix the cluster instance paging logic
3+
```

tencentcloud/services/tke/resource_tc_kubernetes_scale_worker_extension.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ var WorkersNewWorkerInstancesList []map[string]interface{}
2828
var WorkersLabelsMap map[string]string
2929

3030
func init() {
31-
31+
// need to support append by multiple calls when the paging occurred
32+
WorkersNewWorkerInstancesList = make([]map[string]interface{}, 0)
33+
WorkersLabelsMap = make(map[string]string)
34+
WorkersInstanceIds = make([]*string, 0)
3235
}
3336

3437
func customScaleWorkerResourceImporter(ctx context.Context, d *schema.ResourceData, m interface{}) ([]*schema.ResourceData, error) {
@@ -91,9 +94,6 @@ func resourceTencentCloudKubernetesScaleWorkerReadPostRequest1(ctx context.Conte
9194
}
9295
}
9396

94-
WorkersNewWorkerInstancesList = make([]map[string]interface{}, 0, len(workers))
95-
WorkersLabelsMap = make(map[string]string)
96-
WorkersInstanceIds = make([]*string, 0)
9797
for sub, cvmInfo := range workers {
9898
if _, ok := instanceMap[cvmInfo.InstanceId]; !ok {
9999
continue
@@ -486,7 +486,7 @@ func resourceTencentCloudKubernetesScaleWorkerCreateOnStart(ctx context.Context)
486486
return resource.NonRetryableError(fmt.Errorf("cluster all instances state is failed"))
487487
} else {
488488
e = fmt.Errorf("cluster instances is still initializing.")
489-
return tccommon.RetryError(e)
489+
return resource.RetryableError(e)
490490
}
491491
}
492492
})

tencentcloud/services/tke/service_tencentcloud_tke.go

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3424,26 +3424,47 @@ func (me *TkeService) DescribeKubernetesScaleWorkerById1(ctx context.Context, cl
34243424
request := tke.NewDescribeClusterInstancesRequest()
34253425
request.ClusterId = helper.String(clusterId)
34263426

3427+
ret = &tke.DescribeClusterInstancesResponseParams{
3428+
InstanceSet: make([]*tke.Instance, 0),
3429+
TotalCount: new(uint64),
3430+
}
3431+
34273432
defer func() {
34283433
if errRet != nil {
34293434
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
34303435
}
34313436
}()
34323437

3433-
ratelimit.Check(request.GetAction())
3438+
var offset int64 = 0
3439+
var pageSize int64 = 100
3440+
for {
3441+
request.Offset = &offset
3442+
request.Limit = &pageSize
3443+
ratelimit.Check(request.GetAction())
34343444

3435-
response, err := me.client.UseTkeClient().DescribeClusterInstances(request)
3436-
if err != nil {
3437-
errRet = err
3438-
return
3439-
}
3440-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
3445+
response, err := me.client.UseTkeClient().DescribeClusterInstances(request)
3446+
if err != nil {
3447+
errRet = err
3448+
return
3449+
}
3450+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
34413451

3442-
if err := resourceTencentCloudKubernetesScaleWorkerReadPostRequest1(ctx, request, response); err != nil {
3443-
return nil, err
3444-
}
3452+
if err := resourceTencentCloudKubernetesScaleWorkerReadPostRequest1(ctx, request, response); err != nil {
3453+
return nil, err
3454+
}
34453455

3446-
ret = response.Response
3456+
if response == nil || len(response.Response.InstanceSet) < 1 {
3457+
break
3458+
}
3459+
count := len(response.Response.InstanceSet)
3460+
ret.InstanceSet = append(ret.InstanceSet, response.Response.InstanceSet...)
3461+
*ret.TotalCount += *helper.IntUint64(count)
3462+
3463+
if count < int(pageSize) {
3464+
break
3465+
}
3466+
offset += pageSize
3467+
}
34473468
return
34483469
}
34493470

0 commit comments

Comments
 (0)