class Bosh::Director::Jobs::Backup

Attributes

backup_file[R]

Public Class Methods

job_type() click to toggle source
# File lib/bosh/director/jobs/backup.rb, line 8
def self.job_type
  :bosh_backup
end
new(dest, options={}) click to toggle source
# File lib/bosh/director/jobs/backup.rb, line 14
def initialize(dest, options={})
  @backup_file = dest
  @tar_gzipper = options.fetch(:tar_gzipper) { Core::TarGzipper.new }
  @db_adapter = options.fetch(:db_adapter) { Bosh::Director::DbBackup.create(Config.db_config) }
end

Public Instance Methods

perform() click to toggle source
# File lib/bosh/director/jobs/backup.rb, line 20
def perform
  Dir.mktmpdir do |tmp_output_dir|
    begin_stage('Backing up director', 4)
    backup_database("#{tmp_output_dir}/director_db.sql")
    @tar_gzipper.compress(tmp_output_dir, 'director_db.sql', @backup_file)
    "Backup created at #{@backup_file}"
  end
end

Private Instance Methods

backup_database(output) click to toggle source
# File lib/bosh/director/jobs/backup.rb, line 30
def backup_database(output)
  track_and_log('Backing up database') do
    @db_adapter.export(output)
  end
end