From 6ebf6974aebf780c7a23d2c52f85f0a0d69b8fef Mon Sep 17 00:00:00 2001 From: hellertang Date: Wed, 29 Dec 2021 11:07:27 +0800 Subject: [PATCH] fix testcases --- .../resource_tc_ckafka_instance_test.go | 199 ++++++++++++++++++ tencentcloud/resource_tc_clb_instance_test.go | 26 +-- tencentcloud/resource_tc_clb_listener_test.go | 2 - tencentcloud/resource_tc_clb_log_set_test.go | 12 +- ...t.go => resource_tc_clb_log_topic_test.go} | 2 +- tencentcloud/resource_tc_instance_test.go | 21 +- 6 files changed, 237 insertions(+), 25 deletions(-) create mode 100644 tencentcloud/resource_tc_ckafka_instance_test.go rename tencentcloud/{resource_tc_clb_instance_topic_test.go => resource_tc_clb_log_topic_test.go} (97%) diff --git a/tencentcloud/resource_tc_ckafka_instance_test.go b/tencentcloud/resource_tc_ckafka_instance_test.go new file mode 100644 index 0000000000..b2705cfbc0 --- /dev/null +++ b/tencentcloud/resource_tc_ckafka_instance_test.go @@ -0,0 +1,199 @@ +package tencentcloud + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/terraform" +) + +func TestAccTencentCloudKafkaInstance(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccTencentCloudKafkaInstanceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccKafkaInstance, + 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", "period", "1"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "msg_retention_time", "1300"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "renew_flag", "0"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "kafka_version", "1.1.1"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "disk_size", "500"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "disk_type", "CLOUD_BASIC"), + ), + }, + { + Config: testAccKafkaInstanceUpdate, + 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", "period", "1"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "msg_retention_time", "1200"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "renew_flag", "0"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "kafka_version", "1.1.1"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "disk_size", "500"), + resource.TestCheckResourceAttr("tencentcloud_ckafka_instance.kafka_instance", "disk_type", "CLOUD_BASIC"), + ), + }, + { + ResourceName: "tencentcloud_ckafka_instance.kafka_instance", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccTencentCloudKafkaInstanceDestroy(s *terraform.State) error { + logId := getLogId(contextNil) + ctx := context.WithValue(context.TODO(), logIdKey, logId) + ckafkcService := CkafkaService{ + client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn, + } + for _, r := range s.RootModule().Resources { + if r.Type != "tencentcloud_ckafka_instance" { + continue + } + _, has, error := ckafkcService.DescribeInstanceById(ctx, r.Primary.ID) + if error != nil { + return error + } + if !has { + return nil + } + return fmt.Errorf("ckafka instance still exists: %s", r.Primary.ID) + } + return nil +} + +func testAccCheckKafkaInstanceExists(n string) resource.TestCheckFunc { + return func(s *terraform.State) error { + logId := getLogId(contextNil) + ctx := context.WithValue(context.TODO(), logIdKey, logId) + + rs, ok := s.RootModule().Resources[n] + if !ok { + return fmt.Errorf("ckafka instance %s is not found", n) + } + if rs.Primary.ID == "" { + return fmt.Errorf("ckafka instance id is not set") + } + ckafkcService := CkafkaService{ + client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn, + } + + var exist bool + outErr := resource.Retry(readRetryTimeout, func() *resource.RetryError { + _, has, inErr := ckafkcService.DescribeInstanceById(ctx, rs.Primary.ID) + if inErr != nil { + return retryError(inErr) + } + exist = has + return nil + }) + if outErr != nil { + return outErr + } + if !exist { + return fmt.Errorf("ckafka instance doesn't exist: %s", rs.Primary.ID) + } + return nil + } +} + +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" +} + +resource "tencentcloud_ckafka_instance" "kafka_instance" { + instance_name = "ckafka-instance-tf-test" + zone_id = 100006 + period = 1 + vpc_id = "${tencentcloud_vpc.vpc_test.id}" + subnet_id = "${tencentcloud_subnet.subnet_test.id}" + msg_retention_time = 1300 + renew_flag = 0 + kafka_version = "1.1.1" + disk_size = 500 + disk_type = "CLOUD_BASIC" + + + config { + auto_create_topic_enable = true + default_num_partitions = 3 + default_replication_factor = 3 + } + + dynamic_retention_config { + enable = 1 + } +} +` + +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" +} + +resource "tencentcloud_ckafka_instance" "kafka_instance" { + instance_name = "ckafka-instance-tf-test" + zone_id = 100006 + period = 1 + vpc_id = "${tencentcloud_vpc.vpc_test.id}" + subnet_id = "${tencentcloud_subnet.subnet_test.id}" + msg_retention_time = 1200 + renew_flag = 0 + kafka_version = "1.1.1" + disk_size = 500 + disk_type = "CLOUD_BASIC" + + + config { + auto_create_topic_enable = true + default_num_partitions = 3 + default_replication_factor = 3 + } + + dynamic_retention_config { + enable = 1 + } +} +` diff --git a/tencentcloud/resource_tc_clb_instance_test.go b/tencentcloud/resource_tc_clb_instance_test.go index eb68d7c861..4f038454ff 100644 --- a/tencentcloud/resource_tc_clb_instance_test.go +++ b/tencentcloud/resource_tc_clb_instance_test.go @@ -129,7 +129,7 @@ func TestAccTencentCloudClbInstance_default_enable(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckClbInstanceExists("tencentcloud_clb_instance.default_enable"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "network_type", "OPEN"), - resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "clb_name", "my_open_clb"), + resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "clb_name", "my-open-clb"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "project_id", "0"), resource.TestCheckResourceAttrSet("tencentcloud_clb_instance.default_enable", "vpc_id"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "load_balancer_pass_to_target", "true"), @@ -144,7 +144,7 @@ func TestAccTencentCloudClbInstance_default_enable(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckClbInstanceExists("tencentcloud_clb_instance.default_enable"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "network_type", "OPEN"), - resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "clb_name", "my_open_clb"), + resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "clb_name", "my-open-clb"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "project_id", "0"), resource.TestCheckResourceAttrSet("tencentcloud_clb_instance.default_enable", "vpc_id"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.default_enable", "load_balancer_pass_to_target", "true"), @@ -171,9 +171,9 @@ func TestAccTencentCloudClbInstance_multiple_instance(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckClbInstanceExists("tencentcloud_clb_instance.multiple_instance"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "network_type", "OPEN"), - resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "clb_name", "my_open_clb"), - resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "master_zone_id", "10001"), - resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "slave_zone_id", "10002"), + resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "clb_name", "my-open-clb"), + resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "master_zone_id", "100003"), + resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "slave_zone_id", "100004"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "tags.test", "mytest"), ), }, @@ -182,9 +182,9 @@ func TestAccTencentCloudClbInstance_multiple_instance(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckClbInstanceExists("tencentcloud_clb_instance.multiple_instance"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "network_type", "OPEN"), - resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "clb_name", "my_open_clb"), - resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "master_zone_id", "10001"), - resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "slave_zone_id", "10002"), + resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "clb_name", "my-open-clb"), + resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "master_zone_id", "100003"), + resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "slave_zone_id", "100004"), resource.TestCheckResourceAttr("tencentcloud_clb_instance.multiple_instance", "tags.test", "open"), ), }, @@ -451,11 +451,11 @@ const testAccClbInstance__multi_instance = ` resource "tencentcloud_clb_instance" "multiple_instance" { network_type = "OPEN" clb_name = "my-open-clb" - master_zone_id = "10001" - slave_zone_id = "10002" + master_zone_id = "100003" + slave_zone_id = "100004" tags = { - test = "open" + test = "mytest" } } ` @@ -464,8 +464,8 @@ const testAccClbInstance__multi_instance_update = ` resource "tencentcloud_clb_instance" "multiple_instance" { network_type = "OPEN" clb_name = "my-open-clb" - master_zone_id = "10001" - slave_zone_id = "10002" + master_zone_id = "100003" + slave_zone_id = "100004" tags = { test = "open" diff --git a/tencentcloud/resource_tc_clb_listener_test.go b/tencentcloud/resource_tc_clb_listener_test.go index 0e59f86e34..a8f562d9b5 100644 --- a/tencentcloud/resource_tc_clb_listener_test.go +++ b/tencentcloud/resource_tc_clb_listener_test.go @@ -232,7 +232,6 @@ func TestAccTencentCloudClbListenerTCPWithCustomer(t *testing.T) { resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_health_num", "2"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_unhealth_num", "2"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_type", "CUSTOM"), - resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_port", "0"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_context_type", "HEX"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_send_context", "0123456789ABCDEF"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_recv_context", "ABCD"), @@ -254,7 +253,6 @@ func TestAccTencentCloudClbListenerTCPWithCustomer(t *testing.T) { resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_health_num", "3"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_unhealth_num", "3"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_type", "CUSTOM"), - resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_port", "0"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_context_type", "TEXT"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_send_context", "/get/test"), resource.TestCheckResourceAttr("tencentcloud_clb_listener.listener_tcp", "health_check_recv_context", "http_1xx"), diff --git a/tencentcloud/resource_tc_clb_log_set_test.go b/tencentcloud/resource_tc_clb_log_set_test.go index 122f35bd40..6595ace886 100644 --- a/tencentcloud/resource_tc_clb_log_set_test.go +++ b/tencentcloud/resource_tc_clb_log_set_test.go @@ -21,14 +21,14 @@ func TestAccTencentCloudClbLogset_basic(t *testing.T) { { Config: testAccClbLogset_basic, Check: resource.ComposeTestCheckFunc( - testAccCheckClbLogsetExists("tencentcloud_clb_logset.test_logset"), - resource.TestCheckResourceAttrSet("tencentcloud_clb_logset.test_logset", "create_time"), - resource.TestCheckResourceAttr("tencentcloud_clb_logset.test_logset", "name", "clb_logset"), - resource.TestCheckResourceAttr("tencentcloud_clb_logset.test_logset", "period", "7"), + testAccCheckClbLogsetExists("tencentcloud_clb_log_set.test_logset"), + resource.TestCheckResourceAttrSet("tencentcloud_clb_log_set.test_logset", "create_time"), + resource.TestCheckResourceAttr("tencentcloud_clb_log_set.test_logset", "name", "clb_logset"), + resource.TestCheckResourceAttr("tencentcloud_clb_log_set.test_logset", "period", "7"), ), }, { - ResourceName: "tencentcloud_clb_logset.test_logset", + ResourceName: "tencentcloud_clb_log_set.test_logset", ImportState: true, ImportStateVerify: true, }, @@ -85,7 +85,7 @@ func testAccCheckClbLogsetExists(n string) resource.TestCheckFunc { } const testAccClbLogset_basic = ` -resource "tencentcloud_clb_logset" "test_logset" { +resource "tencentcloud_clb_log_set" "test_logset" { period = 7 } ` diff --git a/tencentcloud/resource_tc_clb_instance_topic_test.go b/tencentcloud/resource_tc_clb_log_topic_test.go similarity index 97% rename from tencentcloud/resource_tc_clb_instance_topic_test.go rename to tencentcloud/resource_tc_clb_log_topic_test.go index 2ebe1cc7b8..81c010e3c9 100644 --- a/tencentcloud/resource_tc_clb_instance_topic_test.go +++ b/tencentcloud/resource_tc_clb_log_topic_test.go @@ -58,7 +58,7 @@ func testAccCheckClbInstanceTopicExists(n string) resource.TestCheckFunc { } const testAccClbInstanceTopic = ` -resource "tencentcloud_clb_instances_topic" "topic" { +resource "tencentcloud_clb_log_topic" "topic" { topic_name="clb-topic-test" partition_count=3 } diff --git a/tencentcloud/resource_tc_instance_test.go b/tencentcloud/resource_tc_instance_test.go index 30cb9df1a7..c9eb5f269b 100644 --- a/tencentcloud/resource_tc_instance_test.go +++ b/tencentcloud/resource_tc_instance_test.go @@ -133,7 +133,7 @@ func TestAccTencentCloudInstanceWithNetwork(t *testing.T) { CheckDestroy: testAccCheckInstanceDestroy, Steps: []resource.TestStep{ { - Config: testAccTencentCloudInstanceWithNetwork("false", 1), + Config: testAccTencentCloudInstanceWithNetworkFalse("false"), Check: resource.ComposeTestCheckFunc( testAccCheckTencentCloudDataSourceID(id), testAccCheckTencentCloudInstanceExists(id), @@ -608,6 +608,23 @@ resource "tencentcloud_instance" "foo" { } ` +func testAccTencentCloudInstanceWithNetworkFalse(hasPublicIp string) string { + return fmt.Sprintf( + defaultInstanceVariable+` +resource "tencentcloud_instance" "foo" { + instance_name = var.instance_name + availability_zone = data.tencentcloud_availability_zones.default.zones.0.name + image_id = data.tencentcloud_images.default.images.0.image_id + instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type + internet_charge_type = "TRAFFIC_POSTPAID_BY_HOUR" + allocate_public_ip = %s + system_disk_type = "CLOUD_PREMIUM" +} +`, + hasPublicIp, + ) +} + func testAccTencentCloudInstanceWithNetwork(hasPublicIp string, maxBandWidthOut int64) string { return fmt.Sprintf( defaultInstanceVariable+` @@ -673,7 +690,6 @@ resource "tencentcloud_instance" "foo" { availability_zone = data.tencentcloud_availability_zones.default.zones.0.name image_id = data.tencentcloud_images.default.images.0.image_id instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type - internet_max_bandwidth_out = 1 password = "%s" system_disk_type = "CLOUD_PREMIUM" } @@ -761,7 +777,6 @@ resource "tencentcloud_instance" "foo" { image_id = data.tencentcloud_images.default.images.0.image_id instance_type = data.tencentcloud_instance_types.default.instance_types.0.instance_type system_disk_type = "CLOUD_PREMIUM" - internet_max_bandwidth_out = 1 security_groups = %s } `,