class CapistranoMulticonfigParallel::RunnerStatus

Constants

ATTRIBUTE_LIST

Public Class Methods

new(process_runner, job, command, options={}) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 29
def initialize(process_runner, job, command, options={})
  options = options.is_a?(Hash) ? options : {}
  @job = job
  @process_runner = process_runner
  @command     = command
  @options = {:repeats=>1, :force_yield=>nil, :timeout=>nil, :expect_timeout=>false}.merge(options)
  @options = @options.symbolize_keys

  @actor = @options.fetch(:actor, nil)
  @job_id = @job.id
  @process_runner = process_runner


  @output_text = ""
  @error_text  = ""
  @exit_status      = nil
  @did_timeout = false
  @callback    = @options[:callback].present? ? @options[:callback] : nil
  @pid         = nil
  @force_yield = @options[:force_yield]

  @expect_timeout    = @options[:expect_timeout] || false
  @expect_size_limit = @options[:expect_size_limit] || false
  @async_exception   = nil
end

Public Instance Methods

async_exception_handler(async_exception) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 105
def async_exception_handler(async_exception)
  @async_exception = async_exception
  log_to_worker "Child process for worker #{@job_id} async_exception_handler  disconnected due to error #{data.inspect}"
  @exit_status = 1
end
inspect() click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 116
def inspect
  to_s
end
log_to_worker(message, io = nil) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 55
def log_to_worker(message, io = nil)
  if io.present?
    log_to_file("#{io.upcase} ---- #{message}", job_id: @job_id, prefix: @options[:log_prefix])
  elsif @options[:log_prefix].present?
    log_to_file(message, job_id: @job_id, prefix: @options[:log_prefix])
  else
    log_to_file(message)
  end
end
on_exit(status) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 99
def on_exit(status)
  log_to_worker "Child process for worker #{@job_id} on_exit  disconnected due to #{status.inspect}"
  @exit_status = status.exitstatus
  @callback.call(self) if @callback && process_runner.synchronicity == :sync
end
on_input_stdin(data) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 71
def on_input_stdin(data)
  log_to_worker(data, "stdin")
  @output_text << data
end
on_pid(pid) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 65
def on_pid(pid)
  log_to_worker"Child process for worker #{@job_id} on_pid  #{pid.inspect}"
  @pid ||= pid
end
on_read_stderr(data) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 81
def on_read_stderr(data)
  log_to_worker(data, "stderr")
  @error_text << data
end
on_read_stdout(data) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 76
def on_read_stdout(data)
  log_to_worker(data, "stdout")
  @output_text << data
end
on_size_limit() click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 93
def on_size_limit
  log_to_worker "Child process for worker #{@job_id} on_size_limit  disconnected"
  @did_size_limit = true
  @callback.call(self) if @callback && process_runner.synchronicity == :sync && @expect_size_limit
end
on_timeout() click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 87
def on_timeout
  log_to_worker "Child process for worker #{@job_id} on_timeout  disconnected"
  @did_timeout = true
  @callback.call(self) if @callback && process_runner.synchronicity == :sync && @expect_timeout
end
to_json() click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 124
def to_json
  hash = {}
  CapistranoMulticonfigParallel::RunnerStatus::ATTRIBUTE_LIST.delete_if{|a| [:process_runner].include?(a) }.each do |key|
    hash[key] = send(key).inspect
  end
  hash
end
to_s() click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 120
def to_s
  JSON.generate(to_json)
end
watch_handler(process) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/runner_status.rb, line 111
def watch_handler(process)
  @process ||= process
end