diff --git a/tencentcloud/extension_cvm.go b/tencentcloud/extension_cvm.go index c8b64d4dfb..86ad666089 100644 --- a/tencentcloud/extension_cvm.go +++ b/tencentcloud/extension_cvm.go @@ -31,6 +31,8 @@ const ( ZONE_STATE_AVAILABLE = "AVAILABLE" ZONE_STATE_UNAVAILABLE = "UNAVAILABLE" + + CVM_NOT_FOUND_ERROR = "InvalidInstanceId.NotFound" ) var CVM_CHARGE_TYPE = []string{ diff --git a/tencentcloud/resource_tc_key_pair.go b/tencentcloud/resource_tc_key_pair.go index 3eff6001de..be7ff477a6 100644 --- a/tencentcloud/resource_tc_key_pair.go +++ b/tencentcloud/resource_tc_key_pair.go @@ -26,6 +26,7 @@ import ( "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" cvm "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm/v20170312" ) @@ -186,6 +187,11 @@ func resourceTencentCloudKeyPairDelete(d *schema.ResourceData, meta interface{}) err = resource.Retry(writeRetryTimeout, func() *resource.RetryError { errRet := cvmService.UnbindKeyPair(ctx, keyId, keyPair.AssociatedInstanceIds) if errRet != nil { + if sdkErr, ok := errRet.(*errors.TencentCloudSDKError); ok { + if sdkErr.Code == CVM_NOT_FOUND_ERROR { + return nil + } + } return retryError(errRet) } return nil