Module: AbideDevUtils::XCCDF

Defined in:
lib/abide_dev_utils/xccdf.rb,
lib/abide_dev_utils/xccdf/diff.rb,
lib/abide_dev_utils/xccdf/parser.rb,
lib/abide_dev_utils/xccdf/diff/utils.rb,
lib/abide_dev_utils/xccdf/diff/benchmark.rb,
lib/abide_dev_utils/xccdf/parser/objects.rb,
lib/abide_dev_utils/xccdf/diff/benchmark/profile.rb,
lib/abide_dev_utils/xccdf/diff/benchmark/property.rb,
lib/abide_dev_utils/xccdf/diff/benchmark/number_title.rb,
lib/abide_dev_utils/xccdf/parser/objects/digest_object.rb,
lib/abide_dev_utils/xccdf/parser/objects/numbered_object.rb,
lib/abide_dev_utils/xccdf/diff/benchmark/property_existence.rb

Overview

Contains modules and classes for working with XCCDF files

Defined Under Namespace

Modules: Common, Diff, Parser Classes: Benchmark, Control, Controls, ObjectContainer, Profile, Profiles, XccdfElement

Class Method Summary collapse

Class Method Details

.diff(file1, file2, opts) ⇒ Object

Diffs two xccdf files



36
37
38
39
40
41
# File 'lib/abide_dev_utils/xccdf.rb', line 36

def self.diff(file1, file2, opts)
  require 'abide_dev_utils/xccdf/diff'
  bm1 = Benchmark.new(file1)
  bm2 = Benchmark.new(file2)
  AbideDevUtils::XCCDF::Diff.diff_benchmarks(bm1, bm2, opts)
end

.gen_map(xccdf_file, **opts) ⇒ Object

Generate map for CEM



14
15
16
17
18
19
20
21
22
# File 'lib/abide_dev_utils/xccdf.rb', line 14

def self.gen_map(xccdf_file, **opts)
  type = opts.fetch(:type, 'cis')
  case type.downcase
  when 'cis'
    Benchmark.new(xccdf_file).gen_map(**opts)
  else
    raise AbideDevUtils::Errors::UnsupportedXCCDFError, "XCCDF type #{type} is unsupported!"
  end
end

.new_style_diff(file1, file2, opts) ⇒ Object

Use new-style diff



44
45
46
47
48
# File 'lib/abide_dev_utils/xccdf.rb', line 44

def self.new_style_diff(file1, file2, opts)
  require 'abide_dev_utils/xccdf/diff/benchmark'
  bm_diff = AbideDevUtils::XCCDF::Diff::BenchmarkDiff.new(file1, file2, opts)
  bm_diff.diff
end

.to_hiera(xccdf_file, opts) ⇒ Object

Converts and xccdf file to a Hiera representation



25
26
27
28
29
30
31
32
33
# File 'lib/abide_dev_utils/xccdf.rb', line 25

def self.to_hiera(xccdf_file, opts)
  type = opts.fetch(:type, 'cis')
  case type.downcase
  when 'cis'
    Benchmark.new(xccdf_file).to_hiera(**opts)
  else
    raise AbideDevUtils::Errors::UnsupportedXCCDFError, "XCCDF type #{type} is unsupported!"
  end
end