Run black on moto & test directories.
This commit is contained in:
parent
c820395dbf
commit
96e5b1993d
507 changed files with 52541 additions and 47814 deletions
|
|
@ -2,6 +2,6 @@ from __future__ import unicode_literals
|
|||
from .models import rds2_backends
|
||||
from ..core.models import base_decorator, deprecated_base_decorator
|
||||
|
||||
rds2_backend = rds2_backends['us-west-1']
|
||||
rds2_backend = rds2_backends["us-west-1"]
|
||||
mock_rds2 = base_decorator(rds2_backends)
|
||||
mock_rds2_deprecated = deprecated_base_decorator(rds2_backends)
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@ from werkzeug.exceptions import BadRequest
|
|||
|
||||
|
||||
class RDSClientError(BadRequest):
|
||||
|
||||
def __init__(self, code, message):
|
||||
super(RDSClientError, self).__init__()
|
||||
template = Template("""
|
||||
template = Template(
|
||||
"""
|
||||
<RDSClientError>
|
||||
<Error>
|
||||
<Code>{{ code }}</Code>
|
||||
|
|
@ -16,87 +16,94 @@ class RDSClientError(BadRequest):
|
|||
<Type>Sender</Type>
|
||||
</Error>
|
||||
<RequestId>6876f774-7273-11e4-85dc-39e55ca848d1</RequestId>
|
||||
</RDSClientError>""")
|
||||
</RDSClientError>"""
|
||||
)
|
||||
self.description = template.render(code=code, message=message)
|
||||
|
||||
|
||||
class DBInstanceNotFoundError(RDSClientError):
|
||||
|
||||
def __init__(self, database_identifier):
|
||||
super(DBInstanceNotFoundError, self).__init__(
|
||||
'DBInstanceNotFound',
|
||||
"Database {0} not found.".format(database_identifier))
|
||||
"DBInstanceNotFound", "Database {0} not found.".format(database_identifier)
|
||||
)
|
||||
|
||||
|
||||
class DBSnapshotNotFoundError(RDSClientError):
|
||||
|
||||
def __init__(self):
|
||||
super(DBSnapshotNotFoundError, self).__init__(
|
||||
'DBSnapshotNotFound',
|
||||
"DBSnapshotIdentifier does not refer to an existing DB snapshot.")
|
||||
"DBSnapshotNotFound",
|
||||
"DBSnapshotIdentifier does not refer to an existing DB snapshot.",
|
||||
)
|
||||
|
||||
|
||||
class DBSecurityGroupNotFoundError(RDSClientError):
|
||||
|
||||
def __init__(self, security_group_name):
|
||||
super(DBSecurityGroupNotFoundError, self).__init__(
|
||||
'DBSecurityGroupNotFound',
|
||||
"Security Group {0} not found.".format(security_group_name))
|
||||
"DBSecurityGroupNotFound",
|
||||
"Security Group {0} not found.".format(security_group_name),
|
||||
)
|
||||
|
||||
|
||||
class DBSubnetGroupNotFoundError(RDSClientError):
|
||||
|
||||
def __init__(self, subnet_group_name):
|
||||
super(DBSubnetGroupNotFoundError, self).__init__(
|
||||
'DBSubnetGroupNotFound',
|
||||
"Subnet Group {0} not found.".format(subnet_group_name))
|
||||
"DBSubnetGroupNotFound",
|
||||
"Subnet Group {0} not found.".format(subnet_group_name),
|
||||
)
|
||||
|
||||
|
||||
class DBParameterGroupNotFoundError(RDSClientError):
|
||||
|
||||
def __init__(self, db_parameter_group_name):
|
||||
super(DBParameterGroupNotFoundError, self).__init__(
|
||||
'DBParameterGroupNotFound',
|
||||
'DB Parameter Group {0} not found.'.format(db_parameter_group_name))
|
||||
"DBParameterGroupNotFound",
|
||||
"DB Parameter Group {0} not found.".format(db_parameter_group_name),
|
||||
)
|
||||
|
||||
|
||||
class OptionGroupNotFoundFaultError(RDSClientError):
|
||||
|
||||
def __init__(self, option_group_name):
|
||||
super(OptionGroupNotFoundFaultError, self).__init__(
|
||||
'OptionGroupNotFoundFault',
|
||||
'Specified OptionGroupName: {0} not found.'.format(option_group_name)
|
||||
"OptionGroupNotFoundFault",
|
||||
"Specified OptionGroupName: {0} not found.".format(option_group_name),
|
||||
)
|
||||
|
||||
|
||||
class InvalidDBClusterStateFaultError(RDSClientError):
|
||||
|
||||
def __init__(self, database_identifier):
|
||||
super(InvalidDBClusterStateFaultError, self).__init__(
|
||||
'InvalidDBClusterStateFault',
|
||||
'Invalid DB type, when trying to perform StopDBInstance on {0}e. See AWS RDS documentation on rds.stop_db_instance'.format(database_identifier))
|
||||
"InvalidDBClusterStateFault",
|
||||
"Invalid DB type, when trying to perform StopDBInstance on {0}e. See AWS RDS documentation on rds.stop_db_instance".format(
|
||||
database_identifier
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
class InvalidDBInstanceStateError(RDSClientError):
|
||||
|
||||
def __init__(self, database_identifier, istate):
|
||||
estate = "in available state" if istate == 'stop' else "stopped, it cannot be started"
|
||||
estate = (
|
||||
"in available state"
|
||||
if istate == "stop"
|
||||
else "stopped, it cannot be started"
|
||||
)
|
||||
super(InvalidDBInstanceStateError, self).__init__(
|
||||
'InvalidDBInstanceState',
|
||||
'Instance {} is not {}.'.format(database_identifier, estate))
|
||||
"InvalidDBInstanceState",
|
||||
"Instance {} is not {}.".format(database_identifier, estate),
|
||||
)
|
||||
|
||||
|
||||
class SnapshotQuotaExceededError(RDSClientError):
|
||||
|
||||
def __init__(self):
|
||||
super(SnapshotQuotaExceededError, self).__init__(
|
||||
'SnapshotQuotaExceeded',
|
||||
'The request cannot be processed because it would exceed the maximum number of snapshots.')
|
||||
"SnapshotQuotaExceeded",
|
||||
"The request cannot be processed because it would exceed the maximum number of snapshots.",
|
||||
)
|
||||
|
||||
|
||||
class DBSnapshotAlreadyExistsError(RDSClientError):
|
||||
|
||||
def __init__(self, database_snapshot_identifier):
|
||||
super(DBSnapshotAlreadyExistsError, self).__init__(
|
||||
'DBSnapshotAlreadyExists',
|
||||
'Cannot create the snapshot because a snapshot with the identifier {} already exists.'.format(database_snapshot_identifier))
|
||||
"DBSnapshotAlreadyExists",
|
||||
"Cannot create the snapshot because a snapshot with the identifier {} already exists.".format(
|
||||
database_snapshot_identifier
|
||||
),
|
||||
)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -8,87 +8,90 @@ from .exceptions import DBParameterGroupNotFoundError
|
|||
|
||||
|
||||
class RDS2Response(BaseResponse):
|
||||
|
||||
@property
|
||||
def backend(self):
|
||||
return rds2_backends[self.region]
|
||||
|
||||
def _get_db_kwargs(self):
|
||||
args = {
|
||||
"auto_minor_version_upgrade": self._get_param('AutoMinorVersionUpgrade'),
|
||||
"allocated_storage": self._get_int_param('AllocatedStorage'),
|
||||
"auto_minor_version_upgrade": self._get_param("AutoMinorVersionUpgrade"),
|
||||
"allocated_storage": self._get_int_param("AllocatedStorage"),
|
||||
"availability_zone": self._get_param("AvailabilityZone"),
|
||||
"backup_retention_period": self._get_param("BackupRetentionPeriod"),
|
||||
"copy_tags_to_snapshot": self._get_param("CopyTagsToSnapshot"),
|
||||
"db_instance_class": self._get_param('DBInstanceClass'),
|
||||
"db_instance_identifier": self._get_param('DBInstanceIdentifier'),
|
||||
"db_instance_class": self._get_param("DBInstanceClass"),
|
||||
"db_instance_identifier": self._get_param("DBInstanceIdentifier"),
|
||||
"db_name": self._get_param("DBName"),
|
||||
"db_parameter_group_name": self._get_param("DBParameterGroupName"),
|
||||
"db_snapshot_identifier": self._get_param('DBSnapshotIdentifier'),
|
||||
"db_snapshot_identifier": self._get_param("DBSnapshotIdentifier"),
|
||||
"db_subnet_group_name": self._get_param("DBSubnetGroupName"),
|
||||
"engine": self._get_param("Engine"),
|
||||
"engine_version": self._get_param("EngineVersion"),
|
||||
"license_model": self._get_param("LicenseModel"),
|
||||
"iops": self._get_int_param("Iops"),
|
||||
"kms_key_id": self._get_param("KmsKeyId"),
|
||||
"master_user_password": self._get_param('MasterUserPassword'),
|
||||
"master_username": self._get_param('MasterUsername'),
|
||||
"master_user_password": self._get_param("MasterUserPassword"),
|
||||
"master_username": self._get_param("MasterUsername"),
|
||||
"multi_az": self._get_bool_param("MultiAZ"),
|
||||
"option_group_name": self._get_param("OptionGroupName"),
|
||||
"port": self._get_param('Port'),
|
||||
"port": self._get_param("Port"),
|
||||
# PreferredBackupWindow
|
||||
# PreferredMaintenanceWindow
|
||||
"publicly_accessible": self._get_param("PubliclyAccessible"),
|
||||
"region": self.region,
|
||||
"security_groups": self._get_multi_param('DBSecurityGroups.DBSecurityGroupName'),
|
||||
"security_groups": self._get_multi_param(
|
||||
"DBSecurityGroups.DBSecurityGroupName"
|
||||
),
|
||||
"storage_encrypted": self._get_param("StorageEncrypted"),
|
||||
"storage_type": self._get_param("StorageType", None),
|
||||
"vpc_security_group_ids": self._get_multi_param("VpcSecurityGroupIds.VpcSecurityGroupId"),
|
||||
"vpc_security_group_ids": self._get_multi_param(
|
||||
"VpcSecurityGroupIds.VpcSecurityGroupId"
|
||||
),
|
||||
"tags": list(),
|
||||
}
|
||||
args['tags'] = self.unpack_complex_list_params(
|
||||
'Tags.Tag', ('Key', 'Value'))
|
||||
args["tags"] = self.unpack_complex_list_params("Tags.Tag", ("Key", "Value"))
|
||||
return args
|
||||
|
||||
def _get_db_replica_kwargs(self):
|
||||
return {
|
||||
"auto_minor_version_upgrade": self._get_param('AutoMinorVersionUpgrade'),
|
||||
"auto_minor_version_upgrade": self._get_param("AutoMinorVersionUpgrade"),
|
||||
"availability_zone": self._get_param("AvailabilityZone"),
|
||||
"db_instance_class": self._get_param('DBInstanceClass'),
|
||||
"db_instance_identifier": self._get_param('DBInstanceIdentifier'),
|
||||
"db_instance_class": self._get_param("DBInstanceClass"),
|
||||
"db_instance_identifier": self._get_param("DBInstanceIdentifier"),
|
||||
"db_subnet_group_name": self._get_param("DBSubnetGroupName"),
|
||||
"iops": self._get_int_param("Iops"),
|
||||
# OptionGroupName
|
||||
"port": self._get_param('Port'),
|
||||
"port": self._get_param("Port"),
|
||||
"publicly_accessible": self._get_param("PubliclyAccessible"),
|
||||
"source_db_identifier": self._get_param('SourceDBInstanceIdentifier'),
|
||||
"source_db_identifier": self._get_param("SourceDBInstanceIdentifier"),
|
||||
"storage_type": self._get_param("StorageType"),
|
||||
}
|
||||
|
||||
def _get_option_group_kwargs(self):
|
||||
return {
|
||||
'major_engine_version': self._get_param('MajorEngineVersion'),
|
||||
'description': self._get_param('OptionGroupDescription'),
|
||||
'engine_name': self._get_param('EngineName'),
|
||||
'name': self._get_param('OptionGroupName')
|
||||
"major_engine_version": self._get_param("MajorEngineVersion"),
|
||||
"description": self._get_param("OptionGroupDescription"),
|
||||
"engine_name": self._get_param("EngineName"),
|
||||
"name": self._get_param("OptionGroupName"),
|
||||
}
|
||||
|
||||
def _get_db_parameter_group_kwargs(self):
|
||||
return {
|
||||
'description': self._get_param('Description'),
|
||||
'family': self._get_param('DBParameterGroupFamily'),
|
||||
'name': self._get_param('DBParameterGroupName'),
|
||||
'tags': self.unpack_complex_list_params('Tags.Tag', ('Key', 'Value')),
|
||||
"description": self._get_param("Description"),
|
||||
"family": self._get_param("DBParameterGroupFamily"),
|
||||
"name": self._get_param("DBParameterGroupName"),
|
||||
"tags": self.unpack_complex_list_params("Tags.Tag", ("Key", "Value")),
|
||||
}
|
||||
|
||||
def unpack_complex_list_params(self, label, names):
|
||||
unpacked_list = list()
|
||||
count = 1
|
||||
while self._get_param('{0}.{1}.{2}'.format(label, count, names[0])):
|
||||
while self._get_param("{0}.{1}.{2}".format(label, count, names[0])):
|
||||
param = dict()
|
||||
for i in range(len(names)):
|
||||
param[names[i]] = self._get_param(
|
||||
'{0}.{1}.{2}'.format(label, count, names[i]))
|
||||
"{0}.{1}.{2}".format(label, count, names[i])
|
||||
)
|
||||
unpacked_list.append(param)
|
||||
count += 1
|
||||
return unpacked_list
|
||||
|
|
@ -96,9 +99,8 @@ class RDS2Response(BaseResponse):
|
|||
def unpack_list_params(self, label):
|
||||
unpacked_list = list()
|
||||
count = 1
|
||||
while self._get_param('{0}.{1}'.format(label, count)):
|
||||
unpacked_list.append(self._get_param(
|
||||
'{0}.{1}'.format(label, count)))
|
||||
while self._get_param("{0}.{1}".format(label, count)):
|
||||
unpacked_list.append(self._get_param("{0}.{1}".format(label, count)))
|
||||
count += 1
|
||||
return unpacked_list
|
||||
|
||||
|
|
@ -116,16 +118,18 @@ class RDS2Response(BaseResponse):
|
|||
return template.render(database=database)
|
||||
|
||||
def describe_db_instances(self):
|
||||
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
||||
db_instance_identifier = self._get_param("DBInstanceIdentifier")
|
||||
all_instances = list(self.backend.describe_databases(db_instance_identifier))
|
||||
marker = self._get_param('Marker')
|
||||
marker = self._get_param("Marker")
|
||||
all_ids = [instance.db_instance_identifier for instance in all_instances]
|
||||
if marker:
|
||||
start = all_ids.index(marker) + 1
|
||||
else:
|
||||
start = 0
|
||||
page_size = self._get_int_param('MaxRecords', 50) # the default is 100, but using 50 to make testing easier
|
||||
instances_resp = all_instances[start:start + page_size]
|
||||
page_size = self._get_int_param(
|
||||
"MaxRecords", 50
|
||||
) # the default is 100, but using 50 to make testing easier
|
||||
instances_resp = all_instances[start : start + page_size]
|
||||
next_marker = None
|
||||
if len(all_instances) > start + page_size:
|
||||
next_marker = instances_resp[-1].db_instance_identifier
|
||||
|
|
@ -134,134 +138,143 @@ class RDS2Response(BaseResponse):
|
|||
return template.render(databases=instances_resp, marker=next_marker)
|
||||
|
||||
def modify_db_instance(self):
|
||||
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
||||
db_instance_identifier = self._get_param("DBInstanceIdentifier")
|
||||
db_kwargs = self._get_db_kwargs()
|
||||
new_db_instance_identifier = self._get_param('NewDBInstanceIdentifier')
|
||||
new_db_instance_identifier = self._get_param("NewDBInstanceIdentifier")
|
||||
if new_db_instance_identifier:
|
||||
db_kwargs['new_db_instance_identifier'] = new_db_instance_identifier
|
||||
database = self.backend.modify_database(
|
||||
db_instance_identifier, db_kwargs)
|
||||
db_kwargs["new_db_instance_identifier"] = new_db_instance_identifier
|
||||
database = self.backend.modify_database(db_instance_identifier, db_kwargs)
|
||||
template = self.response_template(MODIFY_DATABASE_TEMPLATE)
|
||||
return template.render(database=database)
|
||||
|
||||
def delete_db_instance(self):
|
||||
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
||||
db_snapshot_name = self._get_param('FinalDBSnapshotIdentifier')
|
||||
database = self.backend.delete_database(db_instance_identifier, db_snapshot_name)
|
||||
db_instance_identifier = self._get_param("DBInstanceIdentifier")
|
||||
db_snapshot_name = self._get_param("FinalDBSnapshotIdentifier")
|
||||
database = self.backend.delete_database(
|
||||
db_instance_identifier, db_snapshot_name
|
||||
)
|
||||
template = self.response_template(DELETE_DATABASE_TEMPLATE)
|
||||
return template.render(database=database)
|
||||
|
||||
def reboot_db_instance(self):
|
||||
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
||||
db_instance_identifier = self._get_param("DBInstanceIdentifier")
|
||||
database = self.backend.reboot_db_instance(db_instance_identifier)
|
||||
template = self.response_template(REBOOT_DATABASE_TEMPLATE)
|
||||
return template.render(database=database)
|
||||
|
||||
def create_db_snapshot(self):
|
||||
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
||||
db_snapshot_identifier = self._get_param('DBSnapshotIdentifier')
|
||||
tags = self.unpack_complex_list_params('Tags.Tag', ('Key', 'Value'))
|
||||
snapshot = self.backend.create_snapshot(db_instance_identifier, db_snapshot_identifier, tags)
|
||||
db_instance_identifier = self._get_param("DBInstanceIdentifier")
|
||||
db_snapshot_identifier = self._get_param("DBSnapshotIdentifier")
|
||||
tags = self.unpack_complex_list_params("Tags.Tag", ("Key", "Value"))
|
||||
snapshot = self.backend.create_snapshot(
|
||||
db_instance_identifier, db_snapshot_identifier, tags
|
||||
)
|
||||
template = self.response_template(CREATE_SNAPSHOT_TEMPLATE)
|
||||
return template.render(snapshot=snapshot)
|
||||
|
||||
def describe_db_snapshots(self):
|
||||
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
||||
db_snapshot_identifier = self._get_param('DBSnapshotIdentifier')
|
||||
snapshots = self.backend.describe_snapshots(db_instance_identifier, db_snapshot_identifier)
|
||||
db_instance_identifier = self._get_param("DBInstanceIdentifier")
|
||||
db_snapshot_identifier = self._get_param("DBSnapshotIdentifier")
|
||||
snapshots = self.backend.describe_snapshots(
|
||||
db_instance_identifier, db_snapshot_identifier
|
||||
)
|
||||
template = self.response_template(DESCRIBE_SNAPSHOTS_TEMPLATE)
|
||||
return template.render(snapshots=snapshots)
|
||||
|
||||
def delete_db_snapshot(self):
|
||||
db_snapshot_identifier = self._get_param('DBSnapshotIdentifier')
|
||||
db_snapshot_identifier = self._get_param("DBSnapshotIdentifier")
|
||||
snapshot = self.backend.delete_snapshot(db_snapshot_identifier)
|
||||
template = self.response_template(DELETE_SNAPSHOT_TEMPLATE)
|
||||
return template.render(snapshot=snapshot)
|
||||
|
||||
def list_tags_for_resource(self):
|
||||
arn = self._get_param('ResourceName')
|
||||
arn = self._get_param("ResourceName")
|
||||
template = self.response_template(LIST_TAGS_FOR_RESOURCE_TEMPLATE)
|
||||
tags = self.backend.list_tags_for_resource(arn)
|
||||
return template.render(tags=tags)
|
||||
|
||||
def add_tags_to_resource(self):
|
||||
arn = self._get_param('ResourceName')
|
||||
tags = self.unpack_complex_list_params('Tags.Tag', ('Key', 'Value'))
|
||||
arn = self._get_param("ResourceName")
|
||||
tags = self.unpack_complex_list_params("Tags.Tag", ("Key", "Value"))
|
||||
tags = self.backend.add_tags_to_resource(arn, tags)
|
||||
template = self.response_template(ADD_TAGS_TO_RESOURCE_TEMPLATE)
|
||||
return template.render(tags=tags)
|
||||
|
||||
def remove_tags_from_resource(self):
|
||||
arn = self._get_param('ResourceName')
|
||||
tag_keys = self.unpack_list_params('TagKeys.member')
|
||||
arn = self._get_param("ResourceName")
|
||||
tag_keys = self.unpack_list_params("TagKeys.member")
|
||||
self.backend.remove_tags_from_resource(arn, tag_keys)
|
||||
template = self.response_template(REMOVE_TAGS_FROM_RESOURCE_TEMPLATE)
|
||||
return template.render()
|
||||
|
||||
def stop_db_instance(self):
|
||||
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
||||
db_snapshot_identifier = self._get_param('DBSnapshotIdentifier')
|
||||
database = self.backend.stop_database(db_instance_identifier, db_snapshot_identifier)
|
||||
db_instance_identifier = self._get_param("DBInstanceIdentifier")
|
||||
db_snapshot_identifier = self._get_param("DBSnapshotIdentifier")
|
||||
database = self.backend.stop_database(
|
||||
db_instance_identifier, db_snapshot_identifier
|
||||
)
|
||||
template = self.response_template(STOP_DATABASE_TEMPLATE)
|
||||
return template.render(database=database)
|
||||
|
||||
def start_db_instance(self):
|
||||
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
||||
db_instance_identifier = self._get_param("DBInstanceIdentifier")
|
||||
database = self.backend.start_database(db_instance_identifier)
|
||||
template = self.response_template(START_DATABASE_TEMPLATE)
|
||||
return template.render(database=database)
|
||||
|
||||
def create_db_security_group(self):
|
||||
group_name = self._get_param('DBSecurityGroupName')
|
||||
description = self._get_param('DBSecurityGroupDescription')
|
||||
tags = self.unpack_complex_list_params('Tags.Tag', ('Key', 'Value'))
|
||||
group_name = self._get_param("DBSecurityGroupName")
|
||||
description = self._get_param("DBSecurityGroupDescription")
|
||||
tags = self.unpack_complex_list_params("Tags.Tag", ("Key", "Value"))
|
||||
security_group = self.backend.create_security_group(
|
||||
group_name, description, tags)
|
||||
group_name, description, tags
|
||||
)
|
||||
template = self.response_template(CREATE_SECURITY_GROUP_TEMPLATE)
|
||||
return template.render(security_group=security_group)
|
||||
|
||||
def describe_db_security_groups(self):
|
||||
security_group_name = self._get_param('DBSecurityGroupName')
|
||||
security_groups = self.backend.describe_security_groups(
|
||||
security_group_name)
|
||||
security_group_name = self._get_param("DBSecurityGroupName")
|
||||
security_groups = self.backend.describe_security_groups(security_group_name)
|
||||
template = self.response_template(DESCRIBE_SECURITY_GROUPS_TEMPLATE)
|
||||
return template.render(security_groups=security_groups)
|
||||
|
||||
def delete_db_security_group(self):
|
||||
security_group_name = self._get_param('DBSecurityGroupName')
|
||||
security_group = self.backend.delete_security_group(
|
||||
security_group_name)
|
||||
security_group_name = self._get_param("DBSecurityGroupName")
|
||||
security_group = self.backend.delete_security_group(security_group_name)
|
||||
template = self.response_template(DELETE_SECURITY_GROUP_TEMPLATE)
|
||||
return template.render(security_group=security_group)
|
||||
|
||||
def authorize_db_security_group_ingress(self):
|
||||
security_group_name = self._get_param('DBSecurityGroupName')
|
||||
cidr_ip = self._get_param('CIDRIP')
|
||||
security_group_name = self._get_param("DBSecurityGroupName")
|
||||
cidr_ip = self._get_param("CIDRIP")
|
||||
security_group = self.backend.authorize_security_group(
|
||||
security_group_name, cidr_ip)
|
||||
security_group_name, cidr_ip
|
||||
)
|
||||
template = self.response_template(AUTHORIZE_SECURITY_GROUP_TEMPLATE)
|
||||
return template.render(security_group=security_group)
|
||||
|
||||
def create_db_subnet_group(self):
|
||||
subnet_name = self._get_param('DBSubnetGroupName')
|
||||
description = self._get_param('DBSubnetGroupDescription')
|
||||
subnet_ids = self._get_multi_param('SubnetIds.SubnetIdentifier')
|
||||
tags = self.unpack_complex_list_params('Tags.Tag', ('Key', 'Value'))
|
||||
subnets = [ec2_backends[self.region].get_subnet(
|
||||
subnet_id) for subnet_id in subnet_ids]
|
||||
subnet_name = self._get_param("DBSubnetGroupName")
|
||||
description = self._get_param("DBSubnetGroupDescription")
|
||||
subnet_ids = self._get_multi_param("SubnetIds.SubnetIdentifier")
|
||||
tags = self.unpack_complex_list_params("Tags.Tag", ("Key", "Value"))
|
||||
subnets = [
|
||||
ec2_backends[self.region].get_subnet(subnet_id) for subnet_id in subnet_ids
|
||||
]
|
||||
subnet_group = self.backend.create_subnet_group(
|
||||
subnet_name, description, subnets, tags)
|
||||
subnet_name, description, subnets, tags
|
||||
)
|
||||
template = self.response_template(CREATE_SUBNET_GROUP_TEMPLATE)
|
||||
return template.render(subnet_group=subnet_group)
|
||||
|
||||
def describe_db_subnet_groups(self):
|
||||
subnet_name = self._get_param('DBSubnetGroupName')
|
||||
subnet_name = self._get_param("DBSubnetGroupName")
|
||||
subnet_groups = self.backend.describe_subnet_groups(subnet_name)
|
||||
template = self.response_template(DESCRIBE_SUBNET_GROUPS_TEMPLATE)
|
||||
return template.render(subnet_groups=subnet_groups)
|
||||
|
||||
def delete_db_subnet_group(self):
|
||||
subnet_name = self._get_param('DBSubnetGroupName')
|
||||
subnet_name = self._get_param("DBSubnetGroupName")
|
||||
subnet_group = self.backend.delete_subnet_group(subnet_name)
|
||||
template = self.response_template(DELETE_SUBNET_GROUP_TEMPLATE)
|
||||
return template.render(subnet_group=subnet_group)
|
||||
|
|
@ -274,50 +287,67 @@ class RDS2Response(BaseResponse):
|
|||
|
||||
def delete_option_group(self):
|
||||
kwargs = self._get_option_group_kwargs()
|
||||
option_group = self.backend.delete_option_group(kwargs['name'])
|
||||
option_group = self.backend.delete_option_group(kwargs["name"])
|
||||
template = self.response_template(DELETE_OPTION_GROUP_TEMPLATE)
|
||||
return template.render(option_group=option_group)
|
||||
|
||||
def describe_option_groups(self):
|
||||
kwargs = self._get_option_group_kwargs()
|
||||
kwargs['max_records'] = self._get_int_param('MaxRecords')
|
||||
kwargs['marker'] = self._get_param('Marker')
|
||||
kwargs["max_records"] = self._get_int_param("MaxRecords")
|
||||
kwargs["marker"] = self._get_param("Marker")
|
||||
option_groups = self.backend.describe_option_groups(kwargs)
|
||||
template = self.response_template(DESCRIBE_OPTION_GROUP_TEMPLATE)
|
||||
return template.render(option_groups=option_groups)
|
||||
|
||||
def describe_option_group_options(self):
|
||||
engine_name = self._get_param('EngineName')
|
||||
major_engine_version = self._get_param('MajorEngineVersion')
|
||||
engine_name = self._get_param("EngineName")
|
||||
major_engine_version = self._get_param("MajorEngineVersion")
|
||||
option_group_options = self.backend.describe_option_group_options(
|
||||
engine_name, major_engine_version)
|
||||
engine_name, major_engine_version
|
||||
)
|
||||
return option_group_options
|
||||
|
||||
def modify_option_group(self):
|
||||
option_group_name = self._get_param('OptionGroupName')
|
||||
option_group_name = self._get_param("OptionGroupName")
|
||||
count = 1
|
||||
options_to_include = []
|
||||
while self._get_param('OptionsToInclude.member.{0}.OptionName'.format(count)):
|
||||
options_to_include.append({
|
||||
'Port': self._get_param('OptionsToInclude.member.{0}.Port'.format(count)),
|
||||
'OptionName': self._get_param('OptionsToInclude.member.{0}.OptionName'.format(count)),
|
||||
'DBSecurityGroupMemberships': self._get_param('OptionsToInclude.member.{0}.DBSecurityGroupMemberships'.format(count)),
|
||||
'OptionSettings': self._get_param('OptionsToInclude.member.{0}.OptionSettings'.format(count)),
|
||||
'VpcSecurityGroupMemberships': self._get_param('OptionsToInclude.member.{0}.VpcSecurityGroupMemberships'.format(count))
|
||||
})
|
||||
while self._get_param("OptionsToInclude.member.{0}.OptionName".format(count)):
|
||||
options_to_include.append(
|
||||
{
|
||||
"Port": self._get_param(
|
||||
"OptionsToInclude.member.{0}.Port".format(count)
|
||||
),
|
||||
"OptionName": self._get_param(
|
||||
"OptionsToInclude.member.{0}.OptionName".format(count)
|
||||
),
|
||||
"DBSecurityGroupMemberships": self._get_param(
|
||||
"OptionsToInclude.member.{0}.DBSecurityGroupMemberships".format(
|
||||
count
|
||||
)
|
||||
),
|
||||
"OptionSettings": self._get_param(
|
||||
"OptionsToInclude.member.{0}.OptionSettings".format(count)
|
||||
),
|
||||
"VpcSecurityGroupMemberships": self._get_param(
|
||||
"OptionsToInclude.member.{0}.VpcSecurityGroupMemberships".format(
|
||||
count
|
||||
)
|
||||
),
|
||||
}
|
||||
)
|
||||
count += 1
|
||||
|
||||
count = 1
|
||||
options_to_remove = []
|
||||
while self._get_param('OptionsToRemove.member.{0}'.format(count)):
|
||||
options_to_remove.append(self._get_param(
|
||||
'OptionsToRemove.member.{0}'.format(count)))
|
||||
while self._get_param("OptionsToRemove.member.{0}".format(count)):
|
||||
options_to_remove.append(
|
||||
self._get_param("OptionsToRemove.member.{0}".format(count))
|
||||
)
|
||||
count += 1
|
||||
apply_immediately = self._get_param('ApplyImmediately')
|
||||
option_group = self.backend.modify_option_group(option_group_name,
|
||||
options_to_include,
|
||||
options_to_remove,
|
||||
apply_immediately)
|
||||
apply_immediately = self._get_param("ApplyImmediately")
|
||||
option_group = self.backend.modify_option_group(
|
||||
option_group_name, options_to_include, options_to_remove, apply_immediately
|
||||
)
|
||||
template = self.response_template(MODIFY_OPTION_GROUP_TEMPLATE)
|
||||
return template.render(option_group=option_group)
|
||||
|
||||
|
|
@ -329,28 +359,28 @@ class RDS2Response(BaseResponse):
|
|||
|
||||
def describe_db_parameter_groups(self):
|
||||
kwargs = self._get_db_parameter_group_kwargs()
|
||||
kwargs['max_records'] = self._get_int_param('MaxRecords')
|
||||
kwargs['marker'] = self._get_param('Marker')
|
||||
kwargs["max_records"] = self._get_int_param("MaxRecords")
|
||||
kwargs["marker"] = self._get_param("Marker")
|
||||
db_parameter_groups = self.backend.describe_db_parameter_groups(kwargs)
|
||||
template = self.response_template(
|
||||
DESCRIBE_DB_PARAMETER_GROUPS_TEMPLATE)
|
||||
template = self.response_template(DESCRIBE_DB_PARAMETER_GROUPS_TEMPLATE)
|
||||
return template.render(db_parameter_groups=db_parameter_groups)
|
||||
|
||||
def modify_db_parameter_group(self):
|
||||
db_parameter_group_name = self._get_param('DBParameterGroupName')
|
||||
db_parameter_group_name = self._get_param("DBParameterGroupName")
|
||||
db_parameter_group_parameters = self._get_db_parameter_group_paramters()
|
||||
db_parameter_group = self.backend.modify_db_parameter_group(db_parameter_group_name,
|
||||
db_parameter_group_parameters)
|
||||
db_parameter_group = self.backend.modify_db_parameter_group(
|
||||
db_parameter_group_name, db_parameter_group_parameters
|
||||
)
|
||||
template = self.response_template(MODIFY_DB_PARAMETER_GROUP_TEMPLATE)
|
||||
return template.render(db_parameter_group=db_parameter_group)
|
||||
|
||||
def _get_db_parameter_group_paramters(self):
|
||||
parameter_group_parameters = defaultdict(dict)
|
||||
for param_name, value in self.querystring.items():
|
||||
if not param_name.startswith('Parameters.Parameter'):
|
||||
if not param_name.startswith("Parameters.Parameter"):
|
||||
continue
|
||||
|
||||
split_param_name = param_name.split('.')
|
||||
split_param_name = param_name.split(".")
|
||||
param_id = split_param_name[2]
|
||||
param_setting = split_param_name[3]
|
||||
|
||||
|
|
@ -359,9 +389,10 @@ class RDS2Response(BaseResponse):
|
|||
return parameter_group_parameters.values()
|
||||
|
||||
def describe_db_parameters(self):
|
||||
db_parameter_group_name = self._get_param('DBParameterGroupName')
|
||||
db_parameter_group_name = self._get_param("DBParameterGroupName")
|
||||
db_parameter_groups = self.backend.describe_db_parameter_groups(
|
||||
{'name': db_parameter_group_name})
|
||||
{"name": db_parameter_group_name}
|
||||
)
|
||||
if not db_parameter_groups:
|
||||
raise DBParameterGroupNotFoundError(db_parameter_group_name)
|
||||
|
||||
|
|
@ -370,8 +401,7 @@ class RDS2Response(BaseResponse):
|
|||
|
||||
def delete_db_parameter_group(self):
|
||||
kwargs = self._get_db_parameter_group_kwargs()
|
||||
db_parameter_group = self.backend.delete_db_parameter_group(kwargs[
|
||||
'name'])
|
||||
db_parameter_group = self.backend.delete_db_parameter_group(kwargs["name"])
|
||||
template = self.response_template(DELETE_DB_PARAMETER_GROUP_TEMPLATE)
|
||||
return template.render(db_parameter_group=db_parameter_group)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,6 @@
|
|||
from __future__ import unicode_literals
|
||||
from .responses import RDS2Response
|
||||
|
||||
url_bases = [
|
||||
"https?://rds.(.+).amazonaws.com",
|
||||
"https?://rds.amazonaws.com",
|
||||
]
|
||||
url_bases = ["https?://rds.(.+).amazonaws.com", "https?://rds.amazonaws.com"]
|
||||
|
||||
url_paths = {
|
||||
'{0}/$': RDS2Response.dispatch,
|
||||
}
|
||||
url_paths = {"{0}/$": RDS2Response.dispatch}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue