From abd413cbe4730685daec9e3ee6b8505cbc87f11b Mon Sep 17 00:00:00 2001 From: anonymous Date: Wed, 1 Mar 2023 16:32:15 +0800 Subject: [PATCH] fix: modify teo unit --- .../resource_tc_teo_rule_engine_test.go | 37 +++++++++++++++++++ tencentcloud/resource_tc_teo_zone_test.go | 6 +-- tencentcloud/service_tencentcloud_teo.go | 34 +++++++++++++++++ 3 files changed, 74 insertions(+), 3 deletions(-) diff --git a/tencentcloud/resource_tc_teo_rule_engine_test.go b/tencentcloud/resource_tc_teo_rule_engine_test.go index c3666ed945..b1ab7aea13 100644 --- a/tencentcloud/resource_tc_teo_rule_engine_test.go +++ b/tencentcloud/resource_tc_teo_rule_engine_test.go @@ -11,6 +11,43 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" ) +func init() { + // go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_teo_rule_engine + resource.AddTestSweepers("tencentcloud_teo_rule_engine", &resource.Sweeper{ + Name: "tencentcloud_teo_rule_engine", + F: testSweepRuleEngine, + }) +} + +func testSweepRuleEngine(region string) error { + logId := getLogId(contextNil) + ctx := context.WithValue(context.TODO(), logIdKey, logId) + cli, _ := sharedClientForRegion(region) + client := cli.(*TencentCloudClient).apiV3Conn + service := TeoService{client} + + zoneId := defaultZoneId + + records, err := service.DescribeTeoRuleEngines(ctx, zoneId) + if err != nil { + return err + } + + if len(records) < 1 { + return nil + } + + for _, v := range records { + if *v.RuleName == "rule-1" { + err = service.DeleteTeoRuleEngineById(ctx, zoneId, *v.RuleId) + if err != nil { + return err + } + } + } + return nil +} + // go test -i; go test -test.run TestAccTencentCloudTeoRuleEngine_basic -v func TestAccTencentCloudTeoRuleEngine_basic(t *testing.T) { t.Parallel() diff --git a/tencentcloud/resource_tc_teo_zone_test.go b/tencentcloud/resource_tc_teo_zone_test.go index e2bc972042..bea18a9350 100644 --- a/tencentcloud/resource_tc_teo_zone_test.go +++ b/tencentcloud/resource_tc_teo_zone_test.go @@ -25,7 +25,7 @@ func testSweepZone(region string) error { client := cli.(*TencentCloudClient).apiV3Conn service := TeoService{client} - zoneId := clusterPrometheusId + zoneId := defaultZoneId zone, err := service.DescribeTeoZone(ctx, zoneId) if err != nil { @@ -57,7 +57,7 @@ func TestAccTencentCloudTeoZone_basic(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckZoneExists("tencentcloud_teo_zone.basic"), resource.TestCheckResourceAttr("tencentcloud_teo_zone.basic", "zone_name", "tf-teo.xyz"), - resource.TestCheckResourceAttr("tencentcloud_teo_zone.basic", "plan_type", "ent_with_bot"), + resource.TestCheckResourceAttr("tencentcloud_teo_zone.basic", "plan_type", "sta"), resource.TestCheckResourceAttr("tencentcloud_teo_zone.basic", "type", "full"), resource.TestCheckResourceAttr("tencentcloud_teo_zone.basic", "paused", "false"), resource.TestCheckResourceAttr("tencentcloud_teo_zone.basic", "cname_speed_up", "enabled"), @@ -120,7 +120,7 @@ const testAccTeoZone = ` resource "tencentcloud_teo_zone" "basic" { cname_speed_up = "enabled" - plan_type = "ent_with_bot" + plan_type = "sta" paused = false type = "full" zone_name = "tf-teo.xyz" diff --git a/tencentcloud/service_tencentcloud_teo.go b/tencentcloud/service_tencentcloud_teo.go index 4f8a907f66..e2e0a7de02 100644 --- a/tencentcloud/service_tencentcloud_teo.go +++ b/tencentcloud/service_tencentcloud_teo.go @@ -420,6 +420,40 @@ func (me *TeoService) DescribeTeoRuleEngine(ctx context.Context, zoneId, ruleId } +func (me *TeoService) DescribeTeoRuleEngines(ctx context.Context, zoneId string) (ruleEngines []*teo.RuleItem, + errRet error) { + var ( + logId = getLogId(ctx) + request = teo.NewDescribeRulesRequest() + ) + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", + logId, "query object", request.ToJsonString(), errRet.Error()) + } + }() + + request.ZoneId = &zoneId + ratelimit.Check(request.GetAction()) + response, err := me.client.UseTeoClient().DescribeRules(request) + if err != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", + logId, request.GetAction(), request.ToJsonString(), err.Error()) + errRet = err + return + } + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", + logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) + + if response != nil && response.Response != nil && response.Response.RuleItems != nil { + ruleEngines = response.Response.RuleItems + } + + return + +} + func (me *TeoService) DeleteTeoRuleEngineById(ctx context.Context, zoneId, ruleId string) (errRet error) { logId := getLogId(ctx)