Module: ForemanOpenscap::DataStreamContent

Extended by:
ActiveSupport::Concern
Included in:
ScapContent, TailoringFile
Defined in:
app/models/concerns/foreman_openscap/data_stream_content.rb

Instance Method Summary collapse

Instance Method Details

#create_or_update_profile(profile_id, title) ⇒ Object



37
38
39
40
41
42
# File 'app/models/concerns/foreman_openscap/data_stream_content.rb', line 37

def create_or_update_profile(profile_id, title)
  profile = ScapContentProfile.find_by(:profile_id => profile_id, "#{self.class.to_s.demodulize.underscore}_id".to_sym => id)
  return ScapContentProfile.create(:profile_id => profile_id, :title => title, "#{self.class.to_s.demodulize.underscore}_id".to_sym => id) unless profile
  profile.update(:title => title) unless profile.title == title
  profile
end

#create_profilesObject



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

def create_profiles
  fetch_profiles.each do |key, title|
    create_or_update_profile key, title
  end
end

#digestObject



27
28
29
# File 'app/models/concerns/foreman_openscap/data_stream_content.rb', line 27

def digest
  self[:digest] ||= Digest::SHA256.hexdigest(scap_file.to_s)
end

#proxy_urlObject



19
20
21
22
23
24
25
# File 'app/models/concerns/foreman_openscap/data_stream_content.rb', line 19

def proxy_url
  @proxy_url ||= SmartProxy.with_features('Openscap').find do |proxy|
    available = ProxyAPI::AvailableProxy.new(:url => proxy.url)
    available.available?
  end.try(:url)
  @proxy_url
end