55 "fmt"
66 "log"
77 "testing"
8+ "time"
89
910 "github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1011 "github.com/hashicorp/terraform-plugin-sdk/terraform"
@@ -14,6 +15,67 @@ import (
1415var testTkeScaleWorkerResourceName = "tencentcloud_kubernetes_scale_worker"
1516var testTkeScaleWorkerResourceKey = testTkeScaleWorkerResourceName + ".test_scale"
1617
18+ func init () {
19+ // go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_kubernetes_scale_worker
20+ resource .AddTestSweepers ("tencentcloud_kubernetes_scale_worker" , & resource.Sweeper {
21+ Name : "tencentcloud_kubernetes_scale_worker" ,
22+ F : func (r string ) error {
23+ logId := getLogId (contextNil )
24+ ctx := context .WithValue (context .TODO (), logIdKey , logId )
25+ cli , _ := sharedClientForRegion (r )
26+ client := cli .(* TencentCloudClient ).apiV3Conn
27+ service := TkeService {client }
28+
29+ clusters , err := service .DescribeClusters (ctx , "" , defaultTkeClusterName )
30+
31+ if err != nil {
32+ return err
33+ }
34+
35+ if len (clusters ) == 0 {
36+ return fmt .Errorf ("no cluster names %s" , defaultTkeClusterName )
37+ }
38+
39+ clusterId := clusters [0 ].ClusterId
40+
41+ _ , workers , err := service .DescribeClusterInstances (ctx , clusterId )
42+
43+ if err != nil {
44+ return err
45+ }
46+
47+ cvmService := CvmService {client }
48+ instanceIds := make ([]string , 0 )
49+ for i := range workers {
50+ worker := workers [i ]
51+ if worker .NodePoolId != "" {
52+ continue
53+ }
54+ instance , err := cvmService .DescribeInstanceById (ctx , worker .InstanceId )
55+ if err != nil {
56+ continue
57+ }
58+
59+ created , err := time .Parse (TENCENTCLOUD_COMMON_TIME_LAYOUT , worker .CreatedTime )
60+ if err != nil {
61+ created = time.Time {}
62+ }
63+ if isResourcePersist (* instance .InstanceName , & created ) {
64+ continue
65+ }
66+ instanceIds = append (instanceIds , worker .InstanceId )
67+ }
68+
69+ err = service .DeleteClusterInstances (ctx , clusterId , instanceIds )
70+ if err != nil {
71+ return err
72+ }
73+
74+ return nil
75+ },
76+ })
77+ }
78+
1779func TestAccTencentCloudTkeScaleWorkerResource (t * testing.T ) {
1880 t .Parallel ()
1981 resource .Test (t , resource.TestCase {
0 commit comments