mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
55 lines
2.1 KiB
Ruby
55 lines
2.1 KiB
Ruby
module Fog
|
|
module AWS
|
|
class RDS
|
|
class Real
|
|
require 'fog/aws/parsers/rds/delete_db_cluster'
|
|
|
|
# delete a database cluster
|
|
#
|
|
# @see http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBCluster.html
|
|
#
|
|
# ==== Parameters ====
|
|
# * DBClusterIdentifier <~String> - The DB cluster identifier for the DB cluster to be deleted
|
|
# * FinalDBSnapshotIdentifier <~String> - The DB cluster snapshot identifier of the new DB cluster snapshot created when SkipFinalSnapshot is set to false
|
|
# * SkipFinalSnapshot <~Boolean> - Determines whether a final DB cluster snapshot is created before the DB cluster is deleted
|
|
#
|
|
# ==== Returns ====
|
|
# * response<~Excon::Response>
|
|
# * body<~Hash>
|
|
|
|
def delete_db_cluster(identifier, snapshot_identifier, skip_snapshot = false)
|
|
params = {}
|
|
params["FinalDBSnapshotIdentifier"] = snapshot_identifier if snapshot_identifier
|
|
request({
|
|
'Action' => 'DeleteDBCluster',
|
|
'DBClusterIdentifier' => identifier,
|
|
'SkipFinalSnapshot' => skip_snapshot,
|
|
}.merge(params))
|
|
end
|
|
end
|
|
|
|
class Mock
|
|
def delete_db_cluster(identifier, snapshot_identifier, skip_snapshot = false)
|
|
response = Excon::Response.new
|
|
|
|
cluster = self.data[:clusters][identifier] || raise(Fog::AWS::RDS::NotFound.new("DBCluster #{identifier} not found"))
|
|
|
|
raise Fog::AWS::RDS::Error.new("InvalidDBClusterStateFault => Cluster cannot be deleted, it still contains DB instances in non-deleting state.") if cluster["DBClusterMembers"].any?
|
|
|
|
unless skip_snapshot
|
|
create_db_cluster_snapshot(identifier, snapshot_identifier)
|
|
end
|
|
|
|
self.data[:clusters].delete(identifier)
|
|
|
|
response.status = 200
|
|
response.body = {
|
|
"ResponseMetadata" => { "RequestId" => Fog::AWS::Mock.request_id },
|
|
"DeleteDBClusterResult" => { "DBCluster" => cluster}
|
|
}
|
|
response
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|