From 92a778ed1f5220edcfc4efb4c039b18336ec2e6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20W=C3=BCrbach?= Date: Thu, 29 Jun 2023 16:08:39 +0200 Subject: [PATCH 1/4] rds/instance: Fix create returns unready instances --- .changelog/32287.txt | 3 +++ internal/service/rds/instance.go | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 .changelog/32287.txt diff --git a/.changelog/32287.txt b/.changelog/32287.txt new file mode 100644 index 000000000000..b6d3fe0d98ca --- /dev/null +++ b/.changelog/32287.txt @@ -0,0 +1,3 @@ +```release-note:bug +resource/rds: Fix create returns unready instances +``` diff --git a/internal/service/rds/instance.go b/internal/service/rds/instance.go index 3c05f0cb17bb..1e48ead3ffa8 100644 --- a/internal/service/rds/instance.go +++ b/internal/service/rds/instance.go @@ -1563,7 +1563,7 @@ func resourceInstanceCreate(ctx context.Context, d *schema.ResourceData, meta in var instance *rds.DBInstance var err error - if instance, err = waitDBInstanceAvailableSDKv1(ctx, conn, d.Get("identifier").(string), d.Timeout(schema.TimeoutCreate)); err != nil { + if instance, err = waitDBInstanceAvailableSDKv1(ctx, conn, identifier, d.Timeout(schema.TimeoutCreate)); err != nil { return sdkdiag.AppendErrorf(diags, "waiting for RDS DB Instance (%s) create: %s", identifier, err) } From 3b5484b9cb4e4811ae5e63ef87054bc39019c1e6 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 29 Jun 2023 15:07:27 -0400 Subject: [PATCH 2/4] Tweak CHANGELOG entry. --- .changelog/32287.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changelog/32287.txt b/.changelog/32287.txt index b6d3fe0d98ca..f6a1479fed88 100644 --- a/.changelog/32287.txt +++ b/.changelog/32287.txt @@ -1,3 +1,3 @@ ```release-note:bug -resource/rds: Fix create returns unready instances +resource/aws_db_instance: Fix resource Create returning instance not in the `available` state ``` From 478cba53daf415c565bbdb681de1e5f26b9cae24 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 29 Jun 2023 15:11:40 -0400 Subject: [PATCH 3/4] r/aws_db_instance: Use 'tfresource.AssertSinglePtrResult' and 'tfresource.AssertSingleValueResult'. --- internal/service/rds/instance.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/service/rds/instance.go b/internal/service/rds/instance.go index 1e48ead3ffa8..91c26422ef59 100644 --- a/internal/service/rds/instance.go +++ b/internal/service/rds/instance.go @@ -2373,17 +2373,16 @@ func findDBInstanceByIDSDKv1(ctx context.Context, conn *rds.RDS, id string) (*rd LastRequest: input, } } + if err != nil { return nil, err } - if output == nil || len(output.DBInstances) == 0 || output.DBInstances[0] == nil { + if output == nil { return nil, tfresource.NewEmptyResultError(input) } - dbInstance := output.DBInstances[0] - - return dbInstance, nil + return tfresource.AssertSinglePtrResult(output.DBInstances) } // findDBInstanceByIDSDKv2 in general should be called with a DbiResourceId of the form @@ -2419,15 +2418,16 @@ func findDBInstanceByIDSDKv2(ctx context.Context, conn *rds_sdkv2.Client, id str LastRequest: input, } } + if err != nil { return nil, err } - if output == nil || len(output.DBInstances) == 0 { + if output == nil { return nil, tfresource.NewEmptyResultError(input) } - return &output.DBInstances[0], nil + return tfresource.AssertSingleValueResult(output.DBInstances) } func statusDBInstanceSDKv1(ctx context.Context, conn *rds.RDS, id string) retry.StateRefreshFunc { From 3e5115da506d6eac9fc5ead963f8c293b1bca60c Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 29 Jun 2023 15:24:38 -0400 Subject: [PATCH 4/4] Tweak CHANGELOG entry. --- .changelog/32287.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changelog/32287.txt b/.changelog/32287.txt index f6a1479fed88..aa573ee61321 100644 --- a/.changelog/32287.txt +++ b/.changelog/32287.txt @@ -1,3 +1,3 @@ ```release-note:bug -resource/aws_db_instance: Fix resource Create returning instance not in the `available` state +resource/aws_db_instance: Fix resource Create returning instances not in the `available` state when `identifier_prefix` is specified ```