Skip to content

Commit e390de0

Browse files
committed
fix(tke): [] fix paging instance of scale worker cannot work
1 parent 9488e5e commit e390de0

File tree

2 files changed

+40
-16
lines changed

2 files changed

+40
-16
lines changed

tencentcloud/services/tke/resource_tc_kubernetes_scale_worker_extension.go

Lines changed: 8 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,9 @@ 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)
97+
// WorkersNewWorkerInstancesList = make([]map[string]interface{}, 0, len(workers))
98+
// WorkersLabelsMap = make(map[string]string)
99+
// WorkersInstanceIds = make([]*string, 0)
97100
for sub, cvmInfo := range workers {
98101
if _, ok := instanceMap[cvmInfo.InstanceId]; !ok {
99102
continue
@@ -486,7 +489,7 @@ func resourceTencentCloudKubernetesScaleWorkerCreateOnStart(ctx context.Context)
486489
return resource.NonRetryableError(fmt.Errorf("cluster all instances state is failed"))
487490
} else {
488491
e = fmt.Errorf("cluster instances is still initializing.")
489-
return tccommon.RetryError(e)
492+
return resource.RetryableError(e)
490493
}
491494
}
492495
})

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)