Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
199 changes: 199 additions & 0 deletions tencentcloud/resource_tc_ckafka_instance_test.go
Original file line number Diff line number Diff line change
@@ -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
}
}
`
26 changes: 13 additions & 13 deletions tencentcloud/resource_tc_clb_instance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
Expand All @@ -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"),
Expand All @@ -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"),
),
},
Expand All @@ -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"),
),
},
Expand Down Expand Up @@ -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"
}
}
`
Expand All @@ -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"
Expand Down
2 changes: 0 additions & 2 deletions tencentcloud/resource_tc_clb_listener_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
Expand All @@ -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"),
Expand Down
12 changes: 6 additions & 6 deletions tencentcloud/resource_tc_clb_log_set_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
},
Expand Down Expand Up @@ -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
}
`
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
21 changes: 18 additions & 3 deletions tencentcloud/resource_tc_instance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down Expand Up @@ -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+`
Expand Down Expand Up @@ -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"
}
Expand Down Expand Up @@ -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
}
`,
Expand Down