Class: Full360::Sequencer::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/full360_sequencer/runner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sleep_between_checks, logger = nil) ⇒ Full360::Sequencer::Runner

Initializes the class



17
18
19
20
# File 'lib/full360_sequencer/runner.rb', line 17

def initialize(sleep_between_checks, logger = nil)
  @sleep_between_checks = sleep_between_checks
  @logger               = logger ||= Logger.new(STDOUT)
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



11
12
13
# File 'lib/full360_sequencer/runner.rb', line 11

def config
  @config
end

#loggerObject

Returns the value of attribute logger.



9
10
11
# File 'lib/full360_sequencer/runner.rb', line 9

def logger
  @logger
end

#sleep_between_checksObject

Returns the value of attribute sleep_between_checks.



8
9
10
# File 'lib/full360_sequencer/runner.rb', line 8

def sleep_between_checks
  @sleep_between_checks
end

Instance Method Details

#config_from_file(yaml_path) ⇒ Object



22
23
24
# File 'lib/full360_sequencer/runner.rb', line 22

def config_from_file(yaml_path)
  @config = parse_config_file(yaml_path)
end

#config_valid?(config) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
66
# File 'lib/full360_sequencer/runner.rb', line 63

def config_valid?(config)
  return false unless config.is_a? Array
  true
end

#runObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/full360_sequencer/runner.rb', line 35

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: #{e.message}")

  e.backtrace.each { |r| logger.error(r) }
  raise e
end

#run_task_class(task_type_string) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/full360_sequencer/runner.rb', line 26

def run_task_class(task_type_string)
  case task_type_string
  when "ecs_task"
    Full360::Sequencer::RunECSTask
  else
    nil
  end
end

#task_name(params) ⇒ Object



59
60
61
# File 'lib/full360_sequencer/runner.rb', line 59

def task_name(params)
  params.keys.first
end