providers/aws: fixed tons of aws stuff
This commit is contained in:
parent
c8c526d254
commit
298483131b
|
@ -29,7 +29,10 @@ func resource_aws_elb_create(
|
|||
|
||||
// Expand the "listener" array to goamz compat []elb.Listener
|
||||
v := flatmap.Expand(rs.Attributes, "listener").([]interface{})
|
||||
listeners := expandListeners(v)
|
||||
listeners, err := expandListeners(v)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
v = flatmap.Expand(rs.Attributes, "availability_zones").([]interface{})
|
||||
zones := expandStringList(v)
|
||||
|
@ -43,7 +46,7 @@ func resource_aws_elb_create(
|
|||
|
||||
log.Printf("[DEBUG] ELB create configuration: %#v", elbOpts)
|
||||
|
||||
_, err := elbconn.CreateLoadBalancer(elbOpts)
|
||||
_, err = elbconn.CreateLoadBalancer(elbOpts)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error creating ELB: %s", err)
|
||||
}
|
||||
|
|
|
@ -67,7 +67,10 @@ func resource_aws_security_group_create(
|
|||
ingressRules := []ec2.IPPerm{}
|
||||
v, ok := flatmap.Expand(rs.Attributes, "ingress").([]interface{})
|
||||
if ok {
|
||||
ingressRules = expandIPPerms(v)
|
||||
ingressRules, err = expandIPPerms(v)
|
||||
if err != nil {
|
||||
return rs, err
|
||||
}
|
||||
}
|
||||
|
||||
if len(ingressRules) > 0 {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package aws
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/mitchellh/goamz/autoscaling"
|
||||
|
@ -10,7 +11,7 @@ import (
|
|||
|
||||
// Takes the result of flatmap.Expand for an array of listeners and
|
||||
// returns ELB API compatible objects
|
||||
func expandListeners(configured []interface{}) []elb.Listener {
|
||||
func expandListeners(configured []interface{}) ([]elb.Listener, error) {
|
||||
listeners := make([]elb.Listener, 0, len(configured))
|
||||
|
||||
// Loop over our configured listeners and create
|
||||
|
@ -18,22 +19,29 @@ func expandListeners(configured []interface{}) []elb.Listener {
|
|||
for _, listener := range configured {
|
||||
newL := listener.(map[string]interface{})
|
||||
|
||||
instancePort, err := strconv.ParseInt(newL["instance_port"].(string), 0, 0)
|
||||
lbPort, err := strconv.ParseInt(newL["lb_port"].(string), 0, 0)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
l := elb.Listener{
|
||||
InstancePort: int64(newL["instance_port"].(int)),
|
||||
InstancePort: instancePort,
|
||||
InstanceProtocol: newL["instance_protocol"].(string),
|
||||
LoadBalancerPort: int64(newL["lb_port"].(int)),
|
||||
LoadBalancerPort: lbPort,
|
||||
Protocol: newL["lb_protocol"].(string),
|
||||
}
|
||||
|
||||
listeners = append(listeners, l)
|
||||
}
|
||||
|
||||
return listeners
|
||||
return listeners, nil
|
||||
}
|
||||
|
||||
// Takes the result of flatmap.Expand for an array of ingress/egress
|
||||
// security group rules and returns EC2 API compatible objects
|
||||
func expandIPPerms(configured []interface{}) []ec2.IPPerm {
|
||||
func expandIPPerms(configured []interface{}) ([]ec2.IPPerm, error) {
|
||||
perms := make([]ec2.IPPerm, 0, len(configured))
|
||||
|
||||
// Loop over our configured permissions and create
|
||||
|
@ -54,11 +62,17 @@ func expandIPPerms(configured []interface{}) []ec2.IPPerm {
|
|||
}
|
||||
}
|
||||
|
||||
fromPort, err := strconv.Atoi(newP["from_port"].(string))
|
||||
toPort, err := strconv.Atoi(newP["to_port"].(string))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Create the permission objet
|
||||
p := ec2.IPPerm{
|
||||
Protocol: newP["protocol"].(string),
|
||||
FromPort: newP["from_port"].(int),
|
||||
ToPort: newP["to_port"].(int),
|
||||
FromPort: fromPort,
|
||||
ToPort: toPort,
|
||||
SourceIPs: expandStringList(newP["cidr_blocks"].([]interface{})),
|
||||
SourceGroups: expandedGroups,
|
||||
}
|
||||
|
@ -66,7 +80,7 @@ func expandIPPerms(configured []interface{}) []ec2.IPPerm {
|
|||
perms = append(perms, p)
|
||||
}
|
||||
|
||||
return perms
|
||||
return perms, nil
|
||||
}
|
||||
|
||||
// Flattens an array of ipPerms into a list of primitives that
|
||||
|
|
|
@ -33,7 +33,11 @@ func testConf() map[string]string {
|
|||
|
||||
func Test_expandIPPerms(t *testing.T) {
|
||||
expanded := flatmap.Expand(testConf(), "ingress").([]interface{})
|
||||
perms := expandIPPerms(expanded)
|
||||
perms, err := expandIPPerms(expanded)
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("bad: %#v", err)
|
||||
}
|
||||
expected := ec2.IPPerm{
|
||||
Protocol: "icmp",
|
||||
FromPort: 1,
|
||||
|
@ -118,7 +122,11 @@ func Test_flattenIPPerms(t *testing.T) {
|
|||
|
||||
func Test_expandListeners(t *testing.T) {
|
||||
expanded := flatmap.Expand(testConf(), "listener").([]interface{})
|
||||
listeners := expandListeners(expanded)
|
||||
listeners, err := expandListeners(expanded)
|
||||
if err != nil {
|
||||
t.Fatalf("bad: %#v", err)
|
||||
}
|
||||
|
||||
expected := elb.Listener{
|
||||
InstancePort: 8000,
|
||||
LoadBalancerPort: 80,
|
||||
|
|
|
@ -159,6 +159,12 @@ func resource_dnsimple_record_update_state(
|
|||
s.Attributes["priority"] = rec.StringPrio()
|
||||
s.Attributes["domain_id"] = rec.StringDomainId()
|
||||
|
||||
if rec.Name == "" {
|
||||
s.Attributes["hostname"] = s.Attributes["domain"]
|
||||
} else {
|
||||
s.Attributes["hostname"] = fmt.Sprintf("%s.%s", rec.Name, s.Attributes["domain"])
|
||||
}
|
||||
|
||||
return s, nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue