@@ -3,12 +3,58 @@ package tencentcloud
33import (
44 "context"
55 "fmt"
6+ "strings"
67 "testing"
8+ "time"
79
810 "github.com/hashicorp/terraform-plugin-sdk/helper/resource"
911 "github.com/hashicorp/terraform-plugin-sdk/terraform"
1012)
1113
14+ func init () {
15+ // go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_kafka
16+ resource .AddTestSweepers ("tencentcloud_kafka" , & resource.Sweeper {
17+ Name : "tencentcloud_kafka" ,
18+ F : func (r string ) error {
19+ logId := getLogId (contextNil )
20+ ctx := context .WithValue (context .TODO (), logIdKey , logId )
21+ sharedClient , err := sharedClientForRegion (r )
22+ if err != nil {
23+ return fmt .Errorf ("getting tencentcloud client error: %s" , err .Error ())
24+ }
25+ client := sharedClient .(* TencentCloudClient )
26+
27+ ckafkaService := CkafkaService {client : client .apiV3Conn }
28+ params := make (map [string ]interface {})
29+ params ["instance_id" ] = defaultKafkaInstanceId
30+ userInfos , err := ckafkaService .DescribeUserByFilter (ctx , params )
31+ if err != nil {
32+ return nil
33+ }
34+ for _ , userInfo := range userInfos {
35+ userName := * userInfo .Name
36+ now := time .Now ()
37+ createTime := stringTotime (* userInfo .CreateTime )
38+ interval := now .Sub (createTime ).Minutes ()
39+ // less than 30 minute, not delete
40+ if needProtect == 1 && int64 (interval ) < 30 {
41+ continue
42+ }
43+
44+ if strings .HasPrefix (userName , keepResource ) || strings .HasPrefix (userName , defaultResource ) {
45+ continue
46+ }
47+ userIdStr := fmt .Sprintf ("%v#%v" , defaultKafkaInstanceId , userName )
48+ err := ckafkaService .DeleteUser (ctx , userIdStr )
49+ if err != nil {
50+ return nil
51+ }
52+ }
53+ return nil
54+ },
55+ })
56+ }
57+
1258func TestAccTencentCloudCkafkaUser (t * testing.T ) {
1359 t .Parallel ()
1460 resource .Test (t , resource.TestCase {
0 commit comments