class Bosh::Director::Jobs::BaseJob
Attributes
task_id[RW]
Public Class Methods
job_type()
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 5 def self.job_type raise NotImplementedError.new('Subclasses must return a symbol representing type') end
perform(task_id, *args)
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 9 def self.perform(task_id, *args) Bosh::Director::JobRunner.new(self, task_id).run(*args) end
schedule_message()
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 13 def self.schedule_message "scheduled #{name.split('::').last}" end
Public Instance Methods
begin_stage(stage_name, n_steps)
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 44 def begin_stage(stage_name, n_steps) @event_log_stage = Config.event_log.begin_stage(stage_name, n_steps) logger.info(stage_name) end
dns_manager()
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 27 def dns_manager @dns_manager ||= DnsManagerProvider.create end
event_manager()
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 65 def event_manager @event_manager ||= Api::EventManager.new(Config.record_events) end
logger()
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 19 def logger @logger ||= Config.logger end
result_file()
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 23 def result_file @result_file ||= Config.result end
single_step_stage(stage_name) { || ... }
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 56 def single_step_stage(stage_name) begin_stage(stage_name, 1) track_and_log(stage_name, false) { yield } end
task_cancelled?()
click to toggle source
@return [Boolean] Has task been cancelled?
# File lib/bosh/director/jobs/base_job.rb, line 32 def task_cancelled? return false if task_id.nil? task = task_manager.find_task(task_id) task && (task.state == 'cancelling' || task.state == 'timeout' || task.state == 'cancelled') end
task_checkpoint()
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 38 def task_checkpoint if task_cancelled? raise TaskCancelled, "Task #{task_id} cancelled" end end
track_and_log(task, log = true) { |ticker| ... }
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 49 def track_and_log(task, log = true) @event_log_stage.advance_and_track(task) do |ticker| logger.info(task) if log yield ticker if block_given? end end
username()
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 61 def username @user ||= task_manager.find_task(task_id).username end
Private Instance Methods
task_manager()
click to toggle source
# File lib/bosh/director/jobs/base_job.rb, line 71 def task_manager @task_manager ||= Api::TaskManager.new end