Class: ForemanAnsibleDirector::Actions::Proxy::RunPlaybook

Inherits:
Base::AnsibleDirectorAction show all
Includes:
Dynflow::Action::Polling
Defined in:
app/lib/foreman_ansible_director/actions/proxy/run_playbook.rb

Instance Method Summary collapse

Methods inherited from Base::AnsibleDirectorAction

#humanized_name, #queue, #task_output

Instance Method Details

#attempts_before_next_intervalObject



46
47
48
# File 'app/lib/foreman_ansible_director/actions/proxy/run_playbook.rb', line 46

def attempts_before_next_interval
  4
end

#done?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'app/lib/foreman_ansible_director/actions/proxy/run_playbook.rb', line 38

def done?
  output[:task]&.[](:progress) == 1
end

#invoke_external_taskObject



20
21
22
23
24
25
26
27
28
29
# File 'app/lib/foreman_ansible_director/actions/proxy/run_playbook.rb', line 20

def invoke_external_task
  ::ForemanAnsibleDirector::Proxy::Dynflow::SingleBatchAction.new(
    input[:proxy_task_id], 'ansible-navigator', 'Proxy::AnsibleDirector::Actions::Meta::RunPlaybook',
    inventory: input[:inventory],
    playbook: input[:playbook],
    content: input[:content],
    execution_environment: input[:execution_environment]
  ).request
  nil
end

#poll_external_taskObject



31
32
33
34
35
36
# File 'app/lib/foreman_ansible_director/actions/proxy/run_playbook.rb', line 31

def poll_external_task
  task = ::ForemanAnsibleDirector::Proxy::Dynflow::TaskStatus.new(input[:proxy_task_id]).request
  task_status = ::ForemanAnsibleDirector::Parsers::Proxy::Dynflow::TaskStatusParser.new(task)

  { progress: task_status.progress }
end

#poll_intervalsObject



42
43
44
# File 'app/lib/foreman_ansible_director/actions/proxy/run_playbook.rb', line 42

def poll_intervals
  [2, 4, 8, 16, 32, 64]
end