Class: ForemanAnsibleDirector::Generators::VariableGenerator

Inherits:
Object
  • Object
show all
Defined in:
app/lib/foreman_ansible_director/generators/variable_generator.rb

Class Method Summary collapse

Class Method Details

.generate(host) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/lib/foreman_ansible_director/generators/variable_generator.rb', line 7

def generate(host)
  host_content = host.ansible_content_assignments
  variables = {}

  host_content.each do |content_assignment|
    next unless content_assignment.consumable.is_a? ::ForemanAnsibleDirector::AnsibleCollectionRole

    collection_role = content_assignment.consumable

    resolved = collection_role.ansible_variables.values_hash(host).raw
    collection = collection_role.ansible_collection_version.versionable

    role_variables = {}
    resolved.each do |_, resolved_variable_value|
      resolved_variable_value.each do |key, value|
        role_variables[key] = value[:value]
      end
    end

    variables["#{collection.namespace}.#{collection.name}.#{collection_role.name}"] = role_variables

    # else # content_assignment.consumable.is_a? AnsibleRole
  end

  variables
end