Merge pull request #804 from PeoplePerHour/f-aws-elb-subnet
providers/aws: elb subnet change should not force a new resource
This commit is contained in:
commit
61e91017be
|
@ -74,7 +74,6 @@ func resourceAwsElb() *schema.Resource {
|
|||
Type: schema.TypeSet,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Optional: true,
|
||||
ForceNew: true,
|
||||
Computed: true,
|
||||
Set: func(v interface{}) int {
|
||||
return hashcode.String(v.(string))
|
||||
|
|
|
@ -88,6 +88,42 @@ func TestAccAWSELB_InstanceAttaching(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
func TestAccAWSELB_AddSubnet(t *testing.T) {
|
||||
var conf elb.LoadBalancer
|
||||
|
||||
testCheckSubnetsAdded := func(count int) resource.TestCheckFunc {
|
||||
return func(*terraform.State) error {
|
||||
if len(conf.Subnets) != count {
|
||||
return fmt.Errorf("subnet count does not match")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
Providers: testAccProviders,
|
||||
CheckDestroy: testAccCheckAWSELBDestroy,
|
||||
Steps: []resource.TestStep{
|
||||
resource.TestStep{
|
||||
Config: testAccAWSELBConfigVPC,
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckAWSELBExists("aws_elb.bar", &conf),
|
||||
testAccCheckAWSELBAttributes(&conf),
|
||||
),
|
||||
},
|
||||
|
||||
resource.TestStep{
|
||||
Config: testAccAWSELBAddSubnets,
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckAWSELBExists("aws_elb.bar", &conf),
|
||||
testCheckSubnetsAdded(2),
|
||||
),
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestAccAWSELB_HealthCheck(t *testing.T) {
|
||||
var conf elb.LoadBalancer
|
||||
|
||||
|
@ -287,6 +323,64 @@ resource "aws_instance" "foo" {
|
|||
instance_type = "t1.micro"
|
||||
}
|
||||
`
|
||||
const testAccAWSELBConfigVPC = `
|
||||
resource "aws_elb" "bar" {
|
||||
vpc_id = "${aws_vpc.foobar.id}"
|
||||
name = "foobar-terraform-test"
|
||||
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
|
||||
|
||||
listener {
|
||||
instance_port = 8000
|
||||
instance_protocol = "http"
|
||||
lb_port = 80
|
||||
lb_protocol = "http"
|
||||
}
|
||||
|
||||
subnets = ["${aws_subnet.baz.id}"]
|
||||
|
||||
}
|
||||
|
||||
resource "aws_subnet" "baz" {
|
||||
vpc_id = "${aws_vpc.foobar.id}"
|
||||
cidr_block = "10.0.69.0/24"
|
||||
}
|
||||
|
||||
resource "aws_vpc" "foobar" {
|
||||
cidr_block = "10.0.0.0/16"
|
||||
}
|
||||
`
|
||||
|
||||
const testAccAWSELBAddSubnets = `
|
||||
resource "aws_elb" "bar" {
|
||||
vpc_id = "${aws_vpc.foobar.id}"
|
||||
name = "foobar-terraform-test"
|
||||
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
|
||||
|
||||
listener {
|
||||
instance_port = 8000
|
||||
instance_protocol = "http"
|
||||
lb_port = 80
|
||||
lb_protocol = "http"
|
||||
}
|
||||
|
||||
subnets = ["${aws_subnet.baz.id}",
|
||||
"${aws_subnet.foo.id}"]
|
||||
}
|
||||
|
||||
resource "aws_subnet" "foo" {
|
||||
vpc_id = "${aws_vpc.foobar.id}"
|
||||
cidr_block = "10.0.68.0/24"
|
||||
}
|
||||
|
||||
resource "aws_subnet" "baz" {
|
||||
vpc_id = "${aws_vpc.foobar.id}"
|
||||
cidr_block = "10.0.69.0/24"
|
||||
}
|
||||
|
||||
resource "aws_vpc" "foobar" {
|
||||
cidr_block = "10.0.0.0/16"
|
||||
}
|
||||
`
|
||||
|
||||
const testAccAWSELBConfigListenerSSLCertificateId = `
|
||||
resource "aws_elb" "bar" {
|
||||
|
|
Loading…
Reference in New Issue