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