Sha256: bb0856f1ea229eea3d57154c994f95c53f6d303d2281c175a96a59e09d5808f8

Contents?: true

Size: 1.2 KB

Versions: 33

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

module ForemanAnsible
  # Macro to fetch RH Insights plan playbook
  module RendererMethods
    extend ActiveSupport::Concern

    def insights_remediation(plan_id, organization_id = Organization.current.id)
      return "$INSIGHTS_REMEDIATION[#{plan_id}, #{organization_id}]" if preview?

      cached("insights_#{plan_id}_#{organization_id}") do
        Rails.logger.debug 'cache miss for insights plan fetching'
        insights_plan = ForemanAnsible::InsightsPlanRunner.new(
          Organization.find(organization_id),
          plan_id
        )
        rules = insights_plan.playbook
        disclaimer = insights_plan.parse_disclaimer
        hostname_rules_relation = insights_plan.hostname_rules(rules)
        global_rules = insights_plan.rules_to_hash(rules)
        host_playbooks = individual_host_playbooks(hostname_rules_relation,
                                                   global_rules)
        "#{disclaimer}\n#{host_playbooks.to_yaml}"
      end
    end

    private

    def individual_host_playbooks(hostname_rules_relation, global_rules)
      hostname_rules_relation[@host.name].reduce([]) do |acc, cur|
        acc << global_rules[cur]
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
foreman_ansible-5.1.3 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-5.1.2 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-5.1.1 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-5.1.0 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.3.5 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.3.4 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.3.3 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.3.2 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-5.0.1 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.5 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.3.1 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.4 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-5.0.0 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.3 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.2 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-4.0.0 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-3.0.9 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-3.0.8 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-3.0.7 app/services/foreman_ansible/renderer_methods.rb
foreman_ansible-3.0.6 app/services/foreman_ansible/renderer_methods.rb