diff --git a/aws-rds-dbclusterparametergroup/src/main/java/software/amazon/rds/dbclusterparametergroup/BaseHandlerStd.java b/aws-rds-dbclusterparametergroup/src/main/java/software/amazon/rds/dbclusterparametergroup/BaseHandlerStd.java index c4a13551..42dad91c 100644 --- a/aws-rds-dbclusterparametergroup/src/main/java/software/amazon/rds/dbclusterparametergroup/BaseHandlerStd.java +++ b/aws-rds-dbclusterparametergroup/src/main/java/software/amazon/rds/dbclusterparametergroup/BaseHandlerStd.java @@ -71,7 +71,7 @@ public abstract class BaseHandlerStd extends BaseHandler { ImmutableSet.of("password_encryption", "rds.accepted_password_auth_method"), ImmutableSet.of("ssl_max_protocol_version", "ssl_min_protocol_version"), ImmutableSet.of("rds.change_data_capture_streaming", "binlog_format"), - ImmutableSet.of("aurora_enhanced_binlog", "binlog_backup") + ImmutableSet.of("aurora_enhanced_binlog", "binlog_backup", "binlog_replication_globaldb") ); protected static final BiFunction, ResourceModel> EMPTY_CALL = (model, proxyClient) -> model; protected static final String AVAILABLE = "available"; diff --git a/aws-rds-dbclusterparametergroup/src/test/java/software/amazon/rds/dbclusterparametergroup/CreateHandlerTest.java b/aws-rds-dbclusterparametergroup/src/test/java/software/amazon/rds/dbclusterparametergroup/CreateHandlerTest.java index 04696452..53487de3 100644 --- a/aws-rds-dbclusterparametergroup/src/test/java/software/amazon/rds/dbclusterparametergroup/CreateHandlerTest.java +++ b/aws-rds-dbclusterparametergroup/src/test/java/software/amazon/rds/dbclusterparametergroup/CreateHandlerTest.java @@ -17,6 +17,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.IntStream; import com.google.common.collect.Lists; @@ -93,6 +94,7 @@ public class CreateHandlerTest extends AbstractHandlerTest { */ private static class InsertionOrderedParamBuilder { private final ImmutableMap.Builder parameters = new ImmutableMap.Builder<>(); + private final AtomicInteger parameterIndex = new AtomicInteger(0); public static InsertionOrderedParamBuilder builder() { return new InsertionOrderedParamBuilder(); @@ -100,11 +102,12 @@ public static InsertionOrderedParamBuilder builder() { public InsertionOrderedParamBuilder addParameter(String parameterName, String parameterValue) { parameters.put(parameterName, parameterValue); + parameterIndex.incrementAndGet(); return this; } public InsertionOrderedParamBuilder addRandomParameters(int numberOfRandomParameters) { - IntStream.range(0, numberOfRandomParameters).forEach(i -> parameters.put("param" + i, "value")); + IntStream.range(0, numberOfRandomParameters).forEach(i -> parameters.put("param" + parameterIndex.incrementAndGet(), "value")); return this; } @@ -451,8 +454,8 @@ public void handleRequest_SuccessWithParameters() { * We need to ensure that all related parameters are sent in the same request as defined * in BaseHandlerStd.PARAMETER_DEPENDENCIES * - * This test ensure that "aurora_enhanced_binlog" and "binlog_backup" get bundled in the same request after - * the split logic that happens in BaseHandlerStd.modifyParameters + * This test ensure that "aurora_enhanced_binlog", "binlog_backup" and "binlog_replication_globaldb" get bundled in + * the same request after the split logic that happens in BaseHandlerStd.modifyParameters */ @Test public void handleRequest_SuccessSplitParameters() { @@ -489,6 +492,8 @@ public void handleRequest_SuccessSplitParameters() { .addParameter("aurora_enhanced_binlog", "1") .addRandomParameters(BaseHandlerStd.MAX_PARAMETERS_PER_REQUEST) .addParameter("binlog_backup", "0") + .addRandomParameters(BaseHandlerStd.MAX_PARAMETERS_PER_REQUEST) + .addParameter("binlog_replication_globaldb", "0") .build()) .build(); mockDescribeDbClusterParametersResponse(resourceModel.getParameters(), true, "static"); @@ -503,12 +508,13 @@ public void handleRequest_SuccessSplitParameters() { ArgumentCaptor captor = ArgumentCaptor.forClass(ModifyDbClusterParameterGroupRequest.class); verify(rdsProxy.client(), times(1)).createDBClusterParameterGroup(any(CreateDbClusterParameterGroupRequest.class)); - verify(rdsProxy.client(), times(2)).modifyDBClusterParameterGroup(captor.capture()); + verify(rdsProxy.client(), times(3)).modifyDBClusterParameterGroup(captor.capture()); verify(rdsProxy.client(), times(1)).describeDBClusters(any(DescribeDbClustersRequest.class)); ModifyDbClusterParameterGroupRequest firstRequest = captor.getAllValues().get(0); assertThat(verifyParameterExistsInRequest("aurora_enhanced_binlog", firstRequest)).isEqualTo(true); assertThat(verifyParameterExistsInRequest("binlog_backup", firstRequest)).isEqualTo(true); + assertThat(verifyParameterExistsInRequest("binlog_replication_globaldb", firstRequest)).isEqualTo(true); } @Test