Class: EY::Backup::Backend
- Inherits:
-
Object
- Object
- EY::Backup::Backend
- Extended by:
- Logging
- Includes:
- Logging
- Defined in:
- lib/ey_backup/backend.rb
Instance Attribute Summary collapse
-
#bucket_minder ⇒ Object
readonly
Returns the value of attribute bucket_minder.
Instance Method Summary collapse
-
#initialize(secret_id, secret_key, region, bucket_name) ⇒ Backend
constructor
A new instance of Backend.
- #start_upload(filenames, environment_name, database_name) ⇒ Object
Constructor Details
#initialize(secret_id, secret_key, region, bucket_name) ⇒ Backend
Returns a new instance of Backend.
9 10 11 |
# File 'lib/ey_backup/backend.rb', line 9 def initialize(secret_id, secret_key, region, bucket_name) @bucket_minder = EY::BucketMinder.new(secret_id, secret_key, bucket_name, region) end |
Instance Attribute Details
#bucket_minder ⇒ Object (readonly)
Returns the value of attribute bucket_minder.
12 13 14 |
# File 'lib/ey_backup/backend.rb', line 12 def bucket_minder @bucket_minder end |
Instance Method Details
#start_upload(filenames, environment_name, database_name) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/ey_backup/backend.rb', line 14 def start_upload(filenames, environment_name, database_name) filenames.each do |filename| begin object_name = File.join("#{environment_name}.#{database_name}", "#{File.basename(filename)}") info "Starting upload: #{filename}" @bucket_minder.put(object_name, File.open(filename, 'r')) info "Successful upload: #{filename}" rescue => e retries ||= 5 retries -= 1 # remove partial or failed uploads @bucket_minder.remove_object(object_name) raise e if retries == 0 warn "retrying upload of #{filename}. Got: #{e.inspect}" retry end end end |