4
4
"context"
5
5
"fmt"
6
6
"testing"
7
+ "time"
7
8
8
9
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
9
10
"github.com/hashicorp/terraform-plugin-sdk/terraform"
@@ -12,6 +13,76 @@ import (
12
13
var testTcaplusTableResourceName = "tencentcloud_tcaplus_table"
13
14
var testTcaplusTableResourceNameResourceKey = testTcaplusTableResourceName + ".test_table"
14
15
16
+ func init () {
17
+ // go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_tcaplus_table
18
+ resource .AddTestSweepers ("tencentcloud_tcaplus_table" , & resource.Sweeper {
19
+ Name : "tencentcloud_tcaplus_table" ,
20
+ F : func (r string ) error {
21
+ logId := getLogId (contextNil )
22
+ ctx := context .WithValue (context .TODO (), logIdKey , logId )
23
+ cli , _ := sharedClientForRegion (r )
24
+ client := cli .(* TencentCloudClient ).apiV3Conn
25
+ service := TcaplusService {client }
26
+
27
+ clusters , err := service .DescribeClusters (ctx , "" , defaultTcaPlusClusterName )
28
+
29
+ if err != nil {
30
+ return err
31
+ }
32
+
33
+ if len (clusters ) == 0 {
34
+ return fmt .Errorf ("no cluster named %s" , defaultTcaPlusClusterName )
35
+ }
36
+
37
+ clusterId := * clusters [0 ].ClusterId
38
+
39
+ tables , err := service .DescribeTables (ctx , clusterId , "" , "" , "" )
40
+
41
+ for _ , table := range tables {
42
+ name := * table .TableName
43
+ // legacy bad argument
44
+ gId := clusterId + ":" + * table .TableGroupId
45
+ insId := * table .TableInstanceId
46
+ created := time.Time {}
47
+
48
+ if isResourcePersist (name , & created ) {
49
+ continue
50
+ }
51
+
52
+ taskId , err := service .DeleteTable (ctx , clusterId , gId , insId , name )
53
+ if err != nil {
54
+ continue
55
+ }
56
+
57
+ err = resource .Retry (readRetryTimeout * 3 , func () * resource.RetryError {
58
+ info , has , err := service .DescribeTask (ctx , clusterId , taskId )
59
+ if err != nil {
60
+ return retryError (err )
61
+ }
62
+ if ! has {
63
+ return nil
64
+ }
65
+ if * info .Progress < 100 {
66
+ return resource .RetryableError (fmt .Errorf ("running delete task %s, table: %s -> %s" , taskId , clusterId , name ))
67
+ }
68
+ return nil
69
+ })
70
+
71
+ if err != nil {
72
+ continue
73
+ }
74
+
75
+ _ , err = service .DeleteTable (ctx , clusterId , gId , insId , name )
76
+ if err != nil {
77
+ continue
78
+ }
79
+ }
80
+
81
+ return nil
82
+ },
83
+ })
84
+ }
85
+
15
86
func TestAccTencentCloudTcaplusTableResource (t * testing.T ) {
16
87
t .Parallel ()
17
88
resource .Test (t , resource.TestCase {
0 commit comments