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
|