Skip to content

Commit

Permalink
Merge pull request #39691 from hashicorp/f-rds-storage-optimization-i…
Browse files Browse the repository at this point in the history
…s-active

r/aws_rds_cluster_instance: Treat `storage-optimization` status as success when creating or updating cluster DB instances
  • Loading branch information
ewbankkit authored Oct 15, 2024
2 parents 606f1e9 + 0f97476 commit f125c9c
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 38 deletions.
3 changes: 3 additions & 0 deletions .changelog/39691.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:enhancement
resource/aws_rds_cluster_instance: Treat `storage-optimization` status as success when creating or updating cluster DB instances
```
42 changes: 4 additions & 38 deletions internal/service/rds/cluster_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ func resourceClusterInstanceCreate(ctx context.Context, d *schema.ResourceData,

d.SetId(aws.ToString(output.DBInstance.DBInstanceIdentifier))

if _, err := waitDBClusterInstanceCreated(ctx, conn, d.Id(), d.Timeout(schema.TimeoutCreate)); err != nil {
if _, err := waitDBClusterInstanceAvailable(ctx, conn, d.Id(), d.Timeout(schema.TimeoutCreate)); err != nil {
return sdkdiag.AppendErrorf(diags, "waiting for RDS Cluster Instance (%s) create: %s", d.Id(), err)
}

Expand Down Expand Up @@ -514,7 +514,7 @@ func resourceClusterInstanceUpdate(ctx context.Context, d *schema.ResourceData,
return sdkdiag.AppendErrorf(diags, "updating RDS Cluster Instance (%s): %s", d.Id(), err)
}

if _, err := waitDBClusterInstanceUpdated(ctx, conn, d.Id(), d.Timeout(schema.TimeoutUpdate)); err != nil {
if _, err := waitDBClusterInstanceAvailable(ctx, conn, d.Id(), d.Timeout(schema.TimeoutUpdate)); err != nil {
return sdkdiag.AppendErrorf(diags, "waiting for RDS Cluster Instance (%s) update: %s", d.Id(), err)
}
}
Expand Down Expand Up @@ -558,7 +558,7 @@ func resourceClusterInstanceDelete(ctx context.Context, d *schema.ResourceData,
return diags
}

func waitDBClusterInstanceCreated(ctx context.Context, conn *rds.Client, id string, timeout time.Duration) (*types.DBInstance, error) {
func waitDBClusterInstanceAvailable(ctx context.Context, conn *rds.Client, id string, timeout time.Duration) (*types.DBInstance, error) { //nolint:unparam
stateConf := &retry.StateChangeConf{
Pending: []string{
instanceStatusBackingUp,
Expand All @@ -572,43 +572,9 @@ func waitDBClusterInstanceCreated(ctx context.Context, conn *rds.Client, id stri
instanceStatusRenaming,
instanceStatusResettingMasterCredentials,
instanceStatusStarting,
instanceStatusStorageOptimization,
instanceStatusUpgrading,
},
Target: []string{instanceStatusAvailable},
Refresh: statusDBInstance(ctx, conn, id),
Timeout: timeout,
MinTimeout: 10 * time.Second,
Delay: 30 * time.Second,
}

outputRaw, err := stateConf.WaitForStateContext(ctx)

if output, ok := outputRaw.(*types.DBInstance); ok {
return output, err
}

return nil, err
}

func waitDBClusterInstanceUpdated(ctx context.Context, conn *rds.Client, id string, timeout time.Duration) (*types.DBInstance, error) {
stateConf := &retry.StateChangeConf{
Pending: []string{
instanceStatusBackingUp,
instanceStatusConfiguringEnhancedMonitoring,
instanceStatusConfiguringIAMDatabaseAuth,
instanceStatusConfiguringLogExports,
instanceStatusCreating,
instanceStatusMaintenance,
instanceStatusModifying,
instanceStatusRebooting,
instanceStatusRenaming,
instanceStatusResettingMasterCredentials,
instanceStatusStarting,
instanceStatusStorageOptimization,
instanceStatusUpgrading,
},
Target: []string{instanceStatusAvailable},
Target: []string{instanceStatusAvailable, instanceStatusStorageOptimization},
Refresh: statusDBInstance(ctx, conn, id),
Timeout: timeout,
MinTimeout: 10 * time.Second,
Expand Down

0 comments on commit f125c9c

Please sign in to comment.