provider/aws: Retry Code Deployment Group update based on IAM issues
This commit is contained in:
parent
68bb58db35
commit
e262f0d015
|
@ -298,7 +298,37 @@ func resourceAwsCodeDeployDeploymentGroupUpdate(d *schema.ResourceData, meta int
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[DEBUG] Updating CodeDeploy DeploymentGroup %s", d.Id())
|
log.Printf("[DEBUG] Updating CodeDeploy DeploymentGroup %s", d.Id())
|
||||||
_, err := conn.UpdateDeploymentGroup(&input)
|
// Retry to handle IAM role eventual consistency.
|
||||||
|
var resp *codedeploy.UpdateDeploymentGroupOutput
|
||||||
|
var err error
|
||||||
|
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
|
||||||
|
resp, err = conn.UpdateDeploymentGroup(&input)
|
||||||
|
if err != nil {
|
||||||
|
retry := false
|
||||||
|
codedeployErr, ok := err.(awserr.Error)
|
||||||
|
if !ok {
|
||||||
|
return resource.NonRetryableError(err)
|
||||||
|
}
|
||||||
|
if codedeployErr.Code() == "InvalidRoleException" {
|
||||||
|
retry = true
|
||||||
|
}
|
||||||
|
if codedeployErr.Code() == "InvalidTriggerConfigException" {
|
||||||
|
r := regexp.MustCompile("^Topic ARN .+ is not valid$")
|
||||||
|
if r.MatchString(codedeployErr.Message()) {
|
||||||
|
retry = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if retry {
|
||||||
|
log.Printf("[DEBUG] Retrying Code Deployment Group Update: %q",
|
||||||
|
codedeployErr.Message())
|
||||||
|
return resource.RetryableError(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return resource.NonRetryableError(err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue