Skip to content

Commit be02812

Browse files
tongyimingmikatong
andauthored
fix: add ckafka sweeper (#1049)
Co-authored-by: mikatong <mikatong@tencent.com>
1 parent a693828 commit be02812

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

tencentcloud/data_source_tc_ckafka_topics_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ func TestAccTencentCloudCkafkaTopicDataSource(t *testing.T) {
3131
resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.unclean_leader_election_enable"),
3232
resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.segment", "86400000"),
3333
resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.retention", "60000"),
34-
resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.foo", "instance_list.#", "1"),
3534
resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.0.partition_num"),
3635
resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.0.replica_num"),
3736
resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.0.create_time"),

tencentcloud/resource_tc_ckafka_user_test.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,58 @@ package tencentcloud
33
import (
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+
1258
func TestAccTencentCloudCkafkaUser(t *testing.T) {
1359
t.Parallel()
1460
resource.Test(t, resource.TestCase{

0 commit comments

Comments
 (0)