Module: AbideDevUtils::XCCDF

Defined in:
lib/abide_dev_utils/xccdf.rb,
lib/abide_dev_utils/xccdf/diff.rb,
lib/abide_dev_utils/xccdf/utils.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/helpers.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, Utils Classes: Benchmark, CisControl, CisControls, ObjectContainer, Profile, Profiles, StigControl, StigControls, XccdfElement, XccdfObject

Class Method Summary collapse

Class Method Details

.diff(file1, file2, opts) ⇒ Object

Diffs two xccdf files



38
39
40
41
42
43
# File 'lib/abide_dev_utils/xccdf.rb', line 38

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
23
24
# 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)
  when 'stig'
    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



46
47
48
49
50
# File 'lib/abide_dev_utils/xccdf.rb', line 46

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



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

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