Add support for VpcSecurityGroups set/update in RDS
This commit is contained in:
parent
396cb39676
commit
4ed189c454
@ -149,7 +149,14 @@ class Database(BaseModel):
|
|||||||
<DBInstanceStatus>{{ database.status }}</DBInstanceStatus>
|
<DBInstanceStatus>{{ database.status }}</DBInstanceStatus>
|
||||||
{% if database.db_name %}<DBName>{{ database.db_name }}</DBName>{% endif %}
|
{% if database.db_name %}<DBName>{{ database.db_name }}</DBName>{% endif %}
|
||||||
<MultiAZ>{{ database.multi_az }}</MultiAZ>
|
<MultiAZ>{{ database.multi_az }}</MultiAZ>
|
||||||
<VpcSecurityGroups/>
|
<VpcSecurityGroups>
|
||||||
|
{% for vpc_security_group_id in database.vpc_security_group_ids %}
|
||||||
|
<VpcSecurityGroupMembership>
|
||||||
|
<Status>active</Status>
|
||||||
|
<VpcSecurityGroupId>{{ vpc_security_group_id }}</VpcSecurityGroupId>
|
||||||
|
</VpcSecurityGroupMembership>
|
||||||
|
{% endfor %}
|
||||||
|
</VpcSecurityGroups>
|
||||||
<DBInstanceIdentifier>{{ database.db_instance_identifier }}</DBInstanceIdentifier>
|
<DBInstanceIdentifier>{{ database.db_instance_identifier }}</DBInstanceIdentifier>
|
||||||
<DbiResourceId>{{ database.dbi_resource_id }}</DbiResourceId>
|
<DbiResourceId>{{ database.dbi_resource_id }}</DbiResourceId>
|
||||||
<InstanceCreateTime>{{ database.instance_create_time }}</InstanceCreateTime>
|
<InstanceCreateTime>{{ database.instance_create_time }}</InstanceCreateTime>
|
||||||
@ -323,6 +330,7 @@ class Database(BaseModel):
|
|||||||
"storage_encrypted": properties.get("StorageEncrypted"),
|
"storage_encrypted": properties.get("StorageEncrypted"),
|
||||||
"storage_type": properties.get("StorageType"),
|
"storage_type": properties.get("StorageType"),
|
||||||
"tags": properties.get("Tags"),
|
"tags": properties.get("Tags"),
|
||||||
|
"vpc_security_group_ids": properties.get('VpcSecurityGroupIds', []),
|
||||||
}
|
}
|
||||||
|
|
||||||
rds2_backend = rds2_backends[region_name]
|
rds2_backend = rds2_backends[region_name]
|
||||||
@ -397,10 +405,12 @@ class Database(BaseModel):
|
|||||||
"SecondaryAvailabilityZone": null,
|
"SecondaryAvailabilityZone": null,
|
||||||
"StatusInfos": null,
|
"StatusInfos": null,
|
||||||
"VpcSecurityGroups": [
|
"VpcSecurityGroups": [
|
||||||
|
{% for vpc_security_group_id in database.vpc_security_group_ids %}
|
||||||
{
|
{
|
||||||
"Status": "active",
|
"Status": "active",
|
||||||
"VpcSecurityGroupId": "sg-123456"
|
"VpcSecurityGroupId": "{{ vpc_security_group_id }}"
|
||||||
}
|
}
|
||||||
|
{% endfor %}
|
||||||
],
|
],
|
||||||
"DBInstanceArn": "{{ database.db_instance_arn }}"
|
"DBInstanceArn": "{{ database.db_instance_arn }}"
|
||||||
}""")
|
}""")
|
||||||
|
@ -43,7 +43,7 @@ class RDS2Response(BaseResponse):
|
|||||||
"security_groups": self._get_multi_param('DBSecurityGroups.DBSecurityGroupName'),
|
"security_groups": self._get_multi_param('DBSecurityGroups.DBSecurityGroupName'),
|
||||||
"storage_encrypted": self._get_param("StorageEncrypted"),
|
"storage_encrypted": self._get_param("StorageEncrypted"),
|
||||||
"storage_type": self._get_param("StorageType", 'standard'),
|
"storage_type": self._get_param("StorageType", 'standard'),
|
||||||
# VpcSecurityGroupIds.member.N
|
"vpc_security_group_ids": self._get_multi_param("VpcSecurityGroupIds.VpcSecurityGroupId"),
|
||||||
"tags": list(),
|
"tags": list(),
|
||||||
}
|
}
|
||||||
args['tags'] = self.unpack_complex_list_params(
|
args['tags'] = self.unpack_complex_list_params(
|
||||||
|
@ -18,7 +18,8 @@ def test_create_database():
|
|||||||
MasterUsername='root',
|
MasterUsername='root',
|
||||||
MasterUserPassword='hunter2',
|
MasterUserPassword='hunter2',
|
||||||
Port=1234,
|
Port=1234,
|
||||||
DBSecurityGroups=["my_sg"])
|
DBSecurityGroups=["my_sg"],
|
||||||
|
VpcSecurityGroupIds=['sg-123456'])
|
||||||
db_instance = database['DBInstance']
|
db_instance = database['DBInstance']
|
||||||
db_instance['AllocatedStorage'].should.equal(10)
|
db_instance['AllocatedStorage'].should.equal(10)
|
||||||
db_instance['DBInstanceClass'].should.equal("db.m1.small")
|
db_instance['DBInstanceClass'].should.equal("db.m1.small")
|
||||||
@ -35,6 +36,7 @@ def test_create_database():
|
|||||||
db_instance['DbiResourceId'].should.contain("db-")
|
db_instance['DbiResourceId'].should.contain("db-")
|
||||||
db_instance['CopyTagsToSnapshot'].should.equal(False)
|
db_instance['CopyTagsToSnapshot'].should.equal(False)
|
||||||
db_instance['InstanceCreateTime'].should.be.a("datetime.datetime")
|
db_instance['InstanceCreateTime'].should.be.a("datetime.datetime")
|
||||||
|
db_instance['VpcSecurityGroups'][0]['VpcSecurityGroupId'].should.equal('sg-123456')
|
||||||
|
|
||||||
|
|
||||||
@mock_rds2
|
@mock_rds2
|
||||||
@ -260,9 +262,11 @@ def test_modify_db_instance():
|
|||||||
instances['DBInstances'][0]['AllocatedStorage'].should.equal(10)
|
instances['DBInstances'][0]['AllocatedStorage'].should.equal(10)
|
||||||
conn.modify_db_instance(DBInstanceIdentifier='db-master-1',
|
conn.modify_db_instance(DBInstanceIdentifier='db-master-1',
|
||||||
AllocatedStorage=20,
|
AllocatedStorage=20,
|
||||||
ApplyImmediately=True)
|
ApplyImmediately=True,
|
||||||
|
VpcSecurityGroupIds=['sg-123456'])
|
||||||
instances = conn.describe_db_instances(DBInstanceIdentifier='db-master-1')
|
instances = conn.describe_db_instances(DBInstanceIdentifier='db-master-1')
|
||||||
instances['DBInstances'][0]['AllocatedStorage'].should.equal(20)
|
instances['DBInstances'][0]['AllocatedStorage'].should.equal(20)
|
||||||
|
instances['DBInstances'][0]['VpcSecurityGroups'][0]['VpcSecurityGroupId'].should.equal('sg-123456')
|
||||||
|
|
||||||
|
|
||||||
@mock_rds2
|
@mock_rds2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user