diff --git a/.changelog/2830.txt b/.changelog/2830.txt new file mode 100644 index 0000000000..bc0624b285 --- /dev/null +++ b/.changelog/2830.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_instance: Update and delete module code logic +``` diff --git a/tencentcloud/services/cvm/resource_tc_instance.go b/tencentcloud/services/cvm/resource_tc_instance.go index 75e8e2b288..627fcd9c4c 100644 --- a/tencentcloud/services/cvm/resource_tc_instance.go +++ b/tencentcloud/services/cvm/resource_tc_instance.go @@ -1578,22 +1578,6 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{} return err } - // prepaid need delete again - //if instanceChargeType == CVM_CHARGE_TYPE_PREPAID { - // err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { - // errRet := cvmService.DeleteInstance(ctx, instanceId) - // if errRet != nil { - // return tccommon.RetryError(errRet) - // } - // - // return nil - // }) - // - // if err != nil { - // return err - // } - //} - //check recycling notExist := false @@ -1636,11 +1620,11 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{} dataDisks := v.([]interface{}) for _, d := range dataDisks { value := d.(map[string]interface{}) - diskId := value["data_disk_id"].(string) deleteWithInstancePrepaid := value["delete_with_instance_prepaid"].(bool) if deleteWithInstancePrepaid { + diskId := value["data_disk_id"].(string) cbsService := svccbs.NewCbsService(meta.(tccommon.ProviderMeta).GetAPIV3Conn()) - err := resource.Retry(tccommon.ReadRetryTimeout*2, func() *resource.RetryError { + err = resource.Retry(tccommon.ReadRetryTimeout*2, func() *resource.RetryError { diskInfo, e := cbsService.DescribeDiskById(ctx, diskId) if e != nil { return tccommon.RetryError(e, tccommon.InternalError) @@ -1779,9 +1763,9 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{} value := d.(map[string]interface{}) diskId := value["data_disk_id"].(string) deleteWithInstance := value["delete_with_instance"].(bool) - if deleteWithInstance { + if deleteWithInstance && instanceChargeType == CVM_CHARGE_TYPE_POSTPAID { cbsService := svccbs.NewCbsService(meta.(tccommon.ProviderMeta).GetAPIV3Conn()) - err := resource.Retry(tccommon.ReadRetryTimeout*2, func() *resource.RetryError { + err = resource.Retry(tccommon.ReadRetryTimeout*2, func() *resource.RetryError { diskInfo, e := cbsService.DescribeDiskById(ctx, diskId) if e != nil { return tccommon.RetryError(e, tccommon.InternalError) @@ -1864,9 +1848,9 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{} } deleteWithInstancePrepaid := value["delete_with_instance_prepaid"].(bool) - if deleteWithInstancePrepaid { + if deleteWithInstancePrepaid && instanceChargeType == CVM_CHARGE_TYPE_PREPAID { cbsService := svccbs.NewCbsService(meta.(tccommon.ProviderMeta).GetAPIV3Conn()) - err := resource.Retry(tccommon.ReadRetryTimeout*2, func() *resource.RetryError { + err = resource.Retry(tccommon.ReadRetryTimeout*2, func() *resource.RetryError { diskInfo, e := cbsService.DescribeDiskById(ctx, diskId) if e != nil { return tccommon.RetryError(e, tccommon.InternalError)