class RdiffBackupWrapper::RdiffBackupWrapper

Public Class Methods

new(config_path=nil) click to toggle source
# File lib/rdiff_backup_wrapper.rb, line 8
def initialize(config_path=nil)
  @config_path = config_path
end

Public Instance Methods

backups() click to toggle source
# File lib/rdiff_backup_wrapper.rb, line 20
def backups
  unless @backups.nil?
    return @backups
  end
  @backups = []
  config['backups'].each do |backup_config|
    @backups << Backup.new(backup_config)
  end
  @backups
end
cleanup_volumes() click to toggle source
# File lib/rdiff_backup_wrapper.rb, line 48
def cleanup_volumes
  volumes.each do |v|
    v.cleanup
  end
end
config() click to toggle source
# File lib/rdiff_backup_wrapper.rb, line 16
def config
  YAML::load_file(config_path)
end
config_path() click to toggle source
# File lib/rdiff_backup_wrapper.rb, line 12
def config_path
  @config_path || '/etc/rdiff-backup-wrapper.yml'
end
prepare_volumes() click to toggle source
# File lib/rdiff_backup_wrapper.rb, line 42
def prepare_volumes
  volumes.each do |v|
    v.prepare
  end
end
run() click to toggle source
# File lib/rdiff_backup_wrapper.rb, line 54
def run
  at_exit do
    cleanup_volumes
  end
  prepare_volumes
  ret_val = run_backups
  exit ret_val
end
run_backups() click to toggle source
# File lib/rdiff_backup_wrapper.rb, line 63
def run_backups
  retval = 0

  outputs = []
  backups.each do |backup|
    outputs << backup.run
  end

  outputs.each do |o|
    if o[:retval].exitstatus != 0
      retval = 1
      STDERR.puts "backup #{o[:name]} failed with exitstatus #{o[:retval].exitstatus}"
      [:stderr, :stdout].each do |k|
        if o[k].length > 0
          STDERR.puts "output #{k}:"
          STDERR.puts o[k]
        end
      end
    end
  end

  return retval
end
volumes() click to toggle source
# File lib/rdiff_backup_wrapper.rb, line 31
def volumes
  unless @volumes.nil?
    return @volumes
  end
  @volumes = []
  config['volumes'].each do |volume_config|
    @volumes << Volume.create(volume_config)
  end
  @volumes
end