Class: Proxy::OpenSCAP::ArfJson

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_proxy_openscap/arf_json.rb

Instance Method Summary collapse

Instance Method Details

#as_json(file_in, file_out, proxy_name, proxy_url) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/smart_proxy_openscap/arf_json.rb', line 15

def as_json(file_in, file_out, proxy_name, proxy_url)
  ::OpenSCAP.oscap_init
  arf_digest   = Digest::SHA256.hexdigest(File.read(file_in))

  arf          = ::OpenSCAP::DS::Arf.new(file_in)
  test_result  = arf.test_result

  results      = test_result.rr
  sds          = arf.report_request
  bench_source = sds.select_checklist!
  benchmark    = ::OpenSCAP::Xccdf::Benchmark.new(bench_source)
  items        = benchmark.items

  report = parse_results(items, results, arf_digest)
  report[:openscap_proxy_name] = proxy_name
  report[:openscap_proxy_url] = proxy_url

  File.write file_out, report.to_json
ensure
  cleanup test_result, benchmark, sds, arf
end