Sha256: 42b480c9711de947603801ddd8682d88ec49996cfd9f6ccabee06d42f5b3ee25

Contents?: true

Size: 681 Bytes

Versions: 4

Compression:

Stored size: 681 Bytes

Contents

module ForemanAnsible
  # Relations to make Hostgroup 'have' ansible roles
  module HostgroupExtensions
    extend ActiveSupport::Concern

    included do
      has_many :hostgroup_ansible_roles, :foreign_key => :hostgroup_id
      has_many :ansible_roles, :through => :hostgroup_ansible_roles,
                               :dependent => :destroy
      include ForemanAnsible::HasManyAnsibleRoles

      def inherited_ansible_roles
        ancestors.reduce([]) do |roles, hostgroup|
          roles + hostgroup.ansible_roles
        end.uniq
      end

      def host_ansible_roles
        hosts.all.includes(:ansible_roles).flat_map(&:ansible_roles)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
foreman_ansible-1.5.2 app/models/concerns/foreman_ansible/hostgroup_extensions.rb
foreman_ansible-1.5.1 app/models/concerns/foreman_ansible/hostgroup_extensions.rb
foreman_ansible-1.5.0 app/models/concerns/foreman_ansible/hostgroup_extensions.rb
foreman_ansible-2.1.0 app/models/concerns/foreman_ansible/hostgroup_extensions.rb