def delete_db_instance(identifier, snapshot_identifier, skip_snapshot = false)
response = Excon::Response.new
server_set = self.data[:servers][identifier] ||
raise(Fog::AWS::RDS::NotFound.new("DBInstance #{identifier} not found"))
unless skip_snapshot
if server_set["ReadReplicaSourceDBInstanceIdentifier"]
raise Fog::AWS::RDS::Error.new("InvalidParameterCombination => FinalDBSnapshotIdentifier can not be specified when deleting a replica instance")
elsif server_set["DBClusterIdentifier"] && snapshot_identifier
raise Fog::AWS::RDS::Error.new("InvalidParameterCombination => FinalDBSnapshotIdentifier can not be specified when deleting a cluster instance")
elsif server_set["DBClusterIdentifier"] && !snapshot_identifier && !skip_snapshot
else
create_db_snapshot(identifier, snapshot_identifier)
end
end
cluster = self.data[:clusters].values.detect { |c| c["DBClusterMembers"].any? { |m| m["DBInstanceIdentifier"] == identifier } }
if cluster
cluster["DBClusterMembers"].delete_if { |v| v["DBInstanceIdentifier"] == identifier }
self.data[:clusters][cluster["DBClusterIdentifier"]] = cluster
end
self.data[:servers].delete(identifier)
response.status = 200
response.body = {
"ResponseMetadata" => { "RequestId" => Fog::AWS::Mock.request_id },
"DeleteDBInstanceResult" => { "DBInstance" => server_set }
}
response
end