Module: ForemanOpenscap::HostExtensions::ClassMethods

Defined in:
app/models/concerns/foreman_openscap/host_extensions.rb

Instance Method Summary collapse

Instance Method Details

#search_by_missing_arf(key, operator, policy_name) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/models/concerns/foreman_openscap/host_extensions.rb', line 36

def search_by_missing_arf(key, operator, policy_name)
  cond = sanitize_sql_for_conditions(["scaptimony_policies.name #{operator} ?", value_to_sql(operator, policy_name)])
  { :conditions => Host::Managed.arel_table[:id].in(
       Host::Managed.select(Host::Managed.arel_table[:id])
         .joins(:policies)
         .where(cond)
         .where('scaptimony_assets.id not in (
				SELECT distinct scaptimony_arf_reports.asset_id
				FROM scaptimony_arf_reports
				WHERE scaptimony_arf_reports.asset_id = scaptimony_assets.id
					AND scaptimony_arf_reports.policy_id = scaptimony_policies.id)
			')
         .ast
       ).to_sql
  }
end

#search_by_policy_name(key, operator, policy_name) ⇒ Object



29
30
31
32
33
34
# File 'app/models/concerns/foreman_openscap/host_extensions.rb', line 29

def search_by_policy_name(key, operator, policy_name)
  cond = sanitize_sql_for_conditions(["scaptimony_policies.name #{operator} ?", value_to_sql(operator, policy_name)])
  { :conditions => Host::Managed.arel_table[:id].in(
        Host::Managed.select(Host::Managed.arel_table[:id]).joins(:policies).where(cond).ast
      ).to_sql }
end