class Outback::Target

Attributes

backup_name[R]

Public Class Methods

new(backup_name) click to toggle source
# File lib/outback/target.rb, line 8
def initialize(backup_name)
  @backup_name = backup_name
end

Public Instance Methods

purge!() click to toggle source
# File lib/outback/target.rb, line 12
def purge!
  purged_archives = connect { purge_archives }
  logger.info "Purged #{purged_archives.size} archives (#{purged_archives.sum(&:size)} bytes) from #{self}"
end

Private Instance Methods

archives() click to toggle source
# File lib/outback/target.rb, line 35
def archives
  list_all_archives.select(&it.match?(backup_name))
end
build_archive(filename, size) click to toggle source
# File lib/outback/target.rb, line 27
def build_archive(filename, size)
  TargetArchive.new(filename, size, self)
end
connect() { || ... } click to toggle source
# File lib/outback/target.rb, line 23
def connect
  yield
end
connection() click to toggle source
# File lib/outback/target.rb, line 19
def connection
  @connection
end
list_all_archives() click to toggle source
# File lib/outback/target.rb, line 31
def list_all_archives
  raise NotImplemented
end
purge_archives() click to toggle source
# File lib/outback/target.rb, line 39
def purge_archives
  archives.select do |archive|
    if archive.outdated?
      begin
        logger.debug "purging archive: #{archive}"
        unlink_archive!(archive)
        true
      rescue => e
        logger.error "could not unlink archive #{archive}: #{e} #{e.message}"
        false
      end
    end
  end
end