Skip to content

Commit cd7af0e

Browse files
authored
enhance kms delete (#1103)
* enhance kms delete * make fmt
1 parent c455915 commit cd7af0e

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

tencentcloud/extension_kms.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,9 @@ const (
4343
KMS_KEY_STATE_PENDINGIMPORT = "PendingImport"
4444
KMS_KEY_STATE_ARCHIVED = "Archived"
4545
)
46+
47+
var KMS_RETRYABLE_ERROR = []string{
48+
// client
49+
"ClientError.NetworkError",
50+
"ClientError.HttpStatusCodeError",
51+
}

tencentcloud/resource_tc_kms_key.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ import (
3131
"fmt"
3232
"log"
3333

34+
sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
35+
3436
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
3537
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
3638
kms "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms/v20190118"
@@ -382,7 +384,11 @@ func resourceTencentCloudKmsKeyDelete(d *schema.ResourceData, meta interface{})
382384
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
383385
e := kmsService.DeleteKey(ctx, keyId, uint64(pendingDeleteWindowInDays))
384386
if e != nil {
385-
return retryError(e)
387+
ee, ok := e.(*sdkErrors.TencentCloudSDKError)
388+
if ok && IsContains(KMS_RETRYABLE_ERROR, ee.Code) {
389+
return resource.RetryableError(fmt.Errorf("kms key delete error: %s, retrying", e.Error()))
390+
}
391+
return resource.NonRetryableError(e)
386392
}
387393
return nil
388394
})

0 commit comments

Comments
 (0)