Skip to content

Commit 630251c

Browse files
committed
add
1 parent 5b79215 commit 630251c

File tree

3 files changed

+63
-26
lines changed

3 files changed

+63
-26
lines changed

tencentcloud/services/tke/resource_tc_kubernetes_scale_worker.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tencentcloud/services/tke/resource_tc_kubernetes_scale_worker_extension.go

Lines changed: 61 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -573,28 +573,57 @@ func resourceTencentCloudKubernetesScaleWorkerDeleteOnExit(ctx context.Context)
573573
return nil
574574
}
575575

576-
err = service.DeleteClusterInstances(ctx, clusterId, needDeletes)
577-
if err != nil {
578-
err = resource.Retry(3*tccommon.WriteRetryTimeout, func() *resource.RetryError {
579-
err = service.DeleteClusterInstances(ctx, clusterId, needDeletes)
576+
if len(needDeletes) <= 100 {
577+
err = service.DeleteClusterInstances(ctx, clusterId, needDeletes)
578+
if err != nil {
579+
err = resource.Retry(3*tccommon.WriteRetryTimeout, func() *resource.RetryError {
580+
err = service.DeleteClusterInstances(ctx, clusterId, needDeletes)
580581

581-
if e, ok := err.(*errors.TencentCloudSDKError); ok {
582-
if e.GetCode() == "InternalError.ClusterNotFound" {
583-
return nil
584-
}
582+
if e, ok := err.(*errors.TencentCloudSDKError); ok {
583+
if e.GetCode() == "InternalError.ClusterNotFound" {
584+
return nil
585+
}
585586

586-
if e.GetCode() == "InternalError.Param" &&
587-
strings.Contains(e.GetMessage(), `PARAM_ERROR[some instances []is not in right state`) {
588-
return nil
587+
if e.GetCode() == "InternalError.Param" &&
588+
strings.Contains(e.GetMessage(), `PARAM_ERROR[some instances []is not in right state`) {
589+
return nil
590+
}
589591
}
590-
}
591592

593+
if err != nil {
594+
return tccommon.RetryError(err, tccommon.InternalError)
595+
}
596+
return nil
597+
})
598+
}
599+
} else {
600+
for _, subsubSlice := range spliteInstanceIds(helper.Strings(needDeletes), 100) {
601+
tmpDeletes := helper.PStrings(subsubSlice)
602+
err = service.DeleteClusterInstances(ctx, clusterId, tmpDeletes)
592603
if err != nil {
593-
return tccommon.RetryError(err, tccommon.InternalError)
604+
err = resource.Retry(3*tccommon.WriteRetryTimeout, func() *resource.RetryError {
605+
err = service.DeleteClusterInstances(ctx, clusterId, tmpDeletes)
606+
607+
if e, ok := err.(*errors.TencentCloudSDKError); ok {
608+
if e.GetCode() == "InternalError.ClusterNotFound" {
609+
return nil
610+
}
611+
612+
if e.GetCode() == "InternalError.Param" &&
613+
strings.Contains(e.GetMessage(), `PARAM_ERROR[some instances []is not in right state`) {
614+
return nil
615+
}
616+
}
617+
618+
if err != nil {
619+
return tccommon.RetryError(err, tccommon.InternalError)
620+
}
621+
return nil
622+
})
594623
}
595-
return nil
596-
})
624+
}
597625
}
626+
598627
return nil
599628
}
600629

@@ -683,8 +712,8 @@ func resourceTencentCloudKubernetesScaleWorkerReadPreRequest1(ctx context.Contex
683712
meta := tccommon.ProviderMetaFromContext(ctx)
684713
ctxData := tccommon.DataFromContext(ctx)
685714
instanceIds := ctxData.Get("instanceIds").([]*string)
686-
req.Limit = helper.Int64(0)
687-
req.Offset = helper.Int64(100)
715+
req.Limit = helper.Int64(100)
716+
req.Offset = helper.Int64(0)
688717
if len(instanceIds) <= 100 {
689718
req.InstanceIds = instanceIds
690719
resp, err = meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseCvmV20170312Client().DescribeInstances(req)
@@ -697,26 +726,32 @@ func resourceTencentCloudKubernetesScaleWorkerReadPreRequest1(ctx context.Contex
697726
tmpTotalCount int64
698727
tmpInstanceSet []*cvm.Instance
699728
)
729+
tmpResp := new(cvm.DescribeInstancesResponse)
700730
subSlices := spliteInstanceIds(instanceIds, 100)
701731
for _, subsubSlice := range subSlices {
702732
req.InstanceIds = subsubSlice
703-
tmpResp, err := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseCvmV20170312Client().DescribeInstances(req)
704-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, req.GetAction(), req.ToJsonString(), tmpResp.ToJsonString())
733+
response, err := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseCvmV20170312Client().DescribeInstances(req)
734+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, req.GetAction(), req.ToJsonString(), response.ToJsonString())
705735
if err != nil {
706736
return nil, err
707737
}
708738

709-
if tmpResp.Response.TotalCount != nil {
710-
tmpTotalCount += *tmpResp.Response.TotalCount
739+
if response.Response.TotalCount != nil {
740+
tmpTotalCount += *response.Response.TotalCount
711741
}
712742

713-
if len(tmpResp.Response.InstanceSet) != 0 {
714-
tmpInstanceSet = append(tmpInstanceSet, tmpResp.Response.InstanceSet...)
743+
if len(response.Response.InstanceSet) != 0 {
744+
tmpInstanceSet = append(tmpInstanceSet, response.Response.InstanceSet...)
715745
}
746+
716747
}
717748

718-
resp.Response.TotalCount = &tmpTotalCount
719-
resp.Response.InstanceSet = tmpInstanceSet
749+
tmpResp.Response = &cvm.DescribeInstancesResponseParams{
750+
TotalCount: &tmpTotalCount,
751+
InstanceSet: tmpInstanceSet,
752+
}
753+
754+
resp = tmpResp
720755
}
721756

722757
return resp, nil
@@ -748,6 +783,7 @@ func spliteInstanceIds(slice []*string, size int) [][]*string {
748783
if end > len(slice) {
749784
end = len(slice)
750785
}
786+
751787
result = append(result, slice[i:end])
752788
}
753789

website/docs/r/kubernetes_scale_worker.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ The following arguments are supported:
124124

125125
* `cluster_id` - (Required, String, ForceNew) ID of the cluster.
126126
* `worker_config` - (Required, List, ForceNew) Deploy the machine configuration information of the 'WORK' service, and create <=20 units for common users.
127-
* `create_result_output_file` - (Optional, String) Used to save results of CVMs creation error messages.
127+
* `create_result_output_file` - (Optional, String, ForceNew) Used to save results of CVMs creation error messages.
128128
* `data_disk` - (Optional, List, ForceNew) Configurations of tke data disk.
129129
* `desired_pod_num` - (Optional, Int, ForceNew) Indicate to set desired pod number in current node. Valid when the cluster enable customized pod cidr.
130130
* `docker_graph_path` - (Optional, String, ForceNew) Docker graph path. Default is `/var/lib/docker`.

0 commit comments

Comments
 (0)