Class: ForemanAnsibleDirector::Actions::RemoteExecution::Provider::AnsibleScriptProvider

Inherits:
RemoteExecutionProvider
  • Object
show all
Defined in:
app/lib/foreman_ansible_director/actions/remote_execution/Provider/ansible_script_provider.rb

Class Method Summary collapse

Class Method Details

.humanized_nameObject



10
11
12
# File 'app/lib/foreman_ansible_director/actions/remote_execution/Provider/ansible_script_provider.rb', line 10

def humanized_name
  'ansible-playbook via AnsibleDirector'
end

.provider_input_namespaceObject



14
15
16
# File 'app/lib/foreman_ansible_director/actions/remote_execution/Provider/ansible_script_provider.rb', line 14

def provider_input_namespace
  :ansible
end

.proxy_action_classObject



43
44
45
# File 'app/lib/foreman_ansible_director/actions/remote_execution/Provider/ansible_script_provider.rb', line 43

def proxy_action_class
  'Proxy::AnsibleDirector::Actions::Meta::RunAnsibleScript'
end

.proxy_command_options(template_invocation, host) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/lib/foreman_ansible_director/actions/remote_execution/Provider/ansible_script_provider.rb', line 18

def proxy_command_options(template_invocation, host)
  inventory = ForemanAnsibleDirector::Generators::InventoryGenerator.generate host
  begin
    environment = ::ForemanAnsibleDirector::ExecutionEnvironment.find_by(
      id: Setting[:ad_default_ee_rex]
    )
    raise ActiveRecord::RecordNotFound if environment.nil?
  end

  raise "Host #{host.name} is not in any lifecycle environment" unless host.ansible_lifecycle_environment
  unless host.ansible_lifecycle_environment.execution_environment
    raise "Lifecycle environment #{host.ansible_lifecycle_environment.name}
            does not provide an Execution Environment"
  end
  # As the templates currently do not have an execution environment input, this suffices
  super(template_invocation, host).merge(
    inventory: inventory,
    execution_environment: environment
  )
end

.proxy_operation_nameObject



39
40
41
# File 'app/lib/foreman_ansible_director/actions/remote_execution/Provider/ansible_script_provider.rb', line 39

def proxy_operation_name
  'meta'
end