diff --git a/.changelog/3267.txt b/.changelog/3267.txt new file mode 100644 index 0000000000..c0c5093478 --- /dev/null +++ b/.changelog/3267.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_cos_bucket: Support multi zone deletion +``` \ No newline at end of file diff --git a/tencentcloud/services/cos/resource_tc_cos_bucket.go b/tencentcloud/services/cos/resource_tc_cos_bucket.go index a156ab625f..710d598617 100644 --- a/tencentcloud/services/cos/resource_tc_cos_bucket.go +++ b/tencentcloud/services/cos/resource_tc_cos_bucket.go @@ -1042,11 +1042,12 @@ func resourceTencentCloudCosBucketDelete(d *schema.ResourceData, meta interface{ bucket := d.Id() forced := d.Get("force_clean").(bool) versioned := d.Get("versioning_enable").(bool) + multiAz := d.Get("multi_az").(bool) cosService := CosService{ client: meta.(tccommon.ProviderMeta).GetAPIV3Conn(), } cdcId := d.Get("cdc_id").(string) - err := cosService.DeleteBucket(ctx, bucket, forced, versioned, cdcId) + err := cosService.DeleteBucket(ctx, bucket, forced, versioned, cdcId, multiAz) if err != nil { return err } diff --git a/tencentcloud/services/cos/resource_tc_cos_bucket_test.go b/tencentcloud/services/cos/resource_tc_cos_bucket_test.go index c194fdcffd..8b994f6599 100644 --- a/tencentcloud/services/cos/resource_tc_cos_bucket_test.go +++ b/tencentcloud/services/cos/resource_tc_cos_bucket_test.go @@ -74,7 +74,7 @@ func testSweepCosBuckets(region string) error { } log.Printf("[INFO] deleting cos bucket: %s", bucket) - if err = cosService.DeleteBucket(ctx, bucket, true, true, ""); err != nil { + if err = cosService.DeleteBucket(ctx, bucket, true, true, "", true); err != nil { log.Printf("[ERROR] delete bucket %s error: %s", bucket, err.Error()) } } diff --git a/tencentcloud/services/cos/service_tencentcloud_cos.go b/tencentcloud/services/cos/service_tencentcloud_cos.go index 5524e51c99..7fcbe417d4 100644 --- a/tencentcloud/services/cos/service_tencentcloud_cos.go +++ b/tencentcloud/services/cos/service_tencentcloud_cos.go @@ -353,13 +353,13 @@ func (me *CosService) TencentcloudHeadBucket(ctx context.Context, bucket string, return } -func (me *CosService) DeleteBucket(ctx context.Context, bucket string, forced bool, versioned bool, cdcId string) (errRet error) { +func (me *CosService) DeleteBucket(ctx context.Context, bucket string, forced bool, versioned bool, cdcId string, multiAz bool) (errRet error) { logId := tccommon.GetLogId(ctx) if forced { log.Printf("[DEBUG]%s api[%s] triggered, bucket [%s], versioned [%v]\n", logId, "ForceCleanObject", bucket, versioned) - err := me.ForceCleanObject(ctx, bucket, versioned, cdcId) + err := me.ForceCleanObject(ctx, bucket, versioned, cdcId, multiAz) if err != nil { return err } @@ -381,7 +381,7 @@ func (me *CosService) DeleteBucket(ctx context.Context, bucket string, forced bo return nil } -func (me *CosService) ForceCleanObject(ctx context.Context, bucket string, versioned bool, cdcId string) error { +func (me *CosService) ForceCleanObject(ctx context.Context, bucket string, versioned bool, cdcId string, multiAz bool) error { logId := tccommon.GetLogId(ctx) // Get the object list of bucket with all versions @@ -407,7 +407,7 @@ func (me *CosService) ForceCleanObject(ctx context.Context, bucket string, versi } delObjs := make([]cos.Object, 0, delCnt) - if versioned { + if versioned || multiAz { //add the versions for _, v := range objList.Version { delObjs = append(delObjs, cos.Object{