@@ -3,6 +3,8 @@ package tencentcloud
33import (
44 "context"
55 "fmt"
6+ "log"
7+ "strings"
68 "testing"
79 "time"
810
@@ -11,6 +13,56 @@ import (
1113 "github.com/hashicorp/terraform-plugin-sdk/terraform"
1214)
1315
16+ func init () {
17+ resource .AddTestSweepers ("tencentcloud_vpc" , & resource.Sweeper {
18+ Name : "tencentcloud_vpc" ,
19+ F : testSweepVpcInstance ,
20+ })
21+ }
22+
23+ func testSweepVpcInstance (region string ) error {
24+ logId := getLogId (contextNil )
25+ ctx := context .WithValue (context .TODO (), logIdKey , logId )
26+
27+ sharedClient , err := sharedClientForRegion (region )
28+ if err != nil {
29+ return fmt .Errorf ("getting tencentcloud client error: %s" , err .Error ())
30+ }
31+ client := sharedClient .(* TencentCloudClient )
32+
33+ vpcService := VpcService {
34+ client : client .apiV3Conn ,
35+ }
36+
37+ instances , err := vpcService .DescribeVpcs (ctx , "" , "" , nil , nil , "" , "" )
38+ if err != nil {
39+ return fmt .Errorf ("get instance list error: %s" , err .Error ())
40+ }
41+
42+ for _ , v := range instances {
43+ instanceId := v .vpcId
44+ instanceName := v .name
45+
46+ now := time .Now ()
47+
48+ createTime := stringTotime (v .createTime )
49+ interval := now .Sub (createTime ).Minutes ()
50+ if strings .HasPrefix (instanceName , keepResource ) || strings .HasPrefix (instanceName , defaultResource ) {
51+ continue
52+ }
53+ // less than 30 minute, not delete
54+ if int64 (interval ) < 30 {
55+ continue
56+ }
57+
58+ if err = vpcService .DeleteVpc (ctx , instanceId ); err != nil {
59+ log .Printf ("[ERROR] sweep instance %s error: %s" , instanceId , err .Error ())
60+ }
61+ }
62+
63+ return nil
64+ }
65+
1466func TestAccTencentCloudVpcV3Basic (t * testing.T ) {
1567 t .Parallel ()
1668 resource .Test (t , resource.TestCase {
0 commit comments