1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00

copy db snapshot api implementation

This commit is contained in:
David Vaz 2016-06-30 12:27:08 +05:30
parent fd48293a43
commit a3f7b74181
2 changed files with 54 additions and 0 deletions

View file

@ -30,6 +30,7 @@ module Fog
request :create_db_snapshot
request :delete_db_snapshot
request :modify_db_snapshot_attribute
request :copy_db_snapshot
request :create_db_parameter_group
request :delete_db_parameter_group

View file

@ -0,0 +1,53 @@
module Fog
module AWS
class RDS
class Real
require 'fog/aws/parsers/rds/create_db_snapshot'
# Copy a db snapshot
#
# ==== Parameters
# * source_db_snapshot_identifier<~String> - Id of db snapshot
# * target_db_snapshot_identifier<~String> - Desired Id of the db snapshot copy
# * 'copy_tags'<~Boolean> - true to copy all tags from the source DB snapshot to the target DB snapshot; otherwise false.
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
#
# {Amazon API Reference}[http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBSnapshot.html]
def copy_db_snapshot(source_db_snapshot_identifier, target_db_snapshot_identifier, copy_tags = false)
request(
'Action' => 'CopyDBSnapshot',
'SourceDBSnapshotIdentifier' => source_db_snapshot_identifier,
'TargetDBSnapshotIdentifier' => target_db_snapshot_identifier,
'CopyTags' => copy_tags,
:parser => Fog::Parsers::AWS::RDS::CreateDBSnapshot.new
)
end
end
class Mock
#
# Usage
#
# Fog::AWS[:rds].copy_db_snapshot("snap-original-id", "snap-backup-id", true)
#
def copy_db_snapshot(source_db_snapshot_identifier, target_db_snapshot_identifier, copy_tags = false)
response = Excon::Response.new
response.status = 200
snapshot_id = Fog::AWS::Mock.snapshot_id
data = {
'snapshotId' => snapshot_id,
}
self.data[:snapshots][snapshot_id] = data
response.body = {
'requestId' => Fog::AWS::Mock.request_id
}.merge!(data)
response
end
end
end
end
end