Class: Actions::ForemanAnsible::PlayHostgroupRoles

Inherits:
EntryAction
  • Object
show all
Includes:
Helpers::HostCommon, Helpers::PlayRolesDescription, Helpers::WithContinuousOutput, Helpers::WithDelegatedAction
Defined in:
app/lib/actions/foreman_ansible/play_hostgroup_roles.rb

Overview

Action that initiates the playbook run for roles assigned to the hostgroup. It does that either locally or via a proxy when available.

Instance Method Summary collapse

Methods included from Helpers::HostCommon

#continuous_output_providers, #fill_continuous_output, #finalize, #find_options, #humanized_name, #humanized_output, #rescue_strategy

Methods included from Helpers::PlayRolesDescription

#running_proxy_name

Instance Method Details

#humanized_inputObject



25
26
27
28
29
30
# File 'app/lib/actions/foreman_ansible/play_hostgroup_roles.rb', line 25

def humanized_input
  _('on host group %{name} through proxy %{proxy}') % {
    :name => input.fetch(:hostgroup, {})[:name],
    :proxy => running_proxy_name
  }
end

#plan(hostgroup, proxy_selector = ::ForemanAnsible::ProxySelector.new, options = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/lib/actions/foreman_ansible/play_hostgroup_roles.rb', line 11

def plan(hostgroup, proxy_selector = ::ForemanAnsible::ProxySelector.new,
         options = {})
  proxy = find_hostgroup_and_proxy(hostgroup, proxy_selector)
  inventory_creator = ::ForemanAnsible::
    InventoryCreator.new(hostgroup.hosts)
  playbook_creator = ::ForemanAnsible::
    PlaybookCreator.new(hostgroup_ansible_roles(hostgroup))
  plan_delegated_action(proxy, ::ForemanAnsibleCore::Actions::RunPlaybook,
                        :inventory => inventory_creator.to_hash.to_json,
                        :playbook => playbook_creator.roles_playbook,
                        :options => find_options.merge(options))
  plan_self
end