app/services/foreman_openscap/policy_dashboard/data.rb



module ForemanOpenscap::PolicyDashboard
  class Data
    attr_reader :report

    def initialize(policy, filter = "")
      @policy = policy
      @filter = filter
      @report = {}
      fetch_data
    end

    private

    attr_writer :report

    def hosts
      @hosts ||= Host.authorized(:view_hosts, Host)
    end

    def fetch_data
      report.update(
        { :compliant_hosts => Host::Managed.comply_with(@policy).count,
          :incompliant_hosts => Host::Managed.not_comply_with(@policy).count,
          :inconclusive_hosts => Host::Managed.inconclusive_with(@policy).count,
          :report_missing => Host::Managed.policy_reports_missing(@policy).count,
          :assigned_hosts => Host::Managed.assigned_to_policy(@policy).count,
          :unassigned_hosts => Host::Managed.removed_from_policy(@policy).count }
      )
    end
  end
end