Skip to content

Commit

Permalink
Merge pull request #4140 from terraform-providers/b-aws_vpc_peering_c…
Browse files Browse the repository at this point in the history
…onnection-deletion-eventual-consistency

resource/aws_vpc_peering_connection: Allow active pending state during deletion
  • Loading branch information
bflad authored Apr 11, 2018
2 parents 4cfd725 + 184317b commit 61ca925
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions aws/resource_aws_vpc_peering_connection.go
Original file line number Diff line number Diff line change
Expand Up @@ -282,15 +282,23 @@ func resourceAwsVPCPeeringUpdate(d *schema.ResourceData, meta interface{}) error
func resourceAwsVPCPeeringDelete(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).ec2conn

_, err := conn.DeleteVpcPeeringConnection(
&ec2.DeleteVpcPeeringConnectionInput{
VpcPeeringConnectionId: aws.String(d.Id()),
})
input := &ec2.DeleteVpcPeeringConnectionInput{
VpcPeeringConnectionId: aws.String(d.Id()),
}
log.Printf("[DEBUG] Deleting VPC Peering Connection: %s", input)
_, err := conn.DeleteVpcPeeringConnection(input)
if err != nil {
if isAWSErr(err, "InvalidVpcPeeringConnectionID.NotFound", "") {
return nil
}
return fmt.Errorf("Error deleting VPC Peering Connection (%s): %s", d.Id(), err)
}

// Wait for the vpc peering connection to become available
// Wait for the vpc peering connection to delete
log.Printf("[DEBUG] Waiting for VPC Peering Connection (%s) to delete.", d.Id())
stateConf := &resource.StateChangeConf{
Pending: []string{
ec2.VpcPeeringConnectionStateReasonCodeActive,
ec2.VpcPeeringConnectionStateReasonCodePendingAcceptance,
ec2.VpcPeeringConnectionStateReasonCodeDeleting,
},
Expand All @@ -302,12 +310,10 @@ func resourceAwsVPCPeeringDelete(d *schema.ResourceData, meta interface{}) error
Timeout: 1 * time.Minute,
}
if _, err := stateConf.WaitForState(); err != nil {
return errwrap.Wrapf(fmt.Sprintf(
"Error waiting for VPC Peering Connection (%s) to be deleted: {{err}}",
d.Id()), err)
return fmt.Errorf("Error waiting for VPC Peering Connection (%s) to be deleted: %s", d.Id(), err)
}

return err
return nil
}

// resourceAwsVPCPeeringConnectionStateRefreshFunc returns a resource.StateRefreshFunc that is used to watch
Expand Down

0 comments on commit 61ca925

Please sign in to comment.