Skip to content

Commit 8df8b62

Browse files
authored
fix(ssl): [134935006]Added retries for read interfaces to alleviate c… (#4249)
* fix(ssl): [134935006]Added retries for read interfaces to alleviate concurrency rate limiting. * fix(ssl): [134935006]Added retries for read interfaces to alleviate concurrency rate limiting.
1 parent 5f345e5 commit 8df8b62

2 files changed

Lines changed: 20 additions & 4 deletions

File tree

.changelog/4249.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_ssl_free_certificate: Added retries for read interfaces to alleviate concurrency rate limiting.
3+
```

tencentcloud/services/ssl/resource_tc_ssl_free_certificate.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ package ssl
33
import (
44
"context"
55
"fmt"
6+
"log"
67
"strconv"
78

89
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
910

1011
ssl2 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl/v20191205"
1112

13+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1214
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1315

1416
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
@@ -188,11 +190,22 @@ func resourceTencentCloudFreeCertificateRead(d *schema.ResourceData, meta interf
188190
request := ssl2.NewDescribeCertificateDetailRequest()
189191
request.CertificateId = &id
190192

191-
response, err := service.DescribeCertificateDetail(ctx, request)
192-
193-
if err != nil {
193+
var response *ssl2.DescribeCertificateDetailResponse
194+
outerErr := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
195+
result, inErr := service.DescribeCertificateDetail(ctx, request)
196+
if inErr != nil {
197+
return tccommon.RetryError(inErr)
198+
}
199+
if result == nil || result.Response == nil {
200+
return resource.NonRetryableError(fmt.Errorf("TencentCloud SDK %s return empty response", request.GetAction()))
201+
}
202+
response = result
203+
return nil
204+
})
205+
if outerErr != nil {
206+
log.Printf("[CRITAL]%s read free certificate failed, reason: %v", logId, outerErr)
194207
d.SetId("")
195-
return err
208+
return outerErr
196209
}
197210

198211
detail := response.Response

0 commit comments

Comments
 (0)