Implementing snapshots on rds delete
This commit is contained in:
parent
ccb4ffde7c
commit
fb2efb1c6d
@ -114,7 +114,8 @@ class RDSResponse(BaseResponse):
|
|||||||
|
|
||||||
def delete_db_instance(self):
|
def delete_db_instance(self):
|
||||||
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
db_instance_identifier = self._get_param('DBInstanceIdentifier')
|
||||||
database = self.backend.delete_database(db_instance_identifier)
|
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)
|
template = self.response_template(DELETE_DATABASE_TEMPLATE)
|
||||||
return template.render(database=database)
|
return template.render(database=database)
|
||||||
|
|
||||||
|
@ -403,10 +403,10 @@ class Database(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class Snapshot(BaseModel):
|
class Snapshot(BaseModel):
|
||||||
def __init__(self, database, snapshot_id, tags):
|
def __init__(self, database, snapshot_id, tags=None):
|
||||||
self.database = database
|
self.database = database
|
||||||
self.snapshot_id = snapshot_id
|
self.snapshot_id = snapshot_id
|
||||||
self.tags = tags
|
self.tags = tags or []
|
||||||
self.created_at = iso_8601_datetime_with_milliseconds(datetime.datetime.now())
|
self.created_at = iso_8601_datetime_with_milliseconds(datetime.datetime.now())
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -746,13 +746,15 @@ class RDS2Backend(BaseBackend):
|
|||||||
|
|
||||||
return backend.describe_databases(db_name)[0]
|
return backend.describe_databases(db_name)[0]
|
||||||
|
|
||||||
def delete_database(self, db_instance_identifier):
|
def delete_database(self, db_instance_identifier, db_snapshot_name):
|
||||||
if db_instance_identifier in self.databases:
|
if db_instance_identifier in self.databases:
|
||||||
database = self.databases.pop(db_instance_identifier)
|
database = self.databases.pop(db_instance_identifier)
|
||||||
if database.is_replica:
|
if database.is_replica:
|
||||||
primary = self.find_db_from_id(database.source_db_identifier)
|
primary = self.find_db_from_id(database.source_db_identifier)
|
||||||
primary.remove_replica(database)
|
primary.remove_replica(database)
|
||||||
database.status = 'deleting'
|
database.status = 'deleting'
|
||||||
|
if db_snapshot_name:
|
||||||
|
self.snapshots[db_snapshot_name] = Snapshot(database, db_snapshot_name)
|
||||||
return database
|
return database
|
||||||
else:
|
else:
|
||||||
raise DBInstanceNotFoundError(db_instance_identifier)
|
raise DBInstanceNotFoundError(db_instance_identifier)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user