Class: Proxy::OpenSCAP::FetchScapContent

Inherits:
Object
  • Object
show all
Includes:
Log
Defined in:
lib/smart_proxy_openscap/fetch_scap_content.rb

Instance Method Summary collapse

Instance Method Details

#get_policy_content(policy_id) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/smart_proxy_openscap/fetch_scap_content.rb', line 4

def get_policy_content(policy_id)
  policy_store_dir = File.join(Proxy::OpenSCAP.fullpath(Proxy::OpenSCAP::Plugin.settings.contentdir), policy_id.to_s)
  policy_scap_file = File.join(policy_store_dir, "#{policy_id}_scap_content.xml")
  begin
    logger.info "Creating directory to store SCAP file: #{policy_store_dir}"
    FileUtils.mkdir_p(policy_store_dir) # will fail silently if exists
  rescue Errno::EACCES => e
    logger.error "No permission to create directory #{policy_store_dir}"
    raise e
  rescue StandardError => e
    logger.error "Could not create '#{policy_store_dir}' directory: #{e.message}"
    raise e
  end

  scap_file = policy_content_file(policy_scap_file)
  scap_file ||= save_or_serve_scap_file(policy_id, policy_scap_file)
  scap_file
end