Class: Acquia::Cloud::DatabaseBackup
- Includes:
- Operations::Delete
- Defined in:
- lib/acquia/cloud/database_backup.rb
Instance Attribute Summary
Attributes inherited from Entity
Instance Method Summary collapse
- #checksum ⇒ Object
- #completed ⇒ Object
- #completed? ⇒ Boolean
- #deleted? ⇒ Boolean
- #download(&block) ⇒ Object
- #download_to(path, &block) ⇒ Object
- #id ⇒ Object
-
#initialize(cloud, site, environment, database, backup) ⇒ DatabaseBackup
constructor
A new instance of DatabaseBackup.
- #link ⇒ Object
- #name ⇒ Object
- #path ⇒ Object
- #started ⇒ Object
- #type ⇒ Object
Methods included from Operations::Delete
Methods inherited from Entity
Constructor Details
#initialize(cloud, site, environment, database, backup) ⇒ DatabaseBackup
Returns a new instance of DatabaseBackup.
10 11 12 13 14 15 16 17 |
# File 'lib/acquia/cloud/database_backup.rb', line 10 def initialize(cloud, site, environment, database, backup) @cloud = cloud @site = site @environment = environment @database = database @data = backup @url = "/sites/#{@site}/envs/#{@environment}/dbs/#{@database}/backups/#{data['id']}" end |
Instance Method Details
#checksum ⇒ Object
23 24 25 |
# File 'lib/acquia/cloud/database_backup.rb', line 23 def checksum data['checksum'] end |
#completed ⇒ Object
43 44 45 |
# File 'lib/acquia/cloud/database_backup.rb', line 43 def completed Time.at(data['completed'].to_i) end |
#completed? ⇒ Boolean
47 48 49 |
# File 'lib/acquia/cloud/database_backup.rb', line 47 def completed? !data['completed'].to_i.zero? end |
#deleted? ⇒ Boolean
27 28 29 |
# File 'lib/acquia/cloud/database_backup.rb', line 27 def deleted? data['deleted'] != '0' end |
#download(&block) ⇒ Object
78 79 80 |
# File 'lib/acquia/cloud/database_backup.rb', line 78 def download(&block) download_to(File.basename(path), &block) end |
#download_to(path, &block) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/acquia/cloud/database_backup.rb', line 59 def download_to(path, &block) uri = URI.parse(link) File.open(path, 'wb') do |io| https = uri.scheme == 'https' Net::HTTP.start(uri.host, uri.port, use_ssl: https) do |http| request = Net::HTTP::Get.new uri request.basic_auth @cloud.api.credentials.email, @cloud.api.credentials.key http.request request do |response| response.read_body do |chunk| io.write chunk block.call(response, chunk) if block_given? end end end end end |
#id ⇒ Object
19 20 21 |
# File 'lib/acquia/cloud/database_backup.rb', line 19 def id data['id'] end |
#link ⇒ Object
55 56 57 |
# File 'lib/acquia/cloud/database_backup.rb', line 55 def link data['link'] end |
#name ⇒ Object
31 32 33 |
# File 'lib/acquia/cloud/database_backup.rb', line 31 def name data['name'] end |
#path ⇒ Object
35 36 37 |
# File 'lib/acquia/cloud/database_backup.rb', line 35 def path data['path'] end |
#started ⇒ Object
39 40 41 |
# File 'lib/acquia/cloud/database_backup.rb', line 39 def started Time.at(data['started'].to_i) end |
#type ⇒ Object
51 52 53 |
# File 'lib/acquia/cloud/database_backup.rb', line 51 def type data['type'].to_sym end |