Sha256: 61c04558552c1324b95924e9ccffbf6c07b11d5701b6b74438546293fa9ca21b

Contents?: true

Size: 1.01 KB

Versions: 8

Compression:

Stored size: 1.01 KB

Contents

module ForemanOpenscap
  module HostgroupExtensions
    extend ActiveSupport::Concern

    included do
      has_one :asset, :as => :assetable, :class_name => "::ForemanOpenscap::Asset", dependent: :destroy
      has_many :asset_policies, :through => :asset, :class_name => "::ForemanOpenscap::AssetPolicy"
      has_many :policies, :through => :asset_policies, :class_name => "::ForemanOpenscap::Policy"
    end

    def inherited_policies
      return [] unless parent

      ancestors.inject([]) do |policies, hostgroup|
        policies += hostgroup.policies
      end.uniq
    end

    def openscap_proxy
      return super if ancestry.nil? || self.openscap_proxy_id.present?
      ::SmartProxy.find_by(:id => inherited_openscap_proxy_id)
    end

    def inherited_openscap_proxy_id
      if ancestry.present?
        self[:openscap_proxy_id] || self.class.sort_by_ancestry(ancestors.where.not(openscap_proxy_id: nil)).last.try(:openscap_proxy_id)
      else
        self.send(:openscap_proxy_id)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
foreman_openscap-4.1.3 app/models/concerns/foreman_openscap/hostgroup_extensions.rb
foreman_openscap-4.0.6 app/models/concerns/foreman_openscap/hostgroup_extensions.rb
foreman_openscap-4.2.0 app/models/concerns/foreman_openscap/hostgroup_extensions.rb
foreman_openscap-4.0.5 app/models/concerns/foreman_openscap/hostgroup_extensions.rb
foreman_openscap-4.1.2 app/models/concerns/foreman_openscap/hostgroup_extensions.rb
foreman_openscap-4.1.1 app/models/concerns/foreman_openscap/hostgroup_extensions.rb
foreman_openscap-4.1.0 app/models/concerns/foreman_openscap/hostgroup_extensions.rb
foreman_openscap-4.0.4 app/models/concerns/foreman_openscap/hostgroup_extensions.rb