Skip to content

Commit 194437c

Browse files
authored
fix(provider): [126997429] optmize common sdk error code logic (#3505)
* add * add
1 parent 507106a commit 194437c

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

.changelog/3505.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
provider: optmize common sdk error code logic
3+
```

tencentcloud/common/common.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
2424
"github.com/mitchellh/go-homedir"
2525
"github.com/pkg/errors"
26+
sdkErrorsIntlEn "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/errors"
2627
sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
2728
"github.com/tencentyun/cos-go-sdk-v5"
2829
"gopkg.in/yaml.v2"
@@ -202,7 +203,7 @@ func InconsistentCheck(d *schema.ResourceData, meta interface{}) func() {
202203
// RetryError returns retry error
203204
func RetryError(err error, additionRetryableError ...string) *resource.RetryError {
204205
switch realErr := errors.Cause(err).(type) {
205-
case *sdkErrors.TencentCloudSDKError:
206+
case *sdkErrors.TencentCloudSDKError, *sdkErrorsIntlEn.TencentCloudSDKError:
206207
if IsExpectError(realErr, retryableErrorCode) {
207208
log.Printf("[CRITAL] Retryable defined error: %v", err)
208209
return resource.RetryableError(err)
@@ -276,6 +277,22 @@ func isCosExpectedError(err error, expectedError []string) bool {
276277
func IsExpectError(err error, expectError []string) bool {
277278
e, ok := err.(*sdkErrors.TencentCloudSDKError)
278279
if !ok {
280+
if eIntlEn, ok := err.(*sdkErrorsIntlEn.TencentCloudSDKError); ok {
281+
longCode := eIntlEn.Code
282+
if IsContains(expectError, longCode) {
283+
return true
284+
}
285+
286+
if strings.Contains(longCode, ".") {
287+
shortCode := strings.Split(longCode, ".")[0]
288+
if IsContains(expectError, shortCode) {
289+
return true
290+
}
291+
}
292+
293+
return false
294+
}
295+
279296
return false
280297
}
281298

0 commit comments

Comments
 (0)