Skip to content

Commit be579f3

Browse files
committed
resource/alicloud_havip_attachment: Fix bug missing state while havip count larger 20.
1 parent 30ce052 commit be579f3

File tree

2 files changed

+94
-1
lines changed

2 files changed

+94
-1
lines changed

alicloud/resource_alicloud_havip_attachment_test.go

+92
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,60 @@ func TestAccAliCloudVPCHavipAttachment_basic_multiple_instance_bug_fix(t *testin
292292
})
293293
}
294294

295+
func TestAccAliCloudVPCHavipAttachment_basic_multiple_havip_bug_fix(t *testing.T) {
296+
var v map[string]interface{}
297+
resourceId := "alicloud_havip_attachment.default"
298+
ra := resourceAttrInit(resourceId, AliCloudHavipAttachmentMap0)
299+
rc := resourceCheckInitWithDescribeMethod(resourceId, &v, func() interface{} {
300+
return &VpcServiceV2{testAccProvider.Meta().(*connectivity.AliyunClient)}
301+
}, "DescribeVpcHaVipAttachment")
302+
rac := resourceAttrCheckInit(rc, ra)
303+
testAccCheck := rac.resourceAttrMapUpdateSet()
304+
rand := acctest.RandIntRange(10000, 99999)
305+
name := fmt.Sprintf("tf-testacc%shavipattachment%d", defaultRegionToTest, rand)
306+
testAccConfig := resourceTestAccConfigFunc(resourceId, name, AliCloudHavipAttachmentBasicDependence_bug_fix)
307+
resource.Test(t, resource.TestCase{
308+
PreCheck: func() {
309+
testAccPreCheck(t)
310+
},
311+
312+
IDRefreshName: resourceId,
313+
Providers: testAccProviders,
314+
CheckDestroy: rac.checkResourceDestroy(),
315+
Steps: []resource.TestStep{
316+
{
317+
Config: testAccConfig(map[string]interface{}{
318+
"ha_vip_id": "${alicloud_havip.default.id}",
319+
"instance_id": "${alicloud_ecs_network_interface_attachment.default.0.network_interface_id}",
320+
"instance_type": "NetworkInterface",
321+
"force": "false",
322+
}),
323+
Check: resource.ComposeTestCheckFunc(
324+
testAccCheck(map[string]string{
325+
"ha_vip_id": CHECKSET,
326+
"instance_id": CHECKSET,
327+
"instance_type": "NetworkInterface",
328+
}),
329+
),
330+
},
331+
{
332+
Config: testAccConfig(map[string]interface{}{
333+
"force": "true",
334+
}),
335+
Check: resource.ComposeTestCheckFunc(
336+
testAccCheck(map[string]string{}),
337+
),
338+
},
339+
{
340+
ResourceName: resourceId,
341+
ImportState: true,
342+
ImportStateVerify: true,
343+
ImportStateVerifyIgnore: []string{"force"},
344+
},
345+
},
346+
})
347+
}
348+
295349
var AliCloudHavipAttachmentMap0 = map[string]string{}
296350

297351
func AliCloudHavipAttachmentBasicDependence0(name string) string {
@@ -314,6 +368,9 @@ func AliCloudHavipAttachmentBasicDependence0(name string) string {
314368
data "alicloud_instance_types" "default" {
315369
availability_zone = data.alicloud_zones.default.zones.0.id
316370
image_id = data.alicloud_images.default.images.0.id
371+
cpu_core_count = 2
372+
memory_size = 8
373+
instance_type_family = "ecs.g6"
317374
}
318375
319376
resource "alicloud_vpc" "default" {
@@ -373,6 +430,9 @@ func AliCloudHavipAttachmentBasicDependence1(name string) string {
373430
data "alicloud_instance_types" "default" {
374431
availability_zone = data.alicloud_zones.default.zones.0.id
375432
image_id = data.alicloud_images.default.images.0.id
433+
cpu_core_count = 2
434+
memory_size = 8
435+
instance_type_family = "ecs.g6"
376436
}
377437
378438
resource "alicloud_vpc" "default" {
@@ -432,6 +492,9 @@ func AliCloudHavipAttachmentBasicDependence2(name string) string {
432492
data "alicloud_instance_types" "default" {
433493
availability_zone = data.alicloud_zones.default.zones.0.id
434494
image_id = data.alicloud_images.default.images.0.id
495+
cpu_core_count = 2
496+
memory_size = 8
497+
instance_type_family = "ecs.g6"
435498
}
436499
437500
resource "alicloud_vpc" "default" {
@@ -502,6 +565,9 @@ func AliCloudHavipAttachmentBasicDependence_bug_fix(name string) string {
502565
data "alicloud_instance_types" "default" {
503566
availability_zone = data.alicloud_zones.default.zones.0.id
504567
image_id = data.alicloud_images.default.images.0.id
568+
cpu_core_count = 2
569+
memory_size = 8
570+
instance_type_family = "ecs.g6"
505571
}
506572
507573
resource "alicloud_vpc" "default" {
@@ -521,6 +587,32 @@ func AliCloudHavipAttachmentBasicDependence_bug_fix(name string) string {
521587
vpc_id = alicloud_vpc.default.id
522588
}
523589
590+
resource "alicloud_havip" "example" {
591+
count = 21
592+
vswitch_id = alicloud_vswitch.default.id
593+
description = var.name
594+
}
595+
596+
resource "alicloud_instance" "example" {
597+
count = 21
598+
availability_zone = data.alicloud_zones.default.zones.0.id
599+
vswitch_id = alicloud_vswitch.default.id
600+
image_id = data.alicloud_images.default.images.0.id
601+
instance_type = data.alicloud_instance_types.default.instance_types.0.id
602+
system_disk_category = "cloud_efficiency"
603+
internet_charge_type = "PayByTraffic"
604+
internet_max_bandwidth_out = 5
605+
security_groups = [alicloud_security_group.default.id]
606+
instance_name = var.name
607+
user_data = "echo 'net.ipv4.ip_forward=1'>> /etc/sysctl.conf"
608+
}
609+
610+
resource "alicloud_havip_attachment" "example" {
611+
count = 21
612+
havip_id = alicloud_havip.example[count.index].id
613+
instance_id = alicloud_instance.example[count.index].id
614+
}
615+
524616
resource "alicloud_havip" "default" {
525617
vswitch_id = alicloud_vswitch.default.id
526618
description = var.name

alicloud/service_alicloud_vpc_v2.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1946,7 +1946,8 @@ func (s *VpcServiceV2) DescribeVpcHaVipAttachment(id string) (object map[string]
19461946
request = make(map[string]interface{})
19471947
query = make(map[string]interface{})
19481948
jsonString := "{}"
1949-
jsonString, _ = sjson.Set(jsonString, "Filter[0].Value[0]", parts[0])
1949+
jsonString, _ = sjson.Set(jsonString, "Filter.0.Value.0", parts[0])
1950+
jsonString, _ = sjson.Set(jsonString, "Filter.0.Key", "HaVipId")
19501951
err = json.Unmarshal([]byte(jsonString), &request)
19511952
if err != nil {
19521953
return object, WrapError(err)

0 commit comments

Comments
 (0)