Class: Proxy::AnsibleDirector::Runners::MetaRunner

Inherits:
Dynflow::Runner::Base
  • Object
show all
Defined in:
lib/smart_proxy_ansible_director/runners/meta_runner.rb

Constant Summary collapse

PHASES =
[
  { id: :build_ee, title: 'Building execution environment', runner_class: AnsibleBuilderRunner,
    runner_input_key: :build_ee_input },
  { id: :run_ansible, title: 'Running Ansible', runner_class: AnsibleNavigatorRunner,
    runner_input_key: :run_ansible_input }
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(input, suspended_action: nil) ⇒ MetaRunner

Returns a new instance of MetaRunner.



16
17
18
19
20
21
# File 'lib/smart_proxy_ansible_director/runners/meta_runner.rb', line 16

def initialize(input, suspended_action: nil)
  super(suspended_action: suspended_action)
  @input = input
  @phase_index = 0
  @current_runner = nil
end

Instance Method Details

#closeObject



48
49
50
# File 'lib/smart_proxy_ansible_director/runners/meta_runner.rb', line 48

def close
  @current_runner&.close
end

#killObject



44
45
46
# File 'lib/smart_proxy_ansible_director/runners/meta_runner.rb', line 44

def kill
  @current_runner&.kill
end

#refreshObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/smart_proxy_ansible_director/runners/meta_runner.rb', line 27

def refresh
  return unless @current_runner

  @current_runner.refresh

  @continuous_output.raw_outputs.concat(@current_runner.continuous_output.raw_outputs)
  @current_runner.continuous_output.raw_outputs.clear

  return unless @current_runner.exit_status

  if @current_runner.exit_status != 0
    publish_exit_status(@current_runner.exit_status)
  else
    transition_to_next_phase
  end
end

#startObject



23
24
25
# File 'lib/smart_proxy_ansible_director/runners/meta_runner.rb', line 23

def start
  transition_to_phase(@phase_index)
end