From 963052f8d088cd5be7f6002c4a664a91ee973bd9 Mon Sep 17 00:00:00 2001 From: mikatong Date: Tue, 26 Apr 2022 21:55:04 +0800 Subject: [PATCH 1/3] fix: kafka bug && unit test --- tencentcloud/basic_test.go | 19 ++++ .../data_source_tc_ckafka_acls_test.go | 35 +++++- .../data_source_tc_ckafka_topics_test.go | 14 +-- .../data_source_tc_ckafka_users_test.go | 10 +- tencentcloud/resource_tc_ckafka_acl_test.go | 29 ++++- tencentcloud/resource_tc_ckafka_instance.go | 8 +- .../resource_tc_ckafka_instance_test.go | 106 +++++------------- tencentcloud/resource_tc_ckafka_topic.go | 19 +--- tencentcloud/resource_tc_ckafka_topic_test.go | 22 ++-- tencentcloud/resource_tc_ckafka_user_test.go | 10 +- tencentcloud/service_tencentcloud_ckafka.go | 2 +- 11 files changed, 143 insertions(+), 131 deletions(-) diff --git a/tencentcloud/basic_test.go b/tencentcloud/basic_test.go index 7b054dc962..16f65d023e 100644 --- a/tencentcloud/basic_test.go +++ b/tencentcloud/basic_test.go @@ -96,6 +96,25 @@ const ( defaultEMRSgId = "sg-mag8k2fj" ) +//ckafka +const ( + defaultKafkaInstanceId = "ckafka-vv7wpvae" + defaultKafkaVpcId = "vpc-68vi2d3h" + defaultKafkaSubnetId = "subnet-ob6clqwk" +) + +const defaultKafkaVariable = ` +variable "instance_id" { + default = "` + defaultKafkaInstanceId + `" +} +variable "vpc_id" { + default = "` + defaultKafkaVpcId + `" +} +variable "subnet_id" { + default = "` + defaultKafkaSubnetId + `" +} +` + // Tke Exclusive Network Environment const ( tkeExclusiveVpcId = "vpc-391sv4w3" diff --git a/tencentcloud/data_source_tc_ckafka_acls_test.go b/tencentcloud/data_source_tc_ckafka_acls_test.go index a919a0a379..5bc411521a 100644 --- a/tencentcloud/data_source_tc_ckafka_acls_test.go +++ b/tencentcloud/data_source_tc_ckafka_acls_test.go @@ -9,7 +9,7 @@ import ( func TestAccTencentCloudCkafkaAclsDataSource(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, + PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) }, Providers: testAccProviders, CheckDestroy: testAccCheckCkafkaAclDestroy, Steps: []resource.TestStep{ @@ -29,7 +29,38 @@ func TestAccTencentCloudCkafkaAclsDataSource(t *testing.T) { }) } -const testAccTencentCloudDataSourceCkafkaAcl = testAccCkafkaAcl + ` +const testAccTencentCloudDataSourceCkafkaAcl = defaultKafkaVariable + ` +resource "tencentcloud_ckafka_user" "foo" { + instance_id = var.instance_id + account_name = "tf-test-acl-data" + password = "test1234" +} + +resource "tencentcloud_ckafka_topic" "kafka_topic_acl" { + instance_id = var.instance_id + topic_name = "ckafka-topic-acl-data-test" + replica_num = 2 + partition_num = 1 + note = "test topic" + enable_white_list = true + ip_white_list = ["192.168.1.1"] + clean_up_policy = "delete" + sync_replica_min_num = 1 + unclean_leader_election_enable = false + segment = 86400000 + retention = 60000 +} + +resource "tencentcloud_ckafka_acl" foo { + instance_id = var.instance_id + resource_type = "TOPIC" + resource_name = tencentcloud_ckafka_topic.kafka_topic_acl.topic_name + operation_type = "WRITE" + permission_type = "ALLOW" + host = "10.10.10.0" + principal = tencentcloud_ckafka_user.foo.account_name +} + data "tencentcloud_ckafka_acls" "foo" { instance_id = tencentcloud_ckafka_acl.foo.instance_id resource_type = tencentcloud_ckafka_acl.foo.resource_type diff --git a/tencentcloud/data_source_tc_ckafka_topics_test.go b/tencentcloud/data_source_tc_ckafka_topics_test.go index afbee0a1ed..3172a3049d 100644 --- a/tencentcloud/data_source_tc_ckafka_topics_test.go +++ b/tencentcloud/data_source_tc_ckafka_topics_test.go @@ -6,10 +6,10 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" ) -func TestAccTencentCloudCkafkaTopicDataSource(t *testing.T) { +func TestAccTencentCloudCKafkaTopicDataSource(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, + PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) }, Providers: testAccProviders, CheckDestroy: testAccTencentCloudKafkaTopicDestory, Steps: []resource.TestStep{ @@ -17,7 +17,7 @@ func TestAccTencentCloudCkafkaTopicDataSource(t *testing.T) { Config: testAccTencentCloudCkafkaTopicDataSourceConfig, Check: resource.ComposeTestCheckFunc( testAccCheckKafkaTopicInstanceExists("tencentcloud_ckafka_topic.kafka_topic"), - resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_id", "ckafka-f9ife4zz"), + resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_id", "ckafka-vv7wpvae"), resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.#", "1"), resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.topic_name", "ckafkaTopic-tf-test"), resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.partition_num", "1"), @@ -29,7 +29,7 @@ func TestAccTencentCloudCkafkaTopicDataSource(t *testing.T) { resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.clean_up_policy", "delete"), resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.sync_replica_min_num", "1"), resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.unclean_leader_election_enable"), - resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.segment", "3600000"), + resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.segment", "86400000"), resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.retention", "60000"), resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.foo", "instance_list.#", "2"), resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.1.partition_num"), @@ -41,9 +41,9 @@ func TestAccTencentCloudCkafkaTopicDataSource(t *testing.T) { }) } -const testAccTencentCloudCkafkaTopicDataSourceConfig = ` +const testAccTencentCloudCkafkaTopicDataSourceConfig = defaultKafkaVariable + ` resource "tencentcloud_ckafka_topic" "kafka_topic" { - instance_id = "ckafka-f9ife4zz" + instance_id = var.instance_id topic_name = "ckafkaTopic-tf-test" replica_num = 2 partition_num = 1 @@ -53,7 +53,7 @@ resource "tencentcloud_ckafka_topic" "kafka_topic" { clean_up_policy = "delete" sync_replica_min_num = 1 unclean_leader_election_enable = false - segment = 3600000 + segment = 86400000 retention = 60000 } diff --git a/tencentcloud/data_source_tc_ckafka_users_test.go b/tencentcloud/data_source_tc_ckafka_users_test.go index 1ba321e070..971d0f66fe 100644 --- a/tencentcloud/data_source_tc_ckafka_users_test.go +++ b/tencentcloud/data_source_tc_ckafka_users_test.go @@ -9,7 +9,7 @@ import ( func TestAccTencentCloudCkafkaUsersDataSource(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, + PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) }, Providers: testAccProviders, CheckDestroy: testAccCheckCkafkaUserDestroy, Steps: []resource.TestStep{ @@ -18,7 +18,7 @@ func TestAccTencentCloudCkafkaUsersDataSource(t *testing.T) { Check: resource.ComposeAggregateTestCheckFunc( testAccCheckCkafkaUserExists("tencentcloud_ckafka_user.foo"), resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_users.foo", "instance_id"), - resource.TestCheckResourceAttr("data.tencentcloud_ckafka_users.foo", "user_list.0.account_name", "test"), + resource.TestCheckResourceAttr("data.tencentcloud_ckafka_users.foo", "user_list.0.account_name", "test1"), resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_users.foo", "user_list.0.create_time"), resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_users.foo", "user_list.0.update_time"), ), @@ -27,10 +27,10 @@ func TestAccTencentCloudCkafkaUsersDataSource(t *testing.T) { }) } -const testAccTencentCloudDataSourceCkafkaUser = ` +const testAccTencentCloudDataSourceCkafkaUser = defaultKafkaVariable + ` resource "tencentcloud_ckafka_user" "foo" { - instance_id = "ckafka-f9ife4zz" - account_name = "test" + instance_id = var.instance_id + account_name = "test1" password = "test1234" } diff --git a/tencentcloud/resource_tc_ckafka_acl_test.go b/tencentcloud/resource_tc_ckafka_acl_test.go index 83e00c789a..47b37ec5cf 100644 --- a/tencentcloud/resource_tc_ckafka_acl_test.go +++ b/tencentcloud/resource_tc_ckafka_acl_test.go @@ -12,7 +12,7 @@ import ( func TestAccTencentCloudCkafkaAcl(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, + PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) }, Providers: testAccProviders, CheckDestroy: testAccCheckCkafkaAclDestroy, Steps: []resource.TestStep{ @@ -89,11 +89,32 @@ func testAccCheckCkafkaAclDestroy(s *terraform.State) error { return nil } -const testAccCkafkaAcl = testAccCkafkaUser + ` +const testAccCkafkaAcl = defaultKafkaVariable + ` +resource "tencentcloud_ckafka_user" "foo" { + instance_id = var.instance_id + account_name = "tf-test-acl-resource" + password = "test1234" + } + +resource "tencentcloud_ckafka_topic" "kafka_topic_acl" { + instance_id = var.instance_id + topic_name = "ckafka-topic-acl-test" + replica_num = 2 + partition_num = 1 + note = "test topic" + enable_white_list = true + ip_white_list = ["192.168.1.1"] + clean_up_policy = "delete" + sync_replica_min_num = 1 + unclean_leader_election_enable = false + segment = 86400000 + retention = 60000 +} + resource "tencentcloud_ckafka_acl" foo { - instance_id = "ckafka-f9ife4zz" + instance_id = var.instance_id resource_type = "TOPIC" - resource_name = "topic-tf-test" + resource_name = tencentcloud_ckafka_topic.kafka_topic_acl.topic_name operation_type = "WRITE" permission_type = "ALLOW" host = "10.10.10.0" diff --git a/tencentcloud/resource_tc_ckafka_instance.go b/tencentcloud/resource_tc_ckafka_instance.go index 19aa34e7eb..407887baa9 100644 --- a/tencentcloud/resource_tc_ckafka_instance.go +++ b/tencentcloud/resource_tc_ckafka_instance.go @@ -388,6 +388,9 @@ func resourceTencentCloudCkafkaInstanceCreate(d *schema.ResourceData, meta inter } return resource.RetryableError(fmt.Errorf("create ckafka instance task is processing")) }) + if err != nil { + return err + } d.SetId(*instanceId) // modify instance attributes @@ -669,7 +672,7 @@ func resourceTencentCLoudCkafkaInstanceDelete(d *schema.ResourceData, meta inter err := resource.Retry(writeRetryTimeout, func() *resource.RetryError { _, err := service.client.UseCkafkaClient().DeleteInstancePre(request) if err != nil { - retryError(err, "UnsupportedOperation") + return retryError(err, "UnsupportedOperation") } return nil }) @@ -687,5 +690,8 @@ func resourceTencentCLoudCkafkaInstanceDelete(d *schema.ResourceData, meta inter } return resource.RetryableError(fmt.Errorf("delete ckafka instance task is processing")) }) + if err != nil { + return err + } return nil } diff --git a/tencentcloud/resource_tc_ckafka_instance_test.go b/tencentcloud/resource_tc_ckafka_instance_test.go index f1e5f7f34e..fa1f4c42a9 100644 --- a/tencentcloud/resource_tc_ckafka_instance_test.go +++ b/tencentcloud/resource_tc_ckafka_instance_test.go @@ -12,7 +12,7 @@ import ( func TestAccTencentCloudCKafkaInstance(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, + PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) }, Providers: testAccProviders, CheckDestroy: testAccTencentCloudKafkaInstanceDestroy, Steps: []resource.TestStep{ @@ -21,7 +21,7 @@ func TestAccTencentCloudCKafkaInstance(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckKafkaInstanceExists("tencentcloud_ckafka_instance.kafka_instance"), resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "instance_name", "ckafka-instance-tf-test"), - resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "zone_id", "100006"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "zone_id", "100003"), resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "period", "1"), resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "msg_retention_time", "1300"), resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "renew_flag", "0"), @@ -35,7 +35,7 @@ func TestAccTencentCloudCKafkaInstance(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckKafkaInstanceExists("tencentcloud_ckafka_instance.kafka_instance"), resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "instance_name", "ckafka-instance-tf-test"), - resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "zone_id", "100086"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "zone_id", "100003"), resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "period", "1"), resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "msg_retention_time", "1200"), resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "renew_flag", "0"), @@ -45,9 +45,10 @@ func TestAccTencentCloudCKafkaInstance(t *testing.T) { ), }, { - ResourceName: "tencentcloud_ckafka_instance.kafka_instance", - ImportState: true, - ImportStateVerify: true, + ResourceName: "tencentcloud_ckafka_instance.kafka_instance", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"period"}, }, }, }) @@ -64,15 +65,16 @@ func TestAccTencentCloudKafkaInstanceMAZ(t *testing.T) { Config: testAccKafkaInstanceMAZ, Check: resource.ComposeTestCheckFunc( testAccCheckKafkaInstanceExists("tencentcloud_ckafka_instance.kafka_instance"), - resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "instance_name", "ckafka-instance-tf-test"), - resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "zone_id", "100006"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "instance_name", "ckafka-instance-maz-tf-test"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "zone_id", "100003"), resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "zone_ids.#", "2"), ), }, { - ResourceName: "tencentcloud_ckafka_instance.kafka_instance", - ImportState: true, - ImportStateVerify: true, + ResourceName: "tencentcloud_ckafka_instance.kafka_instance", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"period"}, }, }, }) @@ -135,31 +137,13 @@ func testAccCheckKafkaInstanceExists(n string) resource.TestCheckFunc { } } -const testAccKafkaInstance = ` -resource "tencentcloud_route_table" "rtb_test" { - name = "rtb-test" - vpc_id = "${tencentcloud_vpc.vpc_test.id}" -} - -resource "tencentcloud_subnet" "subnet_test" { - name = "subnet-test" - cidr_block = "10.0.1.0/24" - availability_zone = "ap-guangzhou-6" - vpc_id = "${tencentcloud_vpc.vpc_test.id}" - route_table_id = "${tencentcloud_route_table.rtb_test.id}" -} - -resource "tencentcloud_vpc" "vpc_test" { - name = "vpc-test" - cidr_block = "10.0.0.0/16" -} - +const testAccKafkaInstance = defaultKafkaVariable + ` resource "tencentcloud_ckafka_instance" "kafka_instance" { instance_name = "ckafka-instance-tf-test" - zone_id = 100006 + zone_id = 100003 period = 1 - vpc_id = "${tencentcloud_vpc.vpc_test.id}" - subnet_id = "${tencentcloud_subnet.subnet_test.id}" + vpc_id = var.vpc_id + subnet_id = var.subnet_id msg_retention_time = 1300 renew_flag = 0 kafka_version = "1.1.1" @@ -179,31 +163,13 @@ resource "tencentcloud_ckafka_instance" "kafka_instance" { } ` -const testAccKafkaInstanceUpdate = ` -resource "tencentcloud_route_table" "rtb_test" { - name = "rtb-test" - vpc_id = "${tencentcloud_vpc.vpc_test.id}" -} - -resource "tencentcloud_subnet" "subnet_test" { - name = "subnet-test" - cidr_block = "10.0.1.0/24" - availability_zone = "ap-guangzhou-6" - vpc_id = "${tencentcloud_vpc.vpc_test.id}" - route_table_id = "${tencentcloud_route_table.rtb_test.id}" -} - -resource "tencentcloud_vpc" "vpc_test" { - name = "vpc-test" - cidr_block = "10.0.0.0/16" -} - +const testAccKafkaInstanceUpdate = defaultKafkaVariable + ` resource "tencentcloud_ckafka_instance" "kafka_instance" { instance_name = "ckafka-instance-tf-test" - zone_id = 100006 + zone_id = 100003 period = 1 - vpc_id = "${tencentcloud_vpc.vpc_test.id}" - subnet_id = "${tencentcloud_subnet.subnet_test.id}" + vpc_id = var.vpc_id + subnet_id = var.subnet_id msg_retention_time = 1200 renew_flag = 0 kafka_version = "1.1.1" @@ -223,33 +189,15 @@ resource "tencentcloud_ckafka_instance" "kafka_instance" { } ` -const testAccKafkaInstanceMAZ = ` -resource "tencentcloud_route_table" "rtb_test" { - name = "rtb-test" - vpc_id = "${tencentcloud_vpc.vpc_test.id}" -} - -resource "tencentcloud_subnet" "subnet_test" { - name = "subnet-test" - cidr_block = "10.0.1.0/24" - availability_zone = "ap-guangzhou-6" - vpc_id = tencentcloud_vpc.vpc_test.id - route_table_id = tencentcloud_route_table.rtb_test.id -} - -resource "tencentcloud_vpc" "vpc_test" { - name = "vpc-test" - cidr_block = "10.0.0.0/16" -} - +const testAccKafkaInstanceMAZ = defaultKafkaVariable + ` resource "tencentcloud_ckafka_instance" "kafka_instance" { - instance_name = "ckafka-instance-tf-test" - zone_id = 100006 + instance_name = "ckafka-instance-maz-tf-test" + zone_id = 100003 multi_zone_flag = true - zone_ids = [100007, 100006] + zone_ids = [100003, 100006] period = 1 - vpc_id = tencentcloud_vpc.vpc_test.id - subnet_id = tencentcloud_subnet.subnet_test.id + vpc_id = var.vpc_id + subnet_id = var.subnet_id msg_retention_time = 1300 renew_flag = 0 kafka_version = "1.1.1" diff --git a/tencentcloud/resource_tc_ckafka_topic.go b/tencentcloud/resource_tc_ckafka_topic.go index eba2d0f745..a36dcd914f 100644 --- a/tencentcloud/resource_tc_ckafka_topic.go +++ b/tencentcloud/resource_tc_ckafka_topic.go @@ -338,29 +338,16 @@ func resourceTencentCloudCkafkaTopicUpdate(d *schema.ResourceData, meta interfac } //Update ip white List if whiteListSwitch { - oldInterface, newInterface := d.GetChange("ip_white_list") - oldIpWhiteListInterface := oldInterface.([]interface{}) + _, newInterface := d.GetChange("ip_white_list") newIpWhiteListInterface := newInterface.([]interface{}) - var oldIpWhiteList, newIpWhiteList []*string - for _, value := range oldIpWhiteListInterface { - oldIpWhiteList = append(oldIpWhiteList, helper.String(value.(string))) - } + var newIpWhiteList []*string for _, value := range newIpWhiteListInterface { newIpWhiteList = append(newIpWhiteList, helper.String(value.(string))) } - if len(oldIpWhiteList) > 0 { - error := ckafkcService.RemoveCkafkaTopicIpWhiteList(ctx, instanceId, topicName, oldIpWhiteList) - if error != nil { - return fmt.Errorf("IP whitelist Modification failed, reason[%s]\n", error.Error()) - } - } if len(newIpWhiteList) == 0 { return fmt.Errorf("this Topic %s Create Failed, reason: ip whitelist switch is on, ip whitelist cannot be empty", topicName) } - error := ckafkcService.AddCkafkaTopicIpWhiteList(ctx, instanceId, topicName, newIpWhiteList) - if error != nil { - return fmt.Errorf("IP whitelist Modification failed, reason[%s]\n", error.Error()) - } + request.IpWhiteList = newIpWhiteList } else { //IP whiteList Switch not turned on, and the ip whitelist cannot be modified if d.HasChange("ip_white_list") { diff --git a/tencentcloud/resource_tc_ckafka_topic_test.go b/tencentcloud/resource_tc_ckafka_topic_test.go index 3653a5cf28..d0c6524cf5 100644 --- a/tencentcloud/resource_tc_ckafka_topic_test.go +++ b/tencentcloud/resource_tc_ckafka_topic_test.go @@ -13,7 +13,7 @@ import ( func TestAccTencentCloudCKafkaTopic(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, + PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) }, Providers: testAccProviders, CheckDestroy: testAccTencentCloudKafkaTopicDestory, Steps: []resource.TestStep{ @@ -21,7 +21,7 @@ func TestAccTencentCloudCKafkaTopic(t *testing.T) { Config: testAccKafkaTopicInstance, Check: resource.ComposeTestCheckFunc( testAccCheckKafkaTopicInstanceExists("tencentcloud_ckafka_topic.kafka_topic"), - resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "instance_id", "ckafka-f9ife4zz"), + resource.TestCheckResourceAttrSet("tencentcloud_ckafka_topic.kafka_topic", "instance_id"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "topic_name", "ckafka-topic-tf-test"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "note", "this is test ckafka topic"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "replica_num", "2"), @@ -32,7 +32,7 @@ func TestAccTencentCloudCKafkaTopic(t *testing.T) { resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "clean_up_policy", "delete"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "sync_replica_min_num", "1"), resource.TestCheckResourceAttrSet("tencentcloud_ckafka_topic.kafka_topic", "unclean_leader_election_enable"), - resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "segment", "3600000"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "segment", "86400000"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "retention", "60000"), ), }, @@ -40,14 +40,14 @@ func TestAccTencentCloudCKafkaTopic(t *testing.T) { Config: testAccKafkaTopicInstanceUpdate, Check: resource.ComposeTestCheckFunc( testAccCheckKafkaTopicInstanceExists("tencentcloud_ckafka_topic.kafka_topic"), - resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "instance_id", "ckafka-f9ife4zz"), + resource.TestCheckResourceAttrSet("tencentcloud_ckafka_topic.kafka_topic", "instance_id"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "note", "this is test topic_update"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "partition_num", "2"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "enable_white_list", "true"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "clean_up_policy", "compact"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "sync_replica_min_num", "2"), resource.TestCheckResourceAttrSet("tencentcloud_ckafka_topic.kafka_topic", "unclean_leader_election_enable"), - resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "segment", "4000000"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "segment", "87400000"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "retention", "70000"), resource.TestCheckResourceAttr("tencentcloud_ckafka_topic.kafka_topic", "max_message_bytes", "8388608"), ), @@ -125,9 +125,9 @@ func testAccCheckKafkaTopicInstanceExists(n string) resource.TestCheckFunc { } } -const testAccKafkaTopicInstance = ` +const testAccKafkaTopicInstance = defaultKafkaVariable + ` resource "tencentcloud_ckafka_topic" "kafka_topic" { - instance_id = "ckafka-f9ife4zz" + instance_id = var.instance_id topic_name = "ckafka-topic-tf-test" note = "this is test ckafka topic" replica_num = 2 @@ -137,15 +137,15 @@ resource "tencentcloud_ckafka_topic" "kafka_topic" { clean_up_policy = "delete" sync_replica_min_num = 1 unclean_leader_election_enable = false - segment = 3600000 + segment = 86400000 retention = 60000 max_message_bytes = 0 } ` -const testAccKafkaTopicInstanceUpdate = ` +const testAccKafkaTopicInstanceUpdate = defaultKafkaVariable + ` resource "tencentcloud_ckafka_topic" "kafka_topic" { - instance_id = "ckafka-f9ife4zz" + instance_id = var.instance_id topic_name = "ckafka-topic-tf-test" note = "this is test topic_update" replica_num = 2 @@ -155,7 +155,7 @@ resource "tencentcloud_ckafka_topic" "kafka_topic" { clean_up_policy = "compact" sync_replica_min_num = 2 unclean_leader_election_enable = true - segment = 4000000 + segment = 87400000 retention = 70000 max_message_bytes = 8388608 } diff --git a/tencentcloud/resource_tc_ckafka_user_test.go b/tencentcloud/resource_tc_ckafka_user_test.go index bab63c17c2..8e6c8d3cef 100644 --- a/tencentcloud/resource_tc_ckafka_user_test.go +++ b/tencentcloud/resource_tc_ckafka_user_test.go @@ -12,7 +12,7 @@ import ( func TestAccTencentCloudCkafkaUser(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, + PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) }, Providers: testAccProviders, CheckDestroy: testAccCheckCkafkaUserDestroy, Steps: []resource.TestStep{ @@ -99,17 +99,17 @@ func testAccCheckCkafkaUserDestroy(s *terraform.State) error { return nil } -const testAccCkafkaUser = ` +const testAccCkafkaUser = defaultKafkaVariable + ` resource "tencentcloud_ckafka_user" "foo" { - instance_id = "ckafka-f9ife4zz" + instance_id = var.instance_id account_name = "tf-test" password = "test1234" } ` -const testAccCkafkaUser_update = ` +const testAccCkafkaUser_update = defaultKafkaVariable + ` resource "tencentcloud_ckafka_user" "foo" { - instance_id = "ckafka-f9ife4zz" + instance_id = var.instance_id account_name = "tf-test" password = "test1234update" } diff --git a/tencentcloud/service_tencentcloud_ckafka.go b/tencentcloud/service_tencentcloud_ckafka.go index 45014b57cc..d9dcc8fa2e 100644 --- a/tencentcloud/service_tencentcloud_ckafka.go +++ b/tencentcloud/service_tencentcloud_ckafka.go @@ -810,7 +810,7 @@ func (me *CkafkaService) DeleteCkafkaTopic(ctx context.Context, instanceId strin return retryError(err) } if len(topicList) != 0 { - errRet = fmt.Errorf("this Topic %s Delete Failed", name) + return resource.RetryableError(fmt.Errorf("this Topic %s Delete Failed", name)) } return nil }) From 7a6c54c96fb7832a30b438764963a4fb155676a0 Mon Sep 17 00:00:00 2001 From: mikatong Date: Tue, 26 Apr 2022 22:58:10 +0800 Subject: [PATCH 2/3] fix: unit-test --- tencentcloud/data_source_tc_ckafka_topics_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tencentcloud/data_source_tc_ckafka_topics_test.go b/tencentcloud/data_source_tc_ckafka_topics_test.go index 3172a3049d..ff5cbb8c17 100644 --- a/tencentcloud/data_source_tc_ckafka_topics_test.go +++ b/tencentcloud/data_source_tc_ckafka_topics_test.go @@ -31,10 +31,10 @@ func TestAccTencentCloudCKafkaTopicDataSource(t *testing.T) { resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.unclean_leader_election_enable"), resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.segment", "86400000"), resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.kafka_topics", "instance_list.0.retention", "60000"), - resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.foo", "instance_list.#", "2"), - resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.1.partition_num"), - resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.1.replica_num"), - resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.1.create_time"), + resource.TestCheckResourceAttr("data.tencentcloud_ckafka_topics.foo", "instance_list.#", "1"), + resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.0.partition_num"), + resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.0.replica_num"), + resource.TestCheckResourceAttrSet("data.tencentcloud_ckafka_topics.foo", "instance_list.0.create_time"), ), }, }, From 446d68b4c2481a1ec196a68fbe1d72b446e7e863 Mon Sep 17 00:00:00 2001 From: mikatong Date: Tue, 26 Apr 2022 23:32:56 +0800 Subject: [PATCH 3/3] fix: unit test --- tencentcloud/resource_tc_ckafka_acl_test.go | 2 +- tencentcloud/resource_tc_ckafka_topic_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tencentcloud/resource_tc_ckafka_acl_test.go b/tencentcloud/resource_tc_ckafka_acl_test.go index 47b37ec5cf..3b75e61f2f 100644 --- a/tencentcloud/resource_tc_ckafka_acl_test.go +++ b/tencentcloud/resource_tc_ckafka_acl_test.go @@ -9,7 +9,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/terraform" ) -func TestAccTencentCloudCkafkaAcl(t *testing.T) { +func TestAccTencentCloudCkafkaAclResource(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) }, diff --git a/tencentcloud/resource_tc_ckafka_topic_test.go b/tencentcloud/resource_tc_ckafka_topic_test.go index d0c6524cf5..c2ca971074 100644 --- a/tencentcloud/resource_tc_ckafka_topic_test.go +++ b/tencentcloud/resource_tc_ckafka_topic_test.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/terraform" ) -func TestAccTencentCloudCKafkaTopic(t *testing.T) { +func TestAccTencentCloudCKafkaTopicResource(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheckCommon(t, ACCOUNT_TYPE_PREPAY) },