class Full360::Sequencer::Runner

Attributes

config[RW]
sleep_between_checks[RW]

Public Class Methods

new(logger = nil) click to toggle source
# File lib/full360-sequencer.rb, line 13
def initialize(logger = nil)
  @logger = logger ? logger : Logger.new(STDOUT)

  # default 5 seconds between completed? checks
  @sleep_between_checks = 5
end

Public Instance Methods

config_from_file(yaml_path) click to toggle source
# File lib/full360-sequencer.rb, line 20
def config_from_file(yaml_path)
  @config = parse_config_file(yaml_path)
end
config_valid?(config) click to toggle source
# File lib/full360-sequencer.rb, line 59
def config_valid?(config)
  return false unless config.is_a? Array
  true
end
parse_config_file(yaml_path) click to toggle source
# File lib/full360-sequencer.rb, line 55
def parse_config_file(yaml_path)
  YAML.load_file(yaml_path)
end
run() click to toggle source
# File lib/full360-sequencer.rb, line 31
def run
  @config.each do |params|
    this_task_name = task_name(params)
    this_task = run_task_class(params[this_task_name]['type']).new(
      this_task_name,
      params[this_task_name]
    )
    this_task.run_task
    until this_task.completed?
      sleep @sleep_between_checks
    end
    raise "task failed error" unless this_task.success
  end
rescue => e
  @logger.error('SEQUENCER_ERROR')
  @logger.error(e.message)
  e.backtrace.each { |r| @logger.error(r) }
  raise e
end
run_task_class(task_type_string) click to toggle source
# File lib/full360-sequencer.rb, line 24
def run_task_class(task_type_string)
  case task_type_string
  when 'ecs_task' then Full360::Sequencer::RunECSTask
  else nil
  end
end
task_name(params) click to toggle source
# File lib/full360-sequencer.rb, line 51
def task_name(params)
  params.keys.first
end