class Bosh::Director::EventLog::Task

Public Class Methods

new(stage, name, index) click to toggle source
# File lib/bosh/director/event_log.rb, line 124
def initialize(stage, name, index)
  @stage = stage
  @name = name
  @index = index
  @state = 'in_progress'
  @progress = 0
end

Public Instance Methods

advance(delta, data = {}) click to toggle source
# File lib/bosh/director/event_log.rb, line 132
def advance(delta, data = {})
  @state = 'in_progress'
  @progress = [@progress + delta, 100].min
  log_entry(data)
end
failed(error_msg = nil) click to toggle source
# File lib/bosh/director/event_log.rb, line 149
def failed(error_msg = nil)
  @state = 'failed'
  @progress = 100
  log_entry("error" => error_msg)
end
finish() click to toggle source
# File lib/bosh/director/event_log.rb, line 143
def finish
  @state = 'finished'
  @progress = 100
  log_entry
end
start() click to toggle source
# File lib/bosh/director/event_log.rb, line 138
def start
  @state = 'started'
  log_entry
end

Private Instance Methods

log_entry(data = {}) click to toggle source
# File lib/bosh/director/event_log.rb, line 157
def log_entry(data = {})
  task_entry = {
    :task => @name,
    :index => @index,
    :state => @state,
    :progress => @progress.to_i,
  }
  task_entry[:data] = data if data.size > 0
  @stage.log_entry(task_entry)
end