From 7db2dc9dc5e80fbec4cf6395d8bc8d40a21789d1 Mon Sep 17 00:00:00 2001 From: kolvin <15124052+Kolvin@users.noreply.github.com> Date: Wed, 31 Jan 2024 19:18:24 -0400 Subject: [PATCH 1/3] fix(rds): trigger subsequent instance update operation for PITR case masterUserPassword Signed-off-by: kolvin <15124052+Kolvin@users.noreply.github.com> --- internal/service/rds/instance.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/internal/service/rds/instance.go b/internal/service/rds/instance.go index 24a64e800379..d633ee990348 100644 --- a/internal/service/rds/instance.go +++ b/internal/service/rds/instance.go @@ -642,8 +642,8 @@ func resourceInstanceCreate(ctx context.Context, d *schema.ResourceData, meta in var diags diag.Diagnostics conn := meta.(*conns.AWSClient).RDSConn(ctx) - // Some API calls (e.g. CreateDBInstanceReadReplica and - // RestoreDBInstanceFromDBSnapshot do not support all parameters to + // Some API calls (e.g. CreateDBInstanceReadReplica, RestoreDBInstanceFromDBSnapshot + // RestoreDBInstanceToPointInTime do not support all parameters to // correctly apply all settings in one pass. For missing parameters or // unsupported configurations, we may need to call ModifyDBInstance // afterwards to prevent Terraform operators from API errors or needing @@ -1348,6 +1348,11 @@ func resourceInstanceCreate(ctx context.Context, d *schema.ResourceData, meta in requiresModifyDbInstance = true } + if v, ok := d.GetOk("password"); ok { + modifyDbInstanceInput.MasterUserPassword = aws.String(v.(string)) + requiresModifyDbInstance = true + } + if v, ok := d.GetOk("monitoring_interval"); ok { modifyDbInstanceInput.MonitoringInterval = aws.Int64(int64(v.(int))) requiresModifyDbInstance = true From d30d23a2a3dca934fe556015c5467d11c4d29644 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Tue, 6 Feb 2024 07:42:11 -0500 Subject: [PATCH 2/3] Cosmetics. --- internal/service/rds/instance.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/internal/service/rds/instance.go b/internal/service/rds/instance.go index 5af0c9781441..0cb0f33230c4 100644 --- a/internal/service/rds/instance.go +++ b/internal/service/rds/instance.go @@ -980,14 +980,14 @@ func resourceInstanceCreate(ctx context.Context, d *schema.ResourceData, meta in input.OptionGroupName = aws.String(v.(string)) } - if v, ok := d.GetOk("password"); ok { - input.MasterUserPassword = aws.String(v.(string)) - } - if v, ok := d.GetOk("parameter_group_name"); ok { input.DBParameterGroupName = aws.String(v.(string)) } + if v, ok := d.GetOk("password"); ok { + input.MasterUserPassword = aws.String(v.(string)) + } + if v, ok := d.GetOk("performance_insights_enabled"); ok { input.EnablePerformanceInsights = aws.Bool(v.(bool)) } @@ -1410,11 +1410,6 @@ func resourceInstanceCreate(ctx context.Context, d *schema.ResourceData, meta in requiresModifyDbInstance = true } - if v, ok := d.GetOk("password"); ok { - modifyDbInstanceInput.MasterUserPassword = aws.String(v.(string)) - requiresModifyDbInstance = true - } - if v, ok := d.GetOk("monitoring_interval"); ok { modifyDbInstanceInput.MonitoringInterval = aws.Int64(int64(v.(int))) requiresModifyDbInstance = true @@ -1437,6 +1432,11 @@ func resourceInstanceCreate(ctx context.Context, d *schema.ResourceData, meta in input.DBParameterGroupName = aws.String(v.(string)) } + if v, ok := d.GetOk("password"); ok { + modifyDbInstanceInput.MasterUserPassword = aws.String(v.(string)) + requiresModifyDbInstance = true + } + if v, ok := d.GetOk("port"); ok { input.Port = aws.Int64(int64(v.(int))) } From d5611d3afb0e0d7ae2d6c9dbff7df6313e9708e6 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Tue, 6 Feb 2024 07:48:04 -0500 Subject: [PATCH 3/3] Add CHANGELOG entry. --- .changelog/35589.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/35589.txt diff --git a/.changelog/35589.txt b/.changelog/35589.txt new file mode 100644 index 000000000000..56cce1218521 --- /dev/null +++ b/.changelog/35589.txt @@ -0,0 +1,3 @@ +```release-note:bug +resource/aws_db_instance: Creating resource from point-in-time recovery now handles `password` attribute correctly +``` \ No newline at end of file