Module: ForemanOpenscap::ComplianceStatusScopedSearch::ClassMethods
- Defined in:
- app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb
Instance Method Summary collapse
- #policy_search(search_alias) ⇒ Object
- #search_by_compliance_status(key, operator, value) ⇒ Object
- #search_by_comply_with(_key, _operator, policy_name) ⇒ Object
- #search_by_host_collection_name(key, operator, value) ⇒ Object
- #search_by_inconclusive_with(_key, _operator, policy_name) ⇒ Object
- #search_by_last_for(key, operator, by) ⇒ Object
- #search_by_not_comply_with(_key, _operator, policy_name) ⇒ Object
- #search_by_policy_results(policy_name, &selection) ⇒ Object
- #search_by_rule_failed(key, operator, rule_name) ⇒ Object
- #search_by_rule_othered(key, operator, rule_name) ⇒ Object
- #search_by_rule_passed(key, operator, rule_name) ⇒ Object
Instance Method Details
#policy_search(search_alias) ⇒ Object
6 7 8 9 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 6 def policy_search(search_alias) scoped_search :relation => :policy, :on => :name, :complete_value => true, :rename => search_alias, :only_explicit => true end |
#search_by_compliance_status(key, operator, value) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 64 def search_by_compliance_status(key, operator, value) scope = case value when 'compliant' ArfReport.passed when 'incompliant' ArfReport.failed when 'inconclusive' ArfReport.othered end query_conditions_from_scope scope end |
#search_by_comply_with(_key, _operator, policy_name) ⇒ Object
11 12 13 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 11 def search_by_comply_with(_key, _operator, policy_name) search_by_policy_results policy_name, &:passed end |
#search_by_host_collection_name(key, operator, value) ⇒ Object
76 77 78 79 80 81 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 76 def search_by_host_collection_name(key, operator, value) scope = apply_condition(::Host.joins(:host_collections), operator == '<>', :katello_host_collections => { :name => value }) query_conditions_from_scope ForemanOpenscap::ArfReport.where(:host_id => scope) end |
#search_by_inconclusive_with(_key, _operator, policy_name) ⇒ Object
19 20 21 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 19 def search_by_inconclusive_with(_key, _operator, policy_name) search_by_policy_results policy_name, &:othered end |
#search_by_last_for(key, operator, by) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 41 def search_by_last_for(key, operator, by) by.gsub!(/[^[:alnum:]]/, '') case by.downcase when 'host' { :conditions => "reports.id IN ( SELECT MAX(id) FROM reports sub WHERE sub.type = 'ForemanOpenscap::ArfReport' AND sub.host_id = reports.host_id )" } when 'policy' { :conditions => 'reports.id IN ( SELECT latest.id FROM foreman_openscap_policies INNER JOIN (SELECT policy_id, MAX(reports.id) AS id FROM reports INNER JOIN foreman_openscap_policy_arf_reports ON reports.id = foreman_openscap_policy_arf_reports.arf_report_id GROUP BY policy_id ) latest ON foreman_openscap_policies.id = latest.policy_id)' } else raise "Cannot search last by #{by}" end end |
#search_by_not_comply_with(_key, _operator, policy_name) ⇒ Object
15 16 17 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 15 def search_by_not_comply_with(_key, _operator, policy_name) search_by_policy_results policy_name, &:failed end |
#search_by_policy_results(policy_name, &selection) ⇒ Object
23 24 25 26 27 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 23 def search_by_policy_results(policy_name, &selection) scope = ArfReport.of_policy(Policy.find_by(:name => policy_name).id) .instance_eval(&selection) query_conditions_from_scope scope end |
#search_by_rule_failed(key, operator, rule_name) ⇒ Object
29 30 31 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 29 def search_by_rule_failed(key, operator, rule_name) search_by_rule rule_name, "fail" end |
#search_by_rule_othered(key, operator, rule_name) ⇒ Object
37 38 39 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 37 def search_by_rule_othered(key, operator, rule_name) search_by_rule rule_name, LogExtensions.othered_result_constants end |
#search_by_rule_passed(key, operator, rule_name) ⇒ Object
33 34 35 |
# File 'app/models/concerns/foreman_openscap/compliance_status_scoped_search.rb', line 33 def search_by_rule_passed(key, operator, rule_name) search_by_rule rule_name, "pass" end |