@@ -961,6 +961,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
961
961
cvmService := CvmService {
962
962
client : meta .(* TencentCloudClient ).apiV3Conn ,
963
963
}
964
+
964
965
err := resource .Retry (writeRetryTimeout , func () * resource.RetryError {
965
966
errRet := cvmService .DeleteInstance (ctx , instanceId )
966
967
if errRet != nil {
@@ -976,7 +977,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
976
977
notExist := false
977
978
978
979
//check exist
979
- err = resource .Retry (2 * readRetryTimeout , func () * resource.RetryError {
980
+ err = resource .Retry (5 * readRetryTimeout , func () * resource.RetryError {
980
981
instance , errRet := cvmService .DescribeInstanceById (ctx , instanceId )
981
982
if errRet != nil {
982
983
return retryError (errRet , InternalError )
@@ -985,13 +986,12 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
985
986
notExist = true
986
987
return nil
987
988
}
988
- if * instance .InstanceState == CVM_STATUS_SHUTDOWN {
989
+ if * instance .InstanceState == CVM_STATUS_SHUTDOWN && * instance . LatestOperationState != CVM_LATEST_OPERATION_STATE_OPERATING {
989
990
//in recycling
990
991
return nil
991
992
}
992
993
return resource .RetryableError (fmt .Errorf ("cvm instance status is %s, retry..." , * instance .InstanceState ))
993
994
})
994
-
995
995
if err != nil {
996
996
return err
997
997
}
@@ -1000,9 +1000,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
1000
1000
return nil
1001
1001
}
1002
1002
1003
- //exist in recycle
1004
-
1005
- //delete again
1003
+ // exist in recycle, delete again
1006
1004
err = resource .Retry (writeRetryTimeout , func () * resource.RetryError {
1007
1005
errRet := cvmService .DeleteInstance (ctx , instanceId )
1008
1006
//when state is terminating, do not delete but check exist
@@ -1024,7 +1022,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
1024
1022
}
1025
1023
1026
1024
//describe and check not exist
1027
- err = resource .Retry (2 * readRetryTimeout , func () * resource.RetryError {
1025
+ err = resource .Retry (5 * readRetryTimeout , func () * resource.RetryError {
1028
1026
instance , errRet := cvmService .DescribeInstanceById (ctx , instanceId )
1029
1027
if errRet != nil {
1030
1028
return retryError (errRet , InternalError )
@@ -1034,10 +1032,9 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
1034
1032
}
1035
1033
return resource .RetryableError (fmt .Errorf ("cvm instance status is %s, retry..." , * instance .InstanceState ))
1036
1034
})
1037
-
1038
1035
if err != nil {
1039
1036
return err
1040
1037
}
1041
- return nil
1042
1038
1039
+ return nil
1043
1040
}
0 commit comments