Skip to content

Commit

Permalink
Merge pull request hashicorp#36035 from hashicorp/b-dms-replication-c…
Browse files Browse the repository at this point in the history
…onfig

r/aws_dms_replication_config: Add missing task settings
  • Loading branch information
nam054 committed Mar 18, 2024
2 parents 27a5f7c + 4760b18 commit 71ad342
Show file tree
Hide file tree
Showing 3 changed files with 321 additions and 137 deletions.
6 changes: 6 additions & 0 deletions .changelog/35670.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
```release-note:bug
resource/aws_dms_replication_config: Fix persistent change in `replication_settings`
```
```release-note:bug
resource/aws_dms_replication_task: Fix persistent change in `replication_task_settings`
```
68 changes: 68 additions & 0 deletions internal/service/dms/replication_config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,54 @@ func TestAccDMSReplicationConfig_basic(t *testing.T) {
})
}

func TestAccDMSReplicationConfig_noChangeOnDefault(t *testing.T) {
ctx := acctest.Context(t)
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
resourceName := "aws_dms_replication_config.test"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(ctx, t) },
ErrorCheck: acctest.ErrorCheck(t, names.DMSServiceID),
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
CheckDestroy: testAccCheckReplicationConfigDestroy(ctx),
Steps: []resource.TestStep{
{
Config: testAccReplicationConfigConfig_noChangeOnDefault(rName),
Check: resource.ComposeAggregateTestCheckFunc(
testAccCheckReplicationConfigExists(ctx, resourceName),
resource.TestCheckResourceAttrSet(resourceName, "arn"),
resource.TestCheckResourceAttr(resourceName, "compute_config.#", "1"),
resource.TestCheckResourceAttr(resourceName, "compute_config.0.availability_zone", ""),
resource.TestCheckResourceAttr(resourceName, "compute_config.0.dns_name_servers", ""),
resource.TestCheckResourceAttr(resourceName, "compute_config.0.kms_key_id", ""),
resource.TestCheckResourceAttr(resourceName, "compute_config.0.max_capacity_units", "128"),
resource.TestCheckResourceAttr(resourceName, "compute_config.0.min_capacity_units", "2"),
resource.TestCheckResourceAttr(resourceName, "compute_config.0.multi_az", "false"),
resource.TestCheckResourceAttr(resourceName, "compute_config.0.preferred_maintenance_window", "sun:23:45-mon:00:30"),
resource.TestCheckResourceAttrSet(resourceName, "compute_config.0.replication_subnet_group_id"),
resource.TestCheckResourceAttr(resourceName, "compute_config.0.vpc_security_group_ids.#", "0"),
resource.TestCheckResourceAttr(resourceName, "replication_config_identifier", rName),
resource.TestCheckResourceAttrSet(resourceName, "replication_settings"),
resource.TestCheckResourceAttr(resourceName, "replication_type", "cdc"),
resource.TestCheckNoResourceAttr(resourceName, "resource_identifier"),
resource.TestCheckResourceAttrSet(resourceName, "source_endpoint_arn"),
resource.TestCheckResourceAttr(resourceName, "start_replication", "false"),
resource.TestCheckResourceAttr(resourceName, "supplemental_settings", ""),
resource.TestCheckResourceAttrSet(resourceName, "table_mappings"),
resource.TestCheckResourceAttr(resourceName, "tags.%", "0"),
resource.TestCheckResourceAttrSet(resourceName, "target_endpoint_arn"),
),
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"start_replication", "resource_identifier"},
},
},
})
}

func TestAccDMSReplicationConfig_disappears(t *testing.T) {
ctx := acctest.Context(t)
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
Expand Down Expand Up @@ -403,6 +451,26 @@ resource "aws_dms_replication_config" "test" {
`, rName))
}

func testAccReplicationConfigConfig_noChangeOnDefault(rName string) string {
return acctest.ConfigCompose(testAccReplicationConfigConfig_base(rName), fmt.Sprintf(`
resource "aws_dms_replication_config" "test" {
replication_config_identifier = %[1]q
replication_type = "cdc"
source_endpoint_arn = aws_dms_endpoint.source.endpoint_arn
target_endpoint_arn = aws_dms_endpoint.target.endpoint_arn
table_mappings = "{\"rules\":[{\"rule-type\":\"selection\",\"rule-id\":\"1\",\"rule-name\":\"1\",\"object-locator\":{\"schema-name\":\"%%\",\"table-name\":\"%%\"},\"rule-action\":\"include\"}]}"
replication_settings = "{\"Logging\":{\"EnableLogging\":true}}"
compute_config {
replication_subnet_group_id = aws_dms_replication_subnet_group.test.replication_subnet_group_id
max_capacity_units = "128"
min_capacity_units = "2"
preferred_maintenance_window = "sun:23:45-mon:00:30"
}
}
`, rName))
}

func testAccReplicationConfigConfig_update(rName, replicationType string, minCapacity, maxCapacity int) string {
return acctest.ConfigCompose(testAccReplicationConfigConfig_base(rName), fmt.Sprintf(`
resource "aws_dms_replication_config" "test" {
Expand Down
Loading

0 comments on commit 71ad342

Please sign in to comment.