Skip to content

Commit 07f99b5

Browse files
committed
optimize retry logic
1 parent 352d5b5 commit 07f99b5

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

tencentcloud/data_source_tc_images.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -322,14 +322,7 @@ func imagesReadSnapshotByIds(ctx context.Context, cbsService CbsService, image *
322322
snapshotByIds = append(snapshotByIds, snapshot.SnapshotId)
323323
}
324324

325-
var snapshots []*cbs.Snapshot
326-
errSnap = resource.Retry(readRetryTimeout, func() *resource.RetryError {
327-
snapshots, errSnap = cbsService.DescribeSnapshotByIds(ctx, snapshotByIds)
328-
if errSnap != nil {
329-
return retryError(errSnap, InternalError)
330-
}
331-
return nil
332-
})
325+
snapshots, errSnap := cbsService.DescribeSnapshotByIds(ctx, snapshotByIds)
333326
if errSnap != nil {
334327
return
335328
}

tencentcloud/service_tencentcloud_cbs.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"log"
66

7+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
78
cbs "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs/v20170312"
89
"github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/connectivity"
910
"github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/internal/helper"
@@ -239,8 +240,18 @@ func (me *CbsService) DescribeSnapshotByIds(ctx context.Context, snapshotIdsPara
239240
for {
240241
request.Offset = helper.IntUint64(offset)
241242
request.Limit = helper.IntUint64(pageSize)
242-
ratelimit.Check(request.GetAction())
243-
response, err := me.client.UseCbsClient().DescribeSnapshots(request)
243+
244+
var err error
245+
var response *cbs.DescribeSnapshotsResponse
246+
err = resource.Retry(readRetryTimeout, func() *resource.RetryError {
247+
ratelimit.Check(request.GetAction())
248+
response, err = me.client.UseCbsClient().DescribeSnapshots(request)
249+
if err != nil {
250+
return retryError(err, InternalError)
251+
}
252+
return nil
253+
})
254+
244255
if err != nil {
245256
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
246257
logId, request.GetAction(), request.ToJsonString(), err.Error())
@@ -255,7 +266,6 @@ func (me *CbsService) DescribeSnapshotByIds(ctx context.Context, snapshotIdsPara
255266
}
256267

257268
snapshots = append(snapshots, response.Response.SnapshotSet...)
258-
259269
if len(response.Response.SnapshotSet) < pageSize {
260270
break
261271
}

0 commit comments

Comments
 (0)