diff --git a/moto/rds2/models.py b/moto/rds2/models.py
index 81b346fdb..4c0daa230 100644
--- a/moto/rds2/models.py
+++ b/moto/rds2/models.py
@@ -149,7 +149,14 @@ class Database(BaseModel):
{{ database.status }}
{% if database.db_name %}{{ database.db_name }}{% endif %}
{{ database.multi_az }}
-
+
+ {% for vpc_security_group_id in database.vpc_security_group_ids %}
+
+ active
+ {{ vpc_security_group_id }}
+
+ {% endfor %}
+
{{ database.db_instance_identifier }}
{{ database.dbi_resource_id }}
{{ database.instance_create_time }}
@@ -323,6 +330,7 @@ class Database(BaseModel):
"storage_encrypted": properties.get("StorageEncrypted"),
"storage_type": properties.get("StorageType"),
"tags": properties.get("Tags"),
+ "vpc_security_group_ids": properties.get('VpcSecurityGroupIds', []),
}
rds2_backend = rds2_backends[region_name]
@@ -397,10 +405,12 @@ class Database(BaseModel):
"SecondaryAvailabilityZone": null,
"StatusInfos": null,
"VpcSecurityGroups": [
+ {% for vpc_security_group_id in database.vpc_security_group_ids %}
{
"Status": "active",
- "VpcSecurityGroupId": "sg-123456"
+ "VpcSecurityGroupId": "{{ vpc_security_group_id }}"
}
+ {% endfor %}
],
"DBInstanceArn": "{{ database.db_instance_arn }}"
}""")
diff --git a/moto/rds2/responses.py b/moto/rds2/responses.py
index e92625635..75d4f4ce0 100644
--- a/moto/rds2/responses.py
+++ b/moto/rds2/responses.py
@@ -43,7 +43,7 @@ class RDS2Response(BaseResponse):
"security_groups": self._get_multi_param('DBSecurityGroups.DBSecurityGroupName'),
"storage_encrypted": self._get_param("StorageEncrypted"),
"storage_type": self._get_param("StorageType", 'standard'),
- # VpcSecurityGroupIds.member.N
+ "vpc_security_group_ids": self._get_multi_param("VpcSecurityGroupIds.VpcSecurityGroupId"),
"tags": list(),
}
args['tags'] = self.unpack_complex_list_params(
diff --git a/tests/test_rds2/test_rds2.py b/tests/test_rds2/test_rds2.py
index 8ea296c2c..aacaf04f1 100644
--- a/tests/test_rds2/test_rds2.py
+++ b/tests/test_rds2/test_rds2.py
@@ -18,7 +18,8 @@ def test_create_database():
MasterUsername='root',
MasterUserPassword='hunter2',
Port=1234,
- DBSecurityGroups=["my_sg"])
+ DBSecurityGroups=["my_sg"],
+ VpcSecurityGroupIds=['sg-123456'])
db_instance = database['DBInstance']
db_instance['AllocatedStorage'].should.equal(10)
db_instance['DBInstanceClass'].should.equal("db.m1.small")
@@ -35,6 +36,7 @@ def test_create_database():
db_instance['DbiResourceId'].should.contain("db-")
db_instance['CopyTagsToSnapshot'].should.equal(False)
db_instance['InstanceCreateTime'].should.be.a("datetime.datetime")
+ db_instance['VpcSecurityGroups'][0]['VpcSecurityGroupId'].should.equal('sg-123456')
@mock_rds2
@@ -260,9 +262,11 @@ def test_modify_db_instance():
instances['DBInstances'][0]['AllocatedStorage'].should.equal(10)
conn.modify_db_instance(DBInstanceIdentifier='db-master-1',
AllocatedStorage=20,
- ApplyImmediately=True)
+ ApplyImmediately=True,
+ VpcSecurityGroupIds=['sg-123456'])
instances = conn.describe_db_instances(DBInstanceIdentifier='db-master-1')
instances['DBInstances'][0]['AllocatedStorage'].should.equal(20)
+ instances['DBInstances'][0]['VpcSecurityGroups'][0]['VpcSecurityGroupId'].should.equal('sg-123456')
@mock_rds2