Merge pull request #8034 from cove/retry-describe-instances

add AWS API call reties on AMI prevalidation
This commit is contained in:
Adrien Delorme 2019-08-29 10:48:54 +02:00 committed by GitHub
commit 86cee5cbef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 2 deletions

View File

@ -85,19 +85,20 @@ func (s *StepPreValidate) Run(ctx context.Context, state multistep.StateBag) mul
ec2conn := state.Get("ec2").(*ec2.EC2) ec2conn := state.Get("ec2").(*ec2.EC2)
ui.Say(fmt.Sprintf("Prevalidating AMI Name: %s", s.DestAmiName)) ui.Say(fmt.Sprintf("Prevalidating AMI Name: %s", s.DestAmiName))
resp, err := ec2conn.DescribeImages(&ec2.DescribeImagesInput{ req, resp := ec2conn.DescribeImagesRequest(&ec2.DescribeImagesInput{
Filters: []*ec2.Filter{{ Filters: []*ec2.Filter{{
Name: aws.String("name"), Name: aws.String("name"),
Values: []*string{aws.String(s.DestAmiName)}, Values: []*string{aws.String(s.DestAmiName)},
}}}) }}})
req.RetryCount = 11
err := req.Send()
if err != nil { if err != nil {
err := fmt.Errorf("Error querying AMI: %s", err) err := fmt.Errorf("Error querying AMI: %s", err)
state.Put("error", err) state.Put("error", err)
ui.Error(err.Error()) ui.Error(err.Error())
return multistep.ActionHalt return multistep.ActionHalt
} }
if len(resp.Images) > 0 { if len(resp.Images) > 0 {
err := fmt.Errorf("Error: AMI Name: '%s' is used by an existing AMI: %s", *resp.Images[0].Name, *resp.Images[0].ImageId) err := fmt.Errorf("Error: AMI Name: '%s' is used by an existing AMI: %s", *resp.Images[0].Name, *resp.Images[0].ImageId)
state.Put("error", err) state.Put("error", err)