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

Constructor Details

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

Returns a new instance of Riak.



19
20
21
22
23
24
25
26
# File 'lib/backup/database/riak.rb', line 19

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



12
13
14
# File 'lib/backup/database/riak.rb', line 12

def cookie
  @cookie
end

#nodeObject

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



7
8
9
# File 'lib/backup/database/riak.rb', line 7

def node
  @node
end

#userObject

Username for the riak instance Default: riak



17
18
19
# File 'lib/backup/database/riak.rb', line 17

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>



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

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

  if model.compressor
    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
  end

  log!(:finished)
end