Class: EY::InstanceAPIServer::Backups::ExampleCallback
- Inherits:
-
Abstract::ExampleCallback
- Object
- Abstract::ExampleCallback
- EY::InstanceAPIServer::Backups::ExampleCallback
- Defined in:
- lib/ey_instance_api_server/backups/example_callback.rb
Instance Attribute Summary
Attributes inherited from Abstract::ExampleCallback
Instance Method Summary collapse
- #add_database(instance_id, database_id) ⇒ Object
- #backups_for(instance_id, database_id) ⇒ Object
- #download_url_for(backup_id, part) ⇒ Object
- #finish_backup_for(instance_id, database_id, backup_id) ⇒ Object
- #list_backups_for(instance_id, database_id) ⇒ Object
- #start_backup_for(instance_id, database_id, extension, part_count) ⇒ Object
- #upload_url_for(backup_id, part) ⇒ Object
Methods inherited from Abstract::ExampleCallback
#add_instance, #initialize, #token_for
Constructor Details
This class inherits a constructor from EY::InstanceAPIServer::Abstract::ExampleCallback
Instance Method Details
#add_database(instance_id, database_id) ⇒ Object
64 65 66 |
# File 'lib/ey_instance_api_server/backups/example_callback.rb', line 64 def add_database(instance_id, database_id) @instances[instance_id][database_id] ||= {} end |
#backups_for(instance_id, database_id) ⇒ Object
60 61 62 |
# File 'lib/ey_instance_api_server/backups/example_callback.rb', line 60 def backups_for(instance_id, database_id) @instances[instance_id][database_id] end |
#download_url_for(backup_id, part) ⇒ Object
56 57 58 |
# File 'lib/ey_instance_api_server/backups/example_callback.rb', line 56 def download_url_for(backup_id, part) "http://s3/GET/something/#{part}" end |
#finish_backup_for(instance_id, database_id, backup_id) ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/ey_instance_api_server/backups/example_callback.rb', line 47 def finish_backup_for(instance_id, database_id, backup_id) backups = backups_for(instance_id, database_id) if backup_hash = backups[backup_id] unless backup_hash[:complete] backup_hash[:complete] = true end end end |
#list_backups_for(instance_id, database_id) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/ey_instance_api_server/backups/example_callback.rb', line 7 def list_backups_for(instance_id, database_id) if backups_hash = backups_for(instance_id, database_id) backups = [] backups_hash.map do |backup_id,backup_hash| extension = backup_hash[:extension] if backup_hash[:complete] download_urls = [] backup_hash[:part_count].times do |part| download_urls << download_url_for(backup_id, part) end backups << EY::InstanceAPIServer.finished_backup(backup_id, database_id, extension, download_urls, Time.now - 1, Time.now) else backups << EY::InstanceAPIServer.pending_backup(backup_id, database_id, extension, Time.now) end end backups end end |
#start_backup_for(instance_id, database_id, extension, part_count) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ey_instance_api_server/backups/example_callback.rb', line 26 def start_backup_for(instance_id, database_id, extension, part_count) if backups = backups_for(instance_id, database_id) backup_id = backups.size.to_s upload_urls = [] part_count = Integer(part_count) part_count.times do |part| upload_urls << upload_url_for(backup_id, part) end backup = EY::InstanceAPIServer.started_backup(backup_id, database_id, extension, upload_urls, Time.now) backups[backup_id] = { :extension => extension, :part_count => part_count } backup end end |
#upload_url_for(backup_id, part) ⇒ Object
43 44 45 |
# File 'lib/ey_instance_api_server/backups/example_callback.rb', line 43 def upload_url_for(backup_id, part) "http://s3/PUT/something/#{part}" end |