Class: Acquia::Cloud::DatabaseBackup

Inherits:
Entity
  • Object
show all
Includes:
Operations::Delete
Defined in:
lib/acquia/cloud/database_backup.rb

Instance Attribute Summary

Attributes inherited from Entity

#url

Instance Method Summary collapse

Methods included from Operations::Delete

#delete!

Methods inherited from Entity

#refresh

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

#checksumObject



23
24
25
# File 'lib/acquia/cloud/database_backup.rb', line 23

def checksum
  data['checksum']
end

#completedObject



43
44
45
# File 'lib/acquia/cloud/database_backup.rb', line 43

def completed
  Time.at(data['completed'].to_i)
end

#completed?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/acquia/cloud/database_backup.rb', line 47

def completed?
  !data['completed'].to_i.zero?
end

#deleted?Boolean

Returns:

  • (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

#idObject



19
20
21
# File 'lib/acquia/cloud/database_backup.rb', line 19

def id
  data['id']
end


55
56
57
# File 'lib/acquia/cloud/database_backup.rb', line 55

def link
  data['link']
end

#nameObject



31
32
33
# File 'lib/acquia/cloud/database_backup.rb', line 31

def name
  data['name']
end

#pathObject



35
36
37
# File 'lib/acquia/cloud/database_backup.rb', line 35

def path
  data['path']
end

#startedObject



39
40
41
# File 'lib/acquia/cloud/database_backup.rb', line 39

def started
  Time.at(data['started'].to_i)
end

#typeObject



51
52
53
# File 'lib/acquia/cloud/database_backup.rb', line 51

def type
  data['type'].to_sym
end