Class: ForemanOpenscap::ScapContent

Inherits:
ApplicationRecord
  • Object
show all
Includes:
Authorizable, DataStreamContent, Taxonomix
Defined in:
app/models/foreman_openscap/scap_content.rb

Instance Method Summary collapse

Methods included from DataStreamContent

#create_or_update_profile, #create_profiles, #digest, #proxy_url

Instance Method Details

#as_json(*args) ⇒ Object



42
43
44
45
# File 'app/models/foreman_openscap/scap_content.rb', line 42

def as_json(*args)
  hash = super
  hash["scap_file"] = scap_file.to_s.encode('utf-8', :invalid => :replace, :undef => :replace, :replace => '_')
end

#fetch_profilesObject



47
48
49
50
51
# File 'app/models/foreman_openscap/scap_content.rb', line 47

def fetch_profiles
  api = ProxyAPI::Openscap.new(:url => proxy_url)
  profiles = api.fetch_policies_for_scap_content(scap_file)
  profiles
end

#to_labelObject



38
39
40
# File 'app/models/foreman_openscap/scap_content.rb', line 38

def to_label
  title
end

#used_location_idsObject



24
25
26
27
28
29
# File 'app/models/foreman_openscap/scap_content.rb', line 24

def used_location_ids
  Location.joins(:taxable_taxonomies).where(
    'taxable_taxonomies.taxable_type' => 'ForemanOpenscap::ScapContent',
    'taxable_taxonomies.taxable_id' => id
  ).pluck("#{Location.arel_table.name}.id")
end

#used_organization_idsObject



31
32
33
34
35
36
# File 'app/models/foreman_openscap/scap_content.rb', line 31

def used_organization_ids
  Organization.joins(:taxable_taxonomies).where(
    'taxable_taxonomies.taxable_type' => 'ForemanOpenscap::ScapContent',
    'taxable_taxonomies.taxable_id' => id
  ).pluck("#{Location.arel_table.name}.id")
end