Skip to content

Commit

Permalink
Merge pull request #9696 from terraform-providers/rfd-retry-docdb
Browse files Browse the repository at this point in the history
Final retries after timeouts in docdb resources
  • Loading branch information
ryndaniels authored Aug 12, 2019
2 parents e655619 + 87812c2 commit ef7e1a6
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 2 deletions.
6 changes: 6 additions & 0 deletions aws/resource_aws_docdb_cluster_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,9 @@ func resourceAwsDocDBClusterInstanceCreate(d *schema.ResourceData, meta interfac
}
return nil
})
if isResourceTimeoutError(err) {
resp, err = conn.CreateDBInstance(createOpts)
}
if err != nil {
return fmt.Errorf("error creating DocDB Instance: %s", err)
}
Expand Down Expand Up @@ -356,6 +359,9 @@ func resourceAwsDocDBClusterInstanceUpdate(d *schema.ResourceData, meta interfac
}
return nil
})
if isResourceTimeoutError(err) {
_, err = conn.ModifyDBInstance(req)
}
if err != nil {
return fmt.Errorf("Error modifying DB Instance %s: %s", d.Id(), err)
}
Expand Down
12 changes: 11 additions & 1 deletion aws/resource_aws_docdb_cluster_parameter_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ func waitForDocDBClusterParameterGroupDeletion(conn *docdb.DocDB, name string) e
DBClusterParameterGroupName: aws.String(name),
}

return resource.Retry(10*time.Minute, func() *resource.RetryError {
err := resource.Retry(10*time.Minute, func() *resource.RetryError {
_, err := conn.DescribeDBClusterParameterGroups(params)

if isAWSErr(err, docdb.ErrCodeDBParameterGroupNotFoundFault, "") {
Expand All @@ -279,4 +279,14 @@ func waitForDocDBClusterParameterGroupDeletion(conn *docdb.DocDB, name string) e

return resource.RetryableError(fmt.Errorf("DocDB Parameter Group (%s) still exists", name))
})
if isResourceTimeoutError(err) {
_, err = conn.DescribeDBClusterParameterGroups(params)
if isAWSErr(err, docdb.ErrCodeDBParameterGroupNotFoundFault, "") {
return nil
}
}
if err != nil {
return fmt.Errorf("Error deleting DocDB cluster parameter group: %s", err)
}
return nil
}
12 changes: 11 additions & 1 deletion aws/resource_aws_docdb_subnet_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ func waitForDocDBSubnetGroupDeletion(conn *docdb.DocDB, name string) error {
DBSubnetGroupName: aws.String(name),
}

return resource.Retry(10*time.Minute, func() *resource.RetryError {
err := resource.Retry(10*time.Minute, func() *resource.RetryError {
_, err := conn.DescribeDBSubnetGroups(params)

if isAWSErr(err, docdb.ErrCodeDBSubnetGroupNotFoundFault, "") {
Expand All @@ -216,4 +216,14 @@ func waitForDocDBSubnetGroupDeletion(conn *docdb.DocDB, name string) error {

return resource.RetryableError(fmt.Errorf("DocDB Subnet Group (%s) still exists", name))
})
if isResourceTimeoutError(err) {
_, err = conn.DescribeDBSubnetGroups(params)
if isAWSErr(err, docdb.ErrCodeDBSubnetGroupNotFoundFault, "") {
return nil
}
}
if err != nil {
return fmt.Errorf("Error deleting DocDB subnet group: %s", err)
}
return nil
}

0 comments on commit ef7e1a6

Please sign in to comment.