From 5d8815d64b063f81cbb3bfd375eca25b109a3be0 Mon Sep 17 00:00:00 2001 From: Taylor Riggan Date: Mon, 11 Sep 2023 20:45:10 +0000 Subject: [PATCH 1/4] Attempt to fix #15240. Resolved issue where KMS key parameter was ignored when creating a cluster from a snapshot. --- internal/service/neptune/cluster.go | 1 + internal/service/neptune/cluster_test.go | 53 +++++++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/internal/service/neptune/cluster.go b/internal/service/neptune/cluster.go index 13ed8fe9ba14..155fd32ce7ce 100644 --- a/internal/service/neptune/cluster.go +++ b/internal/service/neptune/cluster.go @@ -396,6 +396,7 @@ func resourceClusterCreate(ctx context.Context, d *schema.ResourceData, meta int v := v.(string) inputC.KmsKeyId = aws.String(v) + inputR.KmsKeyId = aws.String(v) } if v, ok := d.GetOk("neptune_cluster_parameter_group_name"); ok { diff --git a/internal/service/neptune/cluster_test.go b/internal/service/neptune/cluster_test.go index 8516eefee2c9..797f0d5bcd51 100644 --- a/internal/service/neptune/cluster_test.go +++ b/internal/service/neptune/cluster_test.go @@ -573,6 +573,7 @@ func TestAccNeptuneCluster_restoreFromSnapshot(t *testing.T) { var dbCluster neptune.DBCluster rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) resourceName := "aws_neptune_cluster.test" + keyResourceName := "aws_kms_key.test2" parameterGroupResourceName := "aws_neptune_cluster_parameter_group.test" resource.ParallelTest(t, resource.TestCase{ @@ -588,6 +589,7 @@ func TestAccNeptuneCluster_restoreFromSnapshot(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "backup_retention_period", "5"), resource.TestCheckResourceAttr(resourceName, "cluster_identifier", rName), resource.TestCheckResourceAttrPair(resourceName, "neptune_cluster_parameter_group_name", parameterGroupResourceName, "id"), + resource.TestCheckResourceAttrPair(resourceName, "kms_key_arn", keyResourceName, "arn"), resource.TestCheckResourceAttr(resourceName, "tags.%", "1"), resource.TestCheckResourceAttr(resourceName, "tags.Name", rName), resource.TestCheckResourceAttr(resourceName, "vpc_security_group_ids.#", "2"), @@ -1295,6 +1297,52 @@ resource "aws_neptune_cluster_instance" "secondary" { func testAccClusterConfig_restoreFromSnapshot(rName string) string { return fmt.Sprintf(` +resource "aws_kms_key" "test1" { + description = %[1]q + + policy = < Date: Mon, 11 Sep 2023 21:02:31 +0000 Subject: [PATCH 2/4] Add changelog file. --- .changelog/33413.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/33413.txt diff --git a/.changelog/33413.txt b/.changelog/33413.txt new file mode 100644 index 000000000000..72db960cede6 --- /dev/null +++ b/.changelog/33413.txt @@ -0,0 +1,3 @@ +```release-note:bug +resource/aws_neptune_cluster: fix ignored kms key parameter on restore from db cluster snapshot. +``` \ No newline at end of file From 45e4c687ad0265997e4c0c36138ec18acdb313e2 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Wed, 13 Sep 2023 15:33:00 -0400 Subject: [PATCH 3/4] Tweak CHANGELOG entry. --- .changelog/33413.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changelog/33413.txt b/.changelog/33413.txt index 72db960cede6..663341ced466 100644 --- a/.changelog/33413.txt +++ b/.changelog/33413.txt @@ -1,3 +1,3 @@ ```release-note:bug -resource/aws_neptune_cluster: fix ignored kms key parameter on restore from db cluster snapshot. +resource/aws_neptune_cluster: Fix ignored `kms_key_arn` on restore from DB cluster snapshot ``` \ No newline at end of file From bfe8c6940b04ebdbb83c0edfe081b3ef62bc8472 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Wed, 13 Sep 2023 15:37:13 -0400 Subject: [PATCH 4/4] Fix terrafmt errors. --- internal/service/neptune/cluster_test.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/service/neptune/cluster_test.go b/internal/service/neptune/cluster_test.go index 797f0d5bcd51..3b590989e8e0 100644 --- a/internal/service/neptune/cluster_test.go +++ b/internal/service/neptune/cluster_test.go @@ -588,8 +588,8 @@ func TestAccNeptuneCluster_restoreFromSnapshot(t *testing.T) { testAccCheckClusterExists(ctx, resourceName, &dbCluster), resource.TestCheckResourceAttr(resourceName, "backup_retention_period", "5"), resource.TestCheckResourceAttr(resourceName, "cluster_identifier", rName), - resource.TestCheckResourceAttrPair(resourceName, "neptune_cluster_parameter_group_name", parameterGroupResourceName, "id"), resource.TestCheckResourceAttrPair(resourceName, "kms_key_arn", keyResourceName, "arn"), + resource.TestCheckResourceAttrPair(resourceName, "neptune_cluster_parameter_group_name", parameterGroupResourceName, "id"), resource.TestCheckResourceAttr(resourceName, "tags.%", "1"), resource.TestCheckResourceAttr(resourceName, "tags.Name", rName), resource.TestCheckResourceAttr(resourceName, "vpc_security_group_ids.#", "2"), @@ -1360,8 +1360,8 @@ resource "aws_neptune_cluster" "source" { cluster_identifier = "%[1]s-src" neptune_cluster_parameter_group_name = "default.neptune1.2" skip_final_snapshot = true - storage_encrypted = true - kms_key_arn = aws_kms_key.test1.arn + storage_encrypted = true + kms_key_arn = aws_kms_key.test1.arn } resource "aws_neptune_cluster_snapshot" "test" { @@ -1380,11 +1380,11 @@ resource "aws_neptune_cluster_parameter_group" "test" { } resource "aws_neptune_cluster" "test" { - cluster_identifier = %[1]q - skip_final_snapshot = true - storage_encrypted = true - snapshot_identifier = aws_neptune_cluster_snapshot.test.id - kms_key_arn = aws_kms_key.test2.arn + cluster_identifier = %[1]q + skip_final_snapshot = true + storage_encrypted = true + snapshot_identifier = aws_neptune_cluster_snapshot.test.id + kms_key_arn = aws_kms_key.test2.arn backup_retention_period = 5 neptune_cluster_parameter_group_name = aws_neptune_cluster_parameter_group.test.id vpc_security_group_ids = aws_security_group.test[*].id