Sha256: 2805d2fcb880c48d0545279d2c9dd6d737d09f7f0dc96d83f9e662e6eb203591
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
module Outback class Backup attr_reader :configuration, :name, :timestamp, :archives, :tmpdir delegate :sources, :targets, :to => :configuration def initialize(configuration) raise ArgumentError, "configuration required" unless configuration.is_a?(Outback::Configuration) @configuration = configuration @name = configuration.name @timestamp = Time.now.to_formatted_s(:number) end def run! @archives = [] begin Outback.info "Using working directory #{configuration.tmpdir}" if configuration.tmpdir @tmpdir = Dir.mktmpdir([name, timestamp], configuration.tmpdir) @archives = create_archives Outback.info "Created #{@archives.size} archives" store_archives ensure FileUtils.remove_entry_secure(tmpdir) end purge_targets end private def create_archives archives = sources.collect do |source| source.create_archives(name, timestamp, tmpdir) end archives.flatten.compact end def store_archives targets.each { |target| target.put(archives) } end def purge_targets targets.each { |target| target.purge!(name) } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
outback-0.0.14 | lib/outback/backup.rb |