providers/aws: availability_zones and expandList
This commit is contained in:
parent
1b6faa0eb9
commit
0f64ff9387
|
@ -30,14 +30,14 @@ func resource_aws_elb_create(
|
||||||
v := flatmap.Expand(rs.Attributes, "listener").([]interface{})
|
v := flatmap.Expand(rs.Attributes, "listener").([]interface{})
|
||||||
listeners := expandListeners(v)
|
listeners := expandListeners(v)
|
||||||
|
|
||||||
|
v = flatmap.Expand(rs.Attributes, "availability_zones").([]interface{})
|
||||||
|
zones := expandStringList(v)
|
||||||
|
|
||||||
// Provision the elb
|
// Provision the elb
|
||||||
elbOpts := &elb.CreateLoadBalancer{
|
elbOpts := &elb.CreateLoadBalancer{
|
||||||
LoadBalancerName: elbName,
|
LoadBalancerName: elbName,
|
||||||
Listeners: listeners,
|
Listeners: listeners,
|
||||||
AvailZone: []string{
|
AvailZone: zones,
|
||||||
"us-east-1a",
|
|
||||||
"us-east-1b",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[DEBUG] ELB create configuration: %#v", elbOpts)
|
log.Printf("[DEBUG] ELB create configuration: %#v", elbOpts)
|
||||||
|
@ -103,7 +103,7 @@ func resource_aws_elb_diff(
|
||||||
|
|
||||||
ComputedAttrs: []string{
|
ComputedAttrs: []string{
|
||||||
"dns_name",
|
"dns_name",
|
||||||
"instances",
|
"instances ",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,3 +26,13 @@ func expandListeners(configured []interface{}) []elb.Listener {
|
||||||
|
|
||||||
return listeners
|
return listeners
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Takes the result of flatmap.Expand for an array of strings
|
||||||
|
// and returns a []string
|
||||||
|
func expandStringList(configured []interface{}) []string {
|
||||||
|
vs := make([]string, 0, len(configured))
|
||||||
|
for _, v := range configured {
|
||||||
|
vs = append(vs, v.(string))
|
||||||
|
}
|
||||||
|
return vs
|
||||||
|
}
|
||||||
|
|
|
@ -16,6 +16,9 @@ func testConf() map[string]string {
|
||||||
"listener.0.lb_protocol": "http",
|
"listener.0.lb_protocol": "http",
|
||||||
"listener.0.instance_port": "8000",
|
"listener.0.instance_port": "8000",
|
||||||
"listener.0.instance_protocol": "http",
|
"listener.0.instance_protocol": "http",
|
||||||
|
"availability_zones.#": "2",
|
||||||
|
"availability_zones.0": "us-east-1a",
|
||||||
|
"availability_zones.1": "us-east-1b",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,3 +40,20 @@ func Test_expandListeners(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Test_expandStringList(t *testing.T) {
|
||||||
|
expanded := flatmap.Expand(testConf(), "availability_zones").([]interface{})
|
||||||
|
stringList := expandStringList(expanded)
|
||||||
|
expected := []string{
|
||||||
|
"us-east-1a",
|
||||||
|
"us-east-1b",
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(stringList, expected) {
|
||||||
|
t.Fatalf(
|
||||||
|
"Got:\n\n%#v\n\nExpected:\n\n%#v\n",
|
||||||
|
stringList,
|
||||||
|
expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue