providers/aws: retry destroying internet gateway for some time [GH-447]

This commit is contained in:
Panagiotis Moustafellos 2014-10-18 11:47:33 +03:00
parent 2b50d44aa4
commit f240c27e16
1 changed files with 17 additions and 5 deletions

View File

@ -81,14 +81,26 @@ func resource_aws_internet_gateway_destroy(
}
log.Printf("[INFO] Deleting Internet Gateway: %s", s.ID)
if _, err := ec2conn.DeleteInternetGateway(s.ID); err != nil {
ec2err, ok := err.(*ec2.Error)
if ok && ec2err.Code == "InvalidInternetGatewayID.NotFound" {
return nil
return resource.Retry(5*time.Minute, func() error {
_, err := ec2conn.DeleteInternetGateway(s.ID)
if err != nil {
ec2err, ok := err.(*ec2.Error)
if !ok {
return err
}
switch ec2err.Code {
case "InvalidInternetGatewayID.NotFound":
return nil
case "DependencyViolation":
return err // retry
default:
return resource.RetryError{err}
}
}
return fmt.Errorf("Error deleting internet gateway: %s", err)
}
})
// Wait for the internet gateway to actually delete
log.Printf("[DEBUG] Waiting for internet gateway (%s) to delete", s.ID)