providers/aws: eip destroy and drefresh
This commit is contained in:
parent
6deea2a93b
commit
4f2388f787
|
@ -122,17 +122,56 @@ func resource_aws_eip_update(
|
||||||
func resource_aws_eip_destroy(
|
func resource_aws_eip_destroy(
|
||||||
s *terraform.ResourceState,
|
s *terraform.ResourceState,
|
||||||
meta interface{}) error {
|
meta interface{}) error {
|
||||||
|
p := meta.(*ResourceProvider)
|
||||||
|
ec2conn := p.ec2conn
|
||||||
|
|
||||||
return nil
|
log.Printf("[DEBUG] EIP release (destroy) address: %v", s.ID)
|
||||||
|
|
||||||
|
_, err := ec2conn.ReleaseAddress(s.ID)
|
||||||
|
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func resource_aws_eip_refresh(
|
func resource_aws_eip_refresh(
|
||||||
s *terraform.ResourceState,
|
s *terraform.ResourceState,
|
||||||
meta interface{}) (*terraform.ResourceState, error) {
|
meta interface{}) (*terraform.ResourceState, error) {
|
||||||
|
p := meta.(*ResourceProvider)
|
||||||
|
ec2conn := p.ec2conn
|
||||||
|
|
||||||
address := &ec2.Address{}
|
vpc := false
|
||||||
|
if s.Attributes["vpc"] == "true" {
|
||||||
|
vpc = true
|
||||||
|
}
|
||||||
|
|
||||||
return resource_aws_eip_update_state(s, address)
|
// Get the full address description for saving to state for
|
||||||
|
// use in other resources
|
||||||
|
assocIds := []string{}
|
||||||
|
publicIps := []string{}
|
||||||
|
if vpc {
|
||||||
|
assocIds = []string{s.ID}
|
||||||
|
} else {
|
||||||
|
publicIps = []string{s.ID}
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Printf("[DEBUG] EIP describe configuration: %#v, %#v (vpc: %v)", assocIds, publicIps, vpc)
|
||||||
|
|
||||||
|
describeAddresses, err := ec2conn.Addresses(publicIps, assocIds, nil)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return s, fmt.Errorf("Error retrieving EIP: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify AWS returned our EIP
|
||||||
|
if len(describeAddresses.Addresses) != 1 ||
|
||||||
|
describeAddresses.Addresses[0].AllocationId != s.ID {
|
||||||
|
if err != nil {
|
||||||
|
return s, fmt.Errorf("Unable to find EIP: %#v", describeAddresses.Addresses)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
address := describeAddresses.Addresses[0]
|
||||||
|
|
||||||
|
return resource_aws_eip_update_state(s, &address)
|
||||||
}
|
}
|
||||||
|
|
||||||
func resource_aws_eip_diff(
|
func resource_aws_eip_diff(
|
||||||
|
|
Loading…
Reference in New Issue