Class: Backup::Database::Riak

Inherits:
Base
  • Object
show all
Defined in:
lib/backup/database/riak.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#database_id, #dump_path, #model

Instance Method Summary collapse

Methods included from Config::Helpers

included

Methods included from Utilities::Helpers

#utility_remote

Constructor Details

#initialize(model, database_id = nil, &block) ⇒ Riak

Returns a new instance of Riak.



22
23
24
25
26
27
28
29
# File 'lib/backup/database/riak.rb', line 22

def initialize(model, database_id = nil, &block)
  super
  instance_eval(&block) if block_given?

  @node   ||= '[email protected]'
  @cookie ||= 'riak'
  @user   ||= 'riak'
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Backup::Config::Helpers

Instance Attribute Details

Cookie is the Erlang cookie/shared secret used to connect to the node. Default: riak



15
16
17
# File 'lib/backup/database/riak.rb', line 15

def cookie
  @cookie
end

#nodeObject

Node is the node from which to perform the backup. Default: [email protected]



10
11
12
# File 'lib/backup/database/riak.rb', line 10

def node
  @node
end

#userObject

Username for the riak instance Default: riak



20
21
22
# File 'lib/backup/database/riak.rb', line 20

def user
  @user
end

Instance Method Details

#perform!Object

Performs the dump using ‘riak-admin backup`.

This will be stored in the final backup package as <trigger>/databases/<dump_filename>-<node>



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/backup/database/riak.rb', line 36

def perform!
  super

  dump_file = File.join(dump_path, dump_filename)
  with_riak_owned_dump_path do
    run("#{ riakadmin } backup #{ node } #{ cookie } '#{ dump_file }' node")
  end

  model.compressor.compress_with do |command, ext|
    dump_file << "-#{ node }" # `riak-admin` appends `node` to the filename.
    run("#{ command } -c '#{ dump_file }' > '#{ dump_file + ext }'")
    FileUtils.rm_f(dump_file)
  end if model.compressor

  log!(:finished)
end