class Bosh::Director::Jobs::ScheduledBackup

Attributes

backup_job[R]

Public Class Methods

job_type() click to toggle source
# File lib/bosh/director/jobs/scheduled_backup.rb, line 8
def self.job_type
  :scheduled_backup
end
new(options={}) click to toggle source
# File lib/bosh/director/jobs/scheduled_backup.rb, line 12
def initialize(options={})
  @backup_job = options.fetch(:backup_job) { Backup.new(backup_file) }
  @backup_destination = options.fetch(:backup_destination) { App.instance.blobstores.backup_destination }
end

Public Instance Methods

perform() click to toggle source
# File lib/bosh/director/jobs/scheduled_backup.rb, line 17
def perform
  @backup_job.perform

  blobstore_path = "backup-#{Time.now.utc.iso8601}.tgz"

  File.open(@backup_job.backup_file) do |f|
    @backup_destination.create(f, blobstore_path)
  end

  "Stored '#{blobstore_path}' in backup blobstore"
ensure
  FileUtils.rm_f(@backup_job.backup_file)
end

Private Instance Methods

backup_file() click to toggle source
# File lib/bosh/director/jobs/scheduled_backup.rb, line 33
def backup_file
  File.join(Dir.tmpdir, "backup-#{task_id}.tgz")
end