Skip to content

Commit a84ed81

Browse files
authored
Merge pull request #489 from tencentyun/master
fix accidentally fail to delete prepaid instance
2 parents afe5f1e + bef48d1 commit a84ed81

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 1.40.2 (Unreleased)
2+
3+
BUG FIXES:
4+
5+
* Resource: `tencentcloud_instance` fix accidentally fail to delete prepaid instance ([#485](https://github.com/tencentcloudstack/terraform-provider-tencentcloud/issues/485)).
6+
17
## 1.40.1 (August 05, 2020)
28

39
BUG FIXES:

tencentcloud/resource_tc_instance.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -961,6 +961,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
961961
cvmService := CvmService{
962962
client: meta.(*TencentCloudClient).apiV3Conn,
963963
}
964+
964965
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
965966
errRet := cvmService.DeleteInstance(ctx, instanceId)
966967
if errRet != nil {
@@ -976,7 +977,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
976977
notExist := false
977978

978979
//check exist
979-
err = resource.Retry(2*readRetryTimeout, func() *resource.RetryError {
980+
err = resource.Retry(5*readRetryTimeout, func() *resource.RetryError {
980981
instance, errRet := cvmService.DescribeInstanceById(ctx, instanceId)
981982
if errRet != nil {
982983
return retryError(errRet, InternalError)
@@ -985,13 +986,12 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
985986
notExist = true
986987
return nil
987988
}
988-
if *instance.InstanceState == CVM_STATUS_SHUTDOWN {
989+
if *instance.InstanceState == CVM_STATUS_SHUTDOWN && *instance.LatestOperationState != CVM_LATEST_OPERATION_STATE_OPERATING {
989990
//in recycling
990991
return nil
991992
}
992993
return resource.RetryableError(fmt.Errorf("cvm instance status is %s, retry...", *instance.InstanceState))
993994
})
994-
995995
if err != nil {
996996
return err
997997
}
@@ -1000,9 +1000,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
10001000
return nil
10011001
}
10021002

1003-
//exist in recycle
1004-
1005-
//delete again
1003+
// exist in recycle, delete again
10061004
err = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
10071005
errRet := cvmService.DeleteInstance(ctx, instanceId)
10081006
//when state is terminating, do not delete but check exist
@@ -1024,7 +1022,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
10241022
}
10251023

10261024
//describe and check not exist
1027-
err = resource.Retry(2*readRetryTimeout, func() *resource.RetryError {
1025+
err = resource.Retry(5*readRetryTimeout, func() *resource.RetryError {
10281026
instance, errRet := cvmService.DescribeInstanceById(ctx, instanceId)
10291027
if errRet != nil {
10301028
return retryError(errRet, InternalError)
@@ -1034,10 +1032,9 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
10341032
}
10351033
return resource.RetryableError(fmt.Errorf("cvm instance status is %s, retry...", *instance.InstanceState))
10361034
})
1037-
10381035
if err != nil {
10391036
return err
10401037
}
1041-
return nil
10421038

1039+
return nil
10431040
}

0 commit comments

Comments
 (0)