Merge pull request #2 from behanceops/more-rds2-support
More rds2 support - Thanks Chris Henry.
This commit is contained in:
commit
33b62d871f
@ -158,7 +158,7 @@ class Database(object):
|
|||||||
return database
|
return database
|
||||||
|
|
||||||
def to_json(self):
|
def to_json(self):
|
||||||
template = Template(""""DBInstance": {
|
template = Template("""{
|
||||||
"AllocatedStorage": 10,
|
"AllocatedStorage": 10,
|
||||||
"AutoMinorVersionUpgrade": "{{ database.auto_minor_version_upgrade }}",
|
"AutoMinorVersionUpgrade": "{{ database.auto_minor_version_upgrade }}",
|
||||||
"AvailabilityZone": "{{ database.availability_zone }}",
|
"AvailabilityZone": "{{ database.availability_zone }}",
|
||||||
@ -222,7 +222,10 @@ class Database(object):
|
|||||||
"PreferredMaintenanceWindow": "{{ database.preferred_maintenance_window }}",
|
"PreferredMaintenanceWindow": "{{ database.preferred_maintenance_window }}",
|
||||||
"PubliclyAccessible": "{{ database.publicly_accessible }}",
|
"PubliclyAccessible": "{{ database.publicly_accessible }}",
|
||||||
"AllocatedStorage": "{{ database.allocated_storage }}",
|
"AllocatedStorage": "{{ database.allocated_storage }}",
|
||||||
"Endpoint": null,
|
"Endpoint": {
|
||||||
|
"Address": "{{ database.address }}",
|
||||||
|
"Port": "{{ database.port }}"
|
||||||
|
},
|
||||||
"InstanceCreateTime": null,
|
"InstanceCreateTime": null,
|
||||||
"Iops": null,
|
"Iops": null,
|
||||||
"ReadReplicaDBInstanceIdentifiers": [{%- for replica in database.replicas -%}
|
"ReadReplicaDBInstanceIdentifiers": [{%- for replica in database.replicas -%}
|
||||||
|
@ -80,8 +80,7 @@ class RDS2Response(BaseResponse):
|
|||||||
db_kwargs = self._get_db_kwargs()
|
db_kwargs = self._get_db_kwargs()
|
||||||
database = self.backend.create_database(db_kwargs)
|
database = self.backend.create_database(db_kwargs)
|
||||||
template = self.response_template(CREATE_DATABASE_TEMPLATE)
|
template = self.response_template(CREATE_DATABASE_TEMPLATE)
|
||||||
result = template.render(database=database)
|
return template.render(database=database)
|
||||||
return result
|
|
||||||
|
|
||||||
def create_dbinstance_read_replica(self):
|
def create_dbinstance_read_replica(self):
|
||||||
return self.create_db_instance_read_replica()
|
return self.create_db_instance_read_replica()
|
||||||
@ -245,7 +244,7 @@ class RDS2Response(BaseResponse):
|
|||||||
CREATE_DATABASE_TEMPLATE = """{
|
CREATE_DATABASE_TEMPLATE = """{
|
||||||
"CreateDBInstanceResponse": {
|
"CreateDBInstanceResponse": {
|
||||||
"CreateDBInstanceResult": {
|
"CreateDBInstanceResult": {
|
||||||
{{ database.to_json() }}
|
"DBInstance": {{ database.to_json() }}
|
||||||
},
|
},
|
||||||
"ResponseMetadata": { "RequestId": "523e3218-afc7-11c3-90f5-f90431260ab4" }
|
"ResponseMetadata": { "RequestId": "523e3218-afc7-11c3-90f5-f90431260ab4" }
|
||||||
}
|
}
|
||||||
@ -261,20 +260,22 @@ CREATE_DATABASE_REPLICA_TEMPLATE = """{
|
|||||||
}"""
|
}"""
|
||||||
|
|
||||||
DESCRIBE_DATABASES_TEMPLATE = """{
|
DESCRIBE_DATABASES_TEMPLATE = """{
|
||||||
"DescribeDBInstanceResponse": {
|
"DescribeDBInstancesResponse": {
|
||||||
"DescribeDBInstanceResult": [
|
"DescribeDBInstancesResult": {
|
||||||
{%- for database in databases -%}
|
"DBInstances": [
|
||||||
{%- if loop.index != 1 -%},{%- endif -%}
|
{%- for database in databases -%}
|
||||||
{ {{ database.to_json() }} }
|
{%- if loop.index != 1 -%},{%- endif -%}
|
||||||
{%- endfor -%}
|
{{ database.to_json() }}
|
||||||
],
|
{%- endfor -%}
|
||||||
|
]
|
||||||
|
},
|
||||||
"ResponseMetadata": { "RequestId": "523e3218-afc7-11c3-90f5-f90431260ab4" }
|
"ResponseMetadata": { "RequestId": "523e3218-afc7-11c3-90f5-f90431260ab4" }
|
||||||
}
|
}
|
||||||
}"""
|
}"""
|
||||||
|
|
||||||
MODIFY_DATABASE_TEMPLATE = """{"ModifyDBInstanceResponse": {
|
MODIFY_DATABASE_TEMPLATE = """{"ModifyDBInstanceResponse": {
|
||||||
"ModifyDBInstanceResult": {
|
"ModifyDBInstanceResult": {
|
||||||
{{ database.to_json() }},
|
"DBInstance": {{ database.to_json() }},
|
||||||
"ResponseMetadata": {
|
"ResponseMetadata": {
|
||||||
"RequestId": "bb58476c-a1a8-11e4-99cf-55e92d4bbada"
|
"RequestId": "bb58476c-a1a8-11e4-99cf-55e92d4bbada"
|
||||||
}
|
}
|
||||||
@ -284,22 +285,24 @@ MODIFY_DATABASE_TEMPLATE = """{"ModifyDBInstanceResponse": {
|
|||||||
|
|
||||||
REBOOT_DATABASE_TEMPLATE = """{"RebootDBInstanceResponse": {
|
REBOOT_DATABASE_TEMPLATE = """{"RebootDBInstanceResponse": {
|
||||||
"RebootDBInstanceResult": {
|
"RebootDBInstanceResult": {
|
||||||
{{ database.to_json() }},
|
"DBInstance": {{ database.to_json() }},
|
||||||
"ResponseMetadata": {
|
"ResponseMetadata": {
|
||||||
"RequestId": "d55711cb-a1ab-11e4-99cf-55e92d4bbada"
|
"RequestId": "d55711cb-a1ab-11e4-99cf-55e92d4bbada"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}}"""
|
}"""
|
||||||
|
|
||||||
# TODO: update delete DB TEMPLATE
|
# TODO: update delete DB TEMPLATE
|
||||||
DELETE_DATABASE_TEMPLATE = """{ "DeleteDBInstanceResponse": {
|
DELETE_DATABASE_TEMPLATE = """{ "DeleteDBInstanceResponse": {
|
||||||
"DeleteDBInstanceResult": {
|
"DeleteDBInstanceResult": {
|
||||||
{{ database.to_json() }},
|
"DBInstance": {{ database.to_json() }}
|
||||||
|
},
|
||||||
"ResponseMetadata": {
|
"ResponseMetadata": {
|
||||||
"RequestId": "523e3218-afc7-11c3-90f5-f90431260ab4"
|
"RequestId": "523e3218-afc7-11c3-90f5-f90431260ab4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}}"""
|
}"""
|
||||||
|
|
||||||
CREATE_SECURITY_GROUP_TEMPLATE = """<CreateDBSecurityGroupResponse xmlns="http://rds.amazonaws.com/doc/2014-09-01/">
|
CREATE_SECURITY_GROUP_TEMPLATE = """<CreateDBSecurityGroupResponse xmlns="http://rds.amazonaws.com/doc/2014-09-01/">
|
||||||
<CreateDBSecurityGroupResult>
|
<CreateDBSecurityGroupResult>
|
||||||
|
@ -34,7 +34,7 @@ def test_get_databases():
|
|||||||
conn = boto.rds2.connect_to_region("us-west-2")
|
conn = boto.rds2.connect_to_region("us-west-2")
|
||||||
|
|
||||||
instances = conn.describe_db_instances()
|
instances = conn.describe_db_instances()
|
||||||
list(instances['DescribeDBInstanceResponse']['DescribeDBInstanceResult']).should.have.length_of(0)
|
list(instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances']).should.have.length_of(0)
|
||||||
|
|
||||||
conn.create_db_instance(db_instance_identifier='db-master-1',
|
conn.create_db_instance(db_instance_identifier='db-master-1',
|
||||||
allocated_storage=10,
|
allocated_storage=10,
|
||||||
@ -51,11 +51,11 @@ def test_get_databases():
|
|||||||
master_user_password='hunter2',
|
master_user_password='hunter2',
|
||||||
db_security_groups=["my_sg"])
|
db_security_groups=["my_sg"])
|
||||||
instances = conn.describe_db_instances()
|
instances = conn.describe_db_instances()
|
||||||
list(instances['DescribeDBInstanceResponse']['DescribeDBInstanceResult']).should.have.length_of(2)
|
list(instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances']).should.have.length_of(2)
|
||||||
|
|
||||||
instances = conn.describe_db_instances("db-master-1")
|
instances = conn.describe_db_instances("db-master-1")
|
||||||
list(instances['DescribeDBInstanceResponse']['DescribeDBInstanceResult']).should.have.length_of(1)
|
list(instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances']).should.have.length_of(1)
|
||||||
instances['DescribeDBInstanceResponse']['DescribeDBInstanceResult'][0]['DBInstance']['DBInstanceIdentifier'].should.equal("db-master-1")
|
instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances'][0]['DBInstanceIdentifier'].should.equal("db-master-1")
|
||||||
|
|
||||||
|
|
||||||
@disable_on_py3()
|
@disable_on_py3()
|
||||||
@ -77,10 +77,10 @@ def test_modify_db_instance():
|
|||||||
master_user_password='hunter2',
|
master_user_password='hunter2',
|
||||||
db_security_groups=["my_sg"])
|
db_security_groups=["my_sg"])
|
||||||
instances = conn.describe_db_instances('db-master-1')
|
instances = conn.describe_db_instances('db-master-1')
|
||||||
instances['DescribeDBInstanceResponse']['DescribeDBInstanceResult'][0]['DBInstance']['AllocatedStorage'].should.equal('10')
|
instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances'][0]['AllocatedStorage'].should.equal('10')
|
||||||
conn.modify_db_instance(db_instance_identifier='db-master-1', allocated_storage=20, apply_immediately=True)
|
conn.modify_db_instance(db_instance_identifier='db-master-1', allocated_storage=20, apply_immediately=True)
|
||||||
instances = conn.describe_db_instances('db-master-1')
|
instances = conn.describe_db_instances('db-master-1')
|
||||||
instances['DescribeDBInstanceResponse']['DescribeDBInstanceResult'][0]['DBInstance']['AllocatedStorage'].should.equal('20')
|
instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances'][0]['AllocatedStorage'].should.equal('20')
|
||||||
|
|
||||||
|
|
||||||
@disable_on_py3()
|
@disable_on_py3()
|
||||||
@ -118,7 +118,7 @@ def test_reboot_non_existant_database():
|
|||||||
def test_delete_database():
|
def test_delete_database():
|
||||||
conn = boto.rds2.connect_to_region("us-west-2")
|
conn = boto.rds2.connect_to_region("us-west-2")
|
||||||
instances = conn.describe_db_instances()
|
instances = conn.describe_db_instances()
|
||||||
list(instances['DescribeDBInstanceResponse']['DescribeDBInstanceResult']).should.have.length_of(0)
|
list(instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances']).should.have.length_of(0)
|
||||||
conn.create_db_instance(db_instance_identifier='db-master-1',
|
conn.create_db_instance(db_instance_identifier='db-master-1',
|
||||||
allocated_storage=10,
|
allocated_storage=10,
|
||||||
engine='postgres',
|
engine='postgres',
|
||||||
@ -127,11 +127,11 @@ def test_delete_database():
|
|||||||
master_user_password='hunter2',
|
master_user_password='hunter2',
|
||||||
db_security_groups=["my_sg"])
|
db_security_groups=["my_sg"])
|
||||||
instances = conn.describe_db_instances()
|
instances = conn.describe_db_instances()
|
||||||
list(instances['DescribeDBInstanceResponse']['DescribeDBInstanceResult']).should.have.length_of(1)
|
list(instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances']).should.have.length_of(1)
|
||||||
|
|
||||||
conn.delete_db_instance("db-master-1")
|
conn.delete_db_instance("db-master-1")
|
||||||
instances = conn.describe_db_instances()
|
instances = conn.describe_db_instances()
|
||||||
list(instances['DescribeDBInstanceResponse']['DescribeDBInstanceResult']).should.have.length_of(0)
|
list(instances['DescribeDBInstancesResponse']['DescribeDBInstancesResult']['DBInstances']).should.have.length_of(0)
|
||||||
|
|
||||||
|
|
||||||
@disable_on_py3()
|
@disable_on_py3()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user