Skip to content

Commit 71e59ae

Browse files
committed
chore(kafka): use new API to replace history API and improve test
1 parent 871067c commit 71e59ae

File tree

4 files changed

+132
-38
lines changed

4 files changed

+132
-38
lines changed

huaweicloud/services/acceptance/kafka/resource_huaweicloud_dms_kafka_instance_test.go

Lines changed: 82 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -107,24 +107,42 @@ func TestAccKafkaInstance_newFormat(t *testing.T) {
107107
Check: resource.ComposeTestCheckFunc(
108108
rc.CheckResourceExists(),
109109
resource.TestCheckResourceAttr(resourceName, "name", rName),
110-
resource.TestCheckResourceAttr(resourceName, "engine", "kafka"),
111-
resource.TestCheckResourceAttr(resourceName, "security_protocol", "SASL_PLAINTEXT"),
112-
resource.TestCheckResourceAttr(resourceName, "enabled_mechanisms.0", "SCRAM-SHA-512"),
113-
resource.TestCheckResourceAttrPair(resourceName, "broker_num",
114-
"data.huaweicloud_dms_kafka_flavors.test", "flavors.0.properties.0.min_broker"),
115-
resource.TestCheckResourceAttrPair(resourceName, "flavor_id",
116-
"data.huaweicloud_dms_kafka_flavors.test", "flavors.0.id"),
110+
resource.TestCheckResourceAttr(resourceName, "engine_version", "2.7"),
117111
resource.TestCheckResourceAttrPair(resourceName, "storage_spec_code",
118112
"data.huaweicloud_dms_kafka_flavors.test", "flavors.0.ios.0.storage_spec_code"),
119-
resource.TestCheckResourceAttr(resourceName, "broker_num", "3"),
113+
resource.TestCheckResourceAttrPair(resourceName, "vpc_id",
114+
"huaweicloud_vpc.test", "id"),
115+
resource.TestCheckResourceAttrPair(resourceName, "security_group_id",
116+
"huaweicloud_networking_secgroup.test", "id"),
117+
resource.TestCheckResourceAttrPair(resourceName, "network_id",
118+
"huaweicloud_vpc_subnet.test", "id"),
119+
resource.TestMatchResourceAttr(resourceName, "availability_zones.#", regexp.MustCompile(`^[1-9]([0-9]*)?$`)),
120120
resource.TestCheckResourceAttr(resourceName, "arch_type", "X86"),
121-
122-
resource.TestCheckResourceAttr(resourceName, "cross_vpc_accesses.1.advertised_ip", "www.terraform-test.com"),
123-
resource.TestCheckResourceAttr(resourceName, "cross_vpc_accesses.2.advertised_ip", "192.168.0.53"),
121+
resource.TestCheckResourceAttrPair(resourceName, "flavor_id",
122+
"data.huaweicloud_dms_kafka_flavors.test", "flavors.0.id"),
123+
resource.TestCheckResourceAttr(resourceName, "broker_num", "3"),
124+
resource.TestCheckResourceAttr(resourceName, "access_user", "user"),
124125
resource.TestCheckResourceAttr(resourceName, "parameters.0.name", "log.retention.hours"),
125126
resource.TestCheckResourceAttr(resourceName, "parameters.0.value", "48"),
127+
resource.TestCheckResourceAttr(resourceName, "security_protocol", "SASL_PLAINTEXT"),
128+
resource.TestCheckResourceAttr(resourceName, "enabled_mechanisms.0", "SCRAM-SHA-512"),
129+
resource.TestCheckResourceAttr(resourceName, "cross_vpc_accesses.1.advertised_ip", "www.terraform-test.com"),
130+
resource.TestCheckResourceAttr(resourceName, "cross_vpc_accesses.2.advertised_ip", "192.168.0.53"),
131+
resource.TestCheckResourceAttrSet(resourceName, "storage_space"),
126132
resource.TestCheckResourceAttrSet(resourceName, "maintain_begin"),
127133
resource.TestCheckResourceAttrSet(resourceName, "maintain_end"),
134+
// Check attributes.
135+
resource.TestCheckResourceAttr(resourceName, "engine", "kafka"),
136+
resource.TestMatchResourceAttr(resourceName, "partition_num", regexp.MustCompile(`^[1-9]([0-9]*)?$`)),
137+
resource.TestCheckResourceAttrSet(resourceName, "connect_address"),
138+
resource.TestCheckResourceAttrSet(resourceName, "port"),
139+
resource.TestCheckResourceAttrSet(resourceName, "status"),
140+
resource.TestCheckResourceAttrSet(resourceName, "storage_type"),
141+
resource.TestCheckResourceAttrSet(resourceName, "created_at"),
142+
resource.TestCheckResourceAttr(resourceName, "is_logical_volume", "true"),
143+
resource.TestCheckResourceAttrSet(resourceName, "node_num"),
144+
resource.TestCheckResourceAttrSet(resourceName, "pod_connect_address"),
145+
resource.TestCheckResourceAttr(resourceName, "type", "cluster"),
128146
),
129147
},
130148
{
@@ -139,13 +157,12 @@ func TestAccKafkaInstance_newFormat(t *testing.T) {
139157
resource.TestCheckResourceAttrPair(resourceName, "storage_spec_code",
140158
"data.huaweicloud_dms_kafka_flavors.test", "flavors.0.ios.0.storage_spec_code"),
141159
resource.TestCheckResourceAttr(resourceName, "storage_space", "600"),
142-
160+
resource.TestCheckResourceAttr(resourceName, "parameters.0.name", "auto.create.groups.enable"),
161+
resource.TestCheckResourceAttr(resourceName, "parameters.0.value", "false"),
143162
resource.TestCheckResourceAttr(resourceName, "cross_vpc_accesses.0.advertised_ip", "192.168.0.61"),
144163
resource.TestCheckResourceAttr(resourceName, "cross_vpc_accesses.1.advertised_ip", "test.terraform.com"),
145164
resource.TestCheckResourceAttr(resourceName, "cross_vpc_accesses.2.advertised_ip", "192.168.0.62"),
146165
resource.TestCheckResourceAttr(resourceName, "cross_vpc_accesses.3.advertised_ip", "192.168.0.63"),
147-
resource.TestCheckResourceAttr(resourceName, "parameters.0.name", "auto.create.groups.enable"),
148-
resource.TestCheckResourceAttr(resourceName, "parameters.0.value", "false"),
149166
resource.TestCheckResourceAttr(resourceName, "maintain_begin", "06:00:00"),
150167
resource.TestCheckResourceAttr(resourceName, "maintain_end", "10:00:00"),
151168
),
@@ -166,7 +183,10 @@ func TestAccKafkaInstance_publicIp(t *testing.T) {
166183
password := acceptance.RandomPassword()
167184

168185
resource.ParallelTest(t, resource.TestCase{
169-
PreCheck: func() { acceptance.TestAccPreCheck(t) },
186+
PreCheck: func() {
187+
acceptance.TestAccPreCheck(t)
188+
acceptance.TestAccPreCheckMigrateEpsID(t)
189+
},
170190
ProviderFactories: acceptance.TestAccProviderFactories,
171191
CheckDestroy: rc.CheckResourceDestroy(),
172192
Steps: []resource.TestStep{
@@ -177,13 +197,27 @@ func TestAccKafkaInstance_publicIp(t *testing.T) {
177197
resource.TestCheckResourceAttr(resourceName, "name", rName),
178198
resource.TestCheckResourceAttr(resourceName, "broker_num", "3"),
179199
resource.TestCheckResourceAttr(resourceName, "public_ip_ids.#", "3"),
200+
resource.TestCheckResourceAttr(resourceName, "dumping", "true"),
201+
resource.TestCheckResourceAttr(resourceName, "new_tenant_ips.#", "2"),
202+
resource.TestCheckResourceAttr(resourceName, "new_tenant_ips.0", "192.168.0.20"),
203+
resource.TestCheckResourceAttr(resourceName, "new_tenant_ips.1", "192.168.0.18"),
180204
resource.TestCheckResourceAttr(resourceName, "ssl_enable", "false"),
181205
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.private_plain_enable", "true"),
182206
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.public_plain_enable", "true"),
183207
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.private_sasl_ssl_enable", "false"),
184208
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.public_sasl_ssl_enable", "false"),
185209
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.private_sasl_plaintext_enable", "false"),
186210
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.public_sasl_plaintext_enable", "false"),
211+
resource.TestCheckResourceAttr(resourceName, "enable_auto_topic", "true"),
212+
resource.TestCheckResourceAttr(resourceName, "vpc_client_plain", "true"),
213+
resource.TestCheckResourceAttr(resourceName, "description", "Created by Terraform script"),
214+
resource.TestCheckResourceAttr(resourceName, "enterprise_project_id", acceptance.HW_ENTERPRISE_PROJECT_ID_TEST),
215+
resource.TestCheckResourceAttr(resourceName, "retention_policy", "time_base"),
216+
// Check attributes.
217+
resource.TestCheckResourceAttr(resourceName, "enable_public_ip", "true"),
218+
resource.TestCheckResourceAttr(resourceName, "public_ip_address.#", "3"),
219+
resource.TestCheckResourceAttrSet(resourceName, "connector_id"),
220+
resource.TestCheckResourceAttrSet(resourceName, "connector_node_num"),
187221
),
188222
},
189223
{
@@ -198,11 +232,17 @@ func TestAccKafkaInstance_publicIp(t *testing.T) {
198232
resource.TestCheckResourceAttr(resourceName, "name", rName),
199233
resource.TestCheckResourceAttr(resourceName, "broker_num", "4"),
200234
resource.TestCheckResourceAttr(resourceName, "public_ip_ids.#", "4"),
235+
resource.TestCheckResourceAttr(resourceName, "new_tenant_ips.#", "1"),
236+
resource.TestCheckResourceAttr(resourceName, "new_tenant_ips.0", "192.168.0.79"),
201237
resource.TestCheckResourceAttr(resourceName, "ssl_enable", "true"),
202238
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.private_plain_enable", "false"),
203239
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.private_sasl_ssl_enable", "true"),
204240
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.public_plain_enable", "false"),
205241
resource.TestCheckResourceAttr(resourceName, "port_protocol.0.public_sasl_ssl_enable", "true"),
242+
resource.TestCheckResourceAttr(resourceName, "enable_auto_topic", "false"),
243+
resource.TestCheckResourceAttr(resourceName, "description", ""),
244+
resource.TestCheckResourceAttr(resourceName, "enterprise_project_id", acceptance.HW_ENTERPRISE_MIGRATE_PROJECT_ID_TEST),
245+
resource.TestCheckResourceAttr(resourceName, "retention_policy", "produce_reject"),
206246
),
207247
},
208248
{
@@ -479,18 +519,24 @@ resource "huaweicloud_dms_kafka_instance" "test" {
479519
storage_spec_code = local.flavor.ios[0].storage_spec_code
480520
availability_zones = slice(data.huaweicloud_availability_zones.test.names, 0, 3)
481521
482-
engine_version = "2.7"
483-
storage_space = 300
484-
broker_num = 3
485-
arch_type = "X86"
486-
public_ip_ids = huaweicloud_vpc_eip.test[*].id
487-
new_tenant_ips = ["192.168.0.20", "192.168.0.18"]
522+
engine_version = "2.7"
523+
storage_space = 300
524+
broker_num = 3
525+
arch_type = "X86"
526+
public_ip_ids = huaweicloud_vpc_eip.test[*].id
527+
new_tenant_ips = ["192.168.0.20", "192.168.0.18"]
528+
dumping = true
529+
description = "Created by Terraform script"
530+
enable_auto_topic = true
531+
vpc_client_plain = true
532+
enterprise_project_id = "%[4]s"
533+
retention_policy = "time_base"
488534
489535
port_protocol {
490536
private_plain_enable = true
491537
public_plain_enable = true
492538
}
493-
}`, common.TestBaseNetwork(rName), testAccKafkaInstance_publicIpBase(3), rName)
539+
}`, common.TestBaseNetwork(rName), testAccKafkaInstance_publicIpBase(3), rName, acceptance.HW_ENTERPRISE_PROJECT_ID_TEST)
494540
}
495541

496542
func testAccKafkaInstance_publicIp_update(rName, password string, brokerNum int) string {
@@ -520,22 +566,25 @@ resource "huaweicloud_dms_kafka_instance" "test" {
520566
storage_spec_code = local.flavor.ios[0].storage_spec_code
521567
availability_zones = slice(data.huaweicloud_availability_zones.test.names, 0, 3)
522568
523-
engine_version = "2.7"
524-
storage_space = 600
525-
broker_num = %d
526-
arch_type = "X86"
527-
new_tenant_ips = ["192.168.0.79"]
528-
public_ip_ids = huaweicloud_vpc_eip.test[*].id
529-
access_user = "test"
530-
password = "%[5]s"
531-
532-
enabled_mechanisms = ["SCRAM-SHA-512"]
569+
engine_version = "2.7"
570+
storage_space = 600
571+
broker_num = %d
572+
arch_type = "X86"
573+
new_tenant_ips = ["192.168.0.79"]
574+
dumping = true
575+
public_ip_ids = huaweicloud_vpc_eip.test[*].id
576+
access_user = "test"
577+
password = "%[5]s"
578+
enabled_mechanisms = ["SCRAM-SHA-512"]
579+
enable_auto_topic = false
580+
enterprise_project_id = "%[6]s"
581+
retention_policy = "produce_reject"
533582
534583
port_protocol {
535584
private_plain_enable = false
536585
private_sasl_ssl_enable = true
537586
public_plain_enable = false
538587
public_sasl_ssl_enable = true
539588
}
540-
}`, common.TestBaseNetwork(rName), testAccKafkaInstance_publicIpBase(4), rName, brokerNum, password)
589+
}`, common.TestBaseNetwork(rName), testAccKafkaInstance_publicIpBase(4), rName, brokerNum, password, acceptance.HW_ENTERPRISE_MIGRATE_PROJECT_ID_TEST)
541590
}

huaweicloud/services/kafka/resource_huaweicloud_dms_kafka_instance.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ const engineKafka = "kafka"
3636

3737
// @API Kafka GET /v2/available-zones
3838
// @API Kafka POST /v2/{project_id}/instances/{instance_id}/crossvpc/modify
39-
// @API Kafka POST /v2/{project_id}/instances/{instance_id}/extend
39+
// @API Kafka POST /v2/{project_id}/kafka/instances/{instance_id}/extend
4040
// @API Kafka DELETE /v2/{project_id}/instances/{instance_id}
4141
// @API Kafka GET /v2/{project_id}/instances/{instance_id}
4242
// @API Kafka PUT /v2/{project_id}/instances/{instance_id}
43-
// @API Kafka POST /v2/{engine}/{project_id}/instances
43+
// @API Kafka POST /v2/{project_id}/kafka/instances
4444
// @API Kafka GET /v2/{project_id}/kafka/{instance_id}/tags
4545
// @API Kafka POST /v2/{project_id}/kafka/{instance_id}/tags/action
4646
// @API Kafka POST /v2/{project_id}/instances/{instance_id}/autotopic
@@ -919,7 +919,7 @@ func createKafkaInstanceWithFlavor(ctx context.Context, d *schema.ResourceData,
919919
createOpts.Password = password
920920
createOpts.KafkaManagerPassword = d.Get("manager_password").(string)
921921

922-
kafkaInstance, err := instances.CreateWithEngine(client, createOpts, engineKafka).Extract()
922+
kafkaInstance, err := instances.CreateInstance(client, createOpts).Extract()
923923
if err != nil {
924924
return diag.Errorf("error creating Kafka instance: %s", err)
925925
}
@@ -1063,7 +1063,7 @@ func createKafkaInstanceWithProductID(ctx context.Context, d *schema.ResourceDat
10631063
createOpts.Password = password
10641064
createOpts.KafkaManagerPassword = d.Get("manager_password").(string)
10651065

1066-
kafkaInstance, err := instances.CreateWithEngine(client, createOpts, engineKafka).Extract()
1066+
kafkaInstance, err := instances.CreateInstance(client, createOpts).Extract()
10671067
if err != nil {
10681068
return diag.Errorf("error creating DMS kafka instance: %s", err)
10691069
}
@@ -1752,7 +1752,7 @@ func resizeKafkaInstanceStorage(ctx context.Context, d *schema.ResourceData, cli
17521752

17531753
func doKafkaInstanceResize(ctx context.Context, d *schema.ResourceData, client *golangsdk.ServiceClient, opts instances.ResizeInstanceOpts) error {
17541754
retryFunc := func() (interface{}, bool, error) {
1755-
_, err := instances.Resize(client, d.Id(), opts)
1755+
_, err := instances.ExtendInstance(client, d.Id(), opts)
17561756
retry, err := handleMultiOperationsError(err)
17571757
return nil, retry, err
17581758
}

vendor/github.com/chnsz/golangsdk/openstack/dms/v2/kafka/instances/requests.go

Lines changed: 37 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/chnsz/golangsdk/openstack/dms/v2/kafka/instances/urls.go

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)