@@ -10,7 +10,6 @@ import (
10
10
"net/http"
11
11
"regexp"
12
12
"strings"
13
- "time"
14
13
15
14
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
16
15
@@ -364,9 +363,6 @@ func (me *CosService) DeleteBucket(ctx context.Context, bucket string, forced bo
364
363
if err != nil {
365
364
return err
366
365
}
367
-
368
- // wait cos backend sync
369
- time .Sleep (30 * time .Second )
370
366
}
371
367
372
368
request := s3.DeleteBucketInput {
@@ -506,6 +502,34 @@ func (me *CosService) ForceCleanObject(ctx context.Context, bucket string, versi
506
502
507
503
log .Printf ("[DEBUG][ForceCleanObject]%s api[%s] success, [%v] objects have been cleaned.\n " ,
508
504
logId , "ForceCleanObject" , len (result .DeletedObjects ))
505
+
506
+ // wait
507
+ fmt .Println (11111111111 )
508
+ fmt .Println (11111111111 )
509
+ fmt .Println (11111111111 )
510
+ fmt .Println (11111111111 )
511
+ fmt .Println (11111111111 )
512
+ err = resource .Retry (tccommon .ReadRetryTimeout , func () * resource.RetryError {
513
+ listObjects , e := me .ListObjects (ctx , bucket )
514
+ if e != nil {
515
+ log .Printf ("[CRITAL]%s api[%s] fail, resp body [%s], reason[%s]\n " ,
516
+ logId , "ListObjects" , resp .Body , e .Error ())
517
+ return tccommon .RetryError (e )
518
+ }
519
+
520
+ listObjCount := len (listObjects )
521
+ if listObjCount == 0 {
522
+ return nil
523
+ }
524
+
525
+ return resource .RetryableError (fmt .Errorf ("waiting objects deleting. still has %d item. retry..." , listObjCount ))
526
+ })
527
+
528
+ if err != nil {
529
+ log .Printf ("[CRITAL]%s get COS objects failed, reason:%+v" , logId , err )
530
+ return err
531
+ }
532
+
509
533
return nil
510
534
}
511
535
0 commit comments