Class: Outback::Backup

Inherits:
Object show all
Includes:
Logging
Defined in:
lib/outback/backup.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Logging

#logger

Constructor Details

#initialize(configuration) ⇒ Backup

Returns a new instance of Backup.

Raises:

  • (ArgumentError)


7
8
9
10
11
12
# File 'lib/outback/backup.rb', line 7

def initialize(configuration)
  raise ArgumentError, "configuration required" unless configuration.is_a?(Outback::Configuration)
  @configuration = configuration
  @name = configuration.name
  @timestamp = Time.now.strftime(Outback::TIME_FORMAT)
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



5
6
7
# File 'lib/outback/backup.rb', line 5

def configuration
  @configuration
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/outback/backup.rb', line 5

def name
  @name
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



5
6
7
# File 'lib/outback/backup.rb', line 5

def timestamp
  @timestamp
end

#tmpdirObject (readonly)

Returns the value of attribute tmpdir.



5
6
7
# File 'lib/outback/backup.rb', line 5

def tmpdir
  @tmpdir
end

Instance Method Details

#run!Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/outback/backup.rb', line 14

def run!
  logger.info "Using working directory #{configuration.tmpdir}" if configuration.tmpdir
  @tmpdir = Dir.mktmpdir([name, timestamp], configuration.tmpdir)
  archives = create_archives
  logger.info "Created #{archives.size} archives"
  archives = process_archives(archives)
  logger.info "Processed #{archives.size} archives"
  store_archives(archives)
  purge_targets
ensure
  FileUtils.remove_entry_secure(tmpdir)
end