From b49f8e532bab2d110a68bba52aa7a2bddbddb34f Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Fri, 13 Sep 2024 18:28:59 +0800 Subject: [PATCH 1/3] add --- tencentcloud/services/cvm/resource_tc_instance.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tencentcloud/services/cvm/resource_tc_instance.go b/tencentcloud/services/cvm/resource_tc_instance.go index 75e8e2b288..7ae4aacc84 100644 --- a/tencentcloud/services/cvm/resource_tc_instance.go +++ b/tencentcloud/services/cvm/resource_tc_instance.go @@ -1779,7 +1779,7 @@ 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 { diskInfo, e := cbsService.DescribeDiskById(ctx, diskId) @@ -1864,7 +1864,7 @@ 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 { diskInfo, e := cbsService.DescribeDiskById(ctx, diskId) From c06f8ab0aaf8ba905eba679f61dca9fe454fb309 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Fri, 13 Sep 2024 20:24:32 +0800 Subject: [PATCH 2/3] add --- .../services/cvm/resource_tc_instance.go | 24 ++++--------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/tencentcloud/services/cvm/resource_tc_instance.go b/tencentcloud/services/cvm/resource_tc_instance.go index 7ae4aacc84..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) @@ -1781,7 +1765,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{} deleteWithInstance := value["delete_with_instance"].(bool) 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) @@ -1866,7 +1850,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{} deleteWithInstancePrepaid := value["delete_with_instance_prepaid"].(bool) 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) From 201a456a50dbf3c670e57957b98ea29591dfc789 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Fri, 13 Sep 2024 20:29:17 +0800 Subject: [PATCH 3/3] add --- .changelog/2830.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/2830.txt 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 +```