RDS: create_db_cluster() now supports the VpcSecurityGroupIds-parameter (#6567)

This commit is contained in:
Bert Blommers 2023-07-28 14:34:35 +00:00 committed by GitHub
parent b52fd80cb1
commit 35ab6cefe8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 19 deletions

View File

@ -182,7 +182,7 @@ class Cluster:
self.preferred_backup_window = "01:37-02:07"
self.preferred_maintenance_window = "wed:02:40-wed:03:10"
# This should default to the default security group
self.vpc_security_groups: List[str] = []
self.vpc_security_group_ids: List[str] = kwargs["vpc_security_group_ids"]
self.hosted_zone_id = "".join(
random.choice(string.ascii_uppercase + string.digits) for _ in range(14)
)
@ -329,7 +329,7 @@ class Cluster:
{% endfor %}
</DBClusterMembers>
<VpcSecurityGroups>
{% for id in cluster.vpc_security_groups %}
{% for id in cluster.vpc_security_group_ids %}
<VpcSecurityGroup>
<VpcSecurityGroupId>{{ id }}</VpcSecurityGroupId>
<Status>active</Status>

View File

@ -211,6 +211,9 @@ class RDSResponse(BaseResponse):
"replication_source_identifier": self._get_param(
"ReplicationSourceIdentifier"
),
"vpc_security_group_ids": self.unpack_list_params(
"VpcSecurityGroupIds", "VpcSecurityGroupId"
),
}
def _get_export_task_kwargs(self) -> Dict[str, Any]:

View File

@ -193,29 +193,13 @@ def test_create_db_cluster__verify_default_properties():
).should.be.greater_than_or_equal_to(cluster["ClusterCreateTime"])
@mock_rds
def test_create_db_cluster_with_database_name():
client = boto3.client("rds", region_name="eu-north-1")
resp = client.create_db_cluster(
DBClusterIdentifier="cluster-id",
DatabaseName="users",
Engine="aurora",
MasterUsername="root",
MasterUserPassword="hunter2_",
)
cluster = resp["DBCluster"]
cluster.should.have.key("DatabaseName").equal("users")
cluster.should.have.key("DBClusterIdentifier").equal("cluster-id")
cluster.should.have.key("DBClusterParameterGroup").equal("default.aurora8.0")
@mock_rds
def test_create_db_cluster_additional_parameters():
client = boto3.client("rds", region_name="eu-north-1")
resp = client.create_db_cluster(
AvailabilityZones=["eu-north-1b"],
DatabaseName="users",
DBClusterIdentifier="cluster-id",
Engine="aurora",
EngineVersion="8.0.mysql_aurora.3.01.0",
@ -232,11 +216,13 @@ def test_create_db_cluster_additional_parameters():
"MinCapacity": 5,
"AutoPause": True,
},
VpcSecurityGroupIds=["sg1", "sg2"],
)
cluster = resp["DBCluster"]
cluster.should.have.key("AvailabilityZones").equal(["eu-north-1b"])
cluster.should.have.key("DatabaseName").equal("users")
cluster.should.have.key("Engine").equal("aurora")
cluster.should.have.key("EngineVersion").equal("8.0.mysql_aurora.3.01.0")
cluster.should.have.key("EngineMode").equal("serverless")
@ -248,6 +234,11 @@ def test_create_db_cluster_additional_parameters():
assert cluster["DBSubnetGroup"] == "subnetgroupname"
assert cluster["ScalingConfigurationInfo"] == {"MinCapacity": 5, "AutoPause": True}
security_groups = cluster["VpcSecurityGroups"]
assert len(security_groups) == 2
assert {"VpcSecurityGroupId": "sg1", "Status": "active"} in security_groups
assert {"VpcSecurityGroupId": "sg2", "Status": "active"} in security_groups
@mock_rds
def test_describe_db_cluster_after_creation():