From cd42705bf18741529f4783cf3f953f9326923784 Mon Sep 17 00:00:00 2001 From: Trevor Pounds Date: Fri, 22 Jan 2016 23:20:03 -0800 Subject: [PATCH 1/4] Fix availability zones read logic. --- builtin/providers/aws/resource_aws_autoscaling_group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/providers/aws/resource_aws_autoscaling_group.go b/builtin/providers/aws/resource_aws_autoscaling_group.go index 1e815d465..da17d19c4 100644 --- a/builtin/providers/aws/resource_aws_autoscaling_group.go +++ b/builtin/providers/aws/resource_aws_autoscaling_group.go @@ -237,7 +237,7 @@ func resourceAwsAutoscalingGroupRead(d *schema.ResourceData, meta interface{}) e return nil } - d.Set("availability_zones", g.AvailabilityZones) + d.Set("availability_zones", flattenStringList(g.AvailabilityZones)) d.Set("default_cooldown", g.DefaultCooldown) d.Set("desired_capacity", g.DesiredCapacity) d.Set("health_check_grace_period", g.HealthCheckGracePeriod) From e0f4be47a83b063231f7f7e5fa08d434587058a4 Mon Sep 17 00:00:00 2001 From: Trevor Pounds Date: Fri, 22 Jan 2016 23:45:58 -0800 Subject: [PATCH 2/4] Remove redundant metadata get. --- builtin/providers/aws/resource_aws_autoscaling_group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/providers/aws/resource_aws_autoscaling_group.go b/builtin/providers/aws/resource_aws_autoscaling_group.go index da17d19c4..dc6754d39 100644 --- a/builtin/providers/aws/resource_aws_autoscaling_group.go +++ b/builtin/providers/aws/resource_aws_autoscaling_group.go @@ -300,7 +300,7 @@ func resourceAwsAutoscalingGroupUpdate(d *schema.ResourceData, meta interface{}) if d.HasChange("availability_zones") { if v, ok := d.GetOk("availability_zones"); ok && v.(*schema.Set).Len() > 0 { - opts.AvailabilityZones = expandStringList(d.Get("availability_zones").(*schema.Set).List()) + opts.AvailabilityZones = expandStringList(v.(*schema.Set).List()) } } From 37eb1cba88a13556d1592f1cde2c043c39beb668 Mon Sep 17 00:00:00 2001 From: Trevor Pounds Date: Sun, 31 Jan 2016 17:44:19 -0800 Subject: [PATCH 3/4] Make availability zones a computed attribute. Fixes a diff calculation error when only a VPC zone identifiers is provided. In this case the associated availability zones are computed from the subnets per the AWS documentation. --- builtin/providers/aws/resource_aws_autoscaling_group.go | 1 + 1 file changed, 1 insertion(+) diff --git a/builtin/providers/aws/resource_aws_autoscaling_group.go b/builtin/providers/aws/resource_aws_autoscaling_group.go index dc6754d39..6f66744db 100644 --- a/builtin/providers/aws/resource_aws_autoscaling_group.go +++ b/builtin/providers/aws/resource_aws_autoscaling_group.go @@ -92,6 +92,7 @@ func resourceAwsAutoscalingGroup() *schema.Resource { "availability_zones": &schema.Schema{ Type: schema.TypeSet, Optional: true, + Computed: true, Elem: &schema.Schema{Type: schema.TypeString}, Set: schema.HashString, }, From dac7226a8e4af36728dc28440dc33e9062897527 Mon Sep 17 00:00:00 2001 From: Trevor Pounds Date: Sun, 7 Feb 2016 13:36:29 -0800 Subject: [PATCH 4/4] Check calculated availability zones. --- .../aws/resource_aws_autoscaling_group_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/builtin/providers/aws/resource_aws_autoscaling_group_test.go b/builtin/providers/aws/resource_aws_autoscaling_group_test.go index 6a5f9f30c..d26f47275 100644 --- a/builtin/providers/aws/resource_aws_autoscaling_group_test.go +++ b/builtin/providers/aws/resource_aws_autoscaling_group_test.go @@ -138,6 +138,12 @@ func TestAccAWSAutoScalingGroup_VpcUpdates(t *testing.T) { Config: testAccAWSAutoScalingGroupConfigWithAZ, Check: resource.ComposeTestCheckFunc( testAccCheckAWSAutoScalingGroupExists("aws_autoscaling_group.bar", &group), + resource.TestCheckResourceAttr( + "aws_autoscaling_group.bar", "availability_zones.#", "1"), + resource.TestCheckResourceAttr( + "aws_autoscaling_group.bar", "availability_zones.2487133097", "us-west-2a"), + resource.TestCheckResourceAttr( + "aws_autoscaling_group.bar", "vpc_zone_identifier.#", "1"), ), }, @@ -146,6 +152,14 @@ func TestAccAWSAutoScalingGroup_VpcUpdates(t *testing.T) { Check: resource.ComposeTestCheckFunc( testAccCheckAWSAutoScalingGroupExists("aws_autoscaling_group.bar", &group), testAccCheckAWSAutoScalingGroupAttributesVPCZoneIdentifer(&group), + resource.TestCheckResourceAttr( + "aws_autoscaling_group.bar", "availability_zones.#", "2"), + resource.TestCheckResourceAttr( + "aws_autoscaling_group.bar", "availability_zones.2487133097", "us-west-2a"), + resource.TestCheckResourceAttr( + "aws_autoscaling_group.bar", "availability_zones.221770259", "us-west-2b"), + resource.TestCheckResourceAttr( + "aws_autoscaling_group.bar", "vpc_zone_identifier.#", "2"), ), }, },