Module: AbideDevUtils::CEM
- Defined in:
- lib/abide_dev_utils/cem.rb,
lib/abide_dev_utils/cem/generate.rb,
lib/abide_dev_utils/cem/validate.rb,
lib/abide_dev_utils/cem/benchmark.rb,
lib/abide_dev_utils/cem/hiera_data.rb,
lib/abide_dev_utils/cem/mapping/mapper.rb,
lib/abide_dev_utils/cem/validate/strings.rb,
lib/abide_dev_utils/cem/generate/reference.rb,
lib/abide_dev_utils/cem/validate/resource_data.rb,
lib/abide_dev_utils/cem/hiera_data/mapping_data.rb,
lib/abide_dev_utils/cem/generate/coverage_report.rb,
lib/abide_dev_utils/cem/hiera_data/resource_data.rb,
lib/abide_dev_utils/cem/hiera_data/mapping_data/mixins.rb,
lib/abide_dev_utils/cem/validate/strings/base_validator.rb,
lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb,
lib/abide_dev_utils/cem/hiera_data/resource_data/control.rb,
lib/abide_dev_utils/cem/hiera_data/resource_data/resource.rb,
lib/abide_dev_utils/cem/hiera_data/resource_data/parameters.rb,
lib/abide_dev_utils/cem/validate/strings/validation_finding.rb,
lib/abide_dev_utils/cem/validate/strings/puppet_class_validator.rb,
lib/abide_dev_utils/cem/validate/strings/puppet_defined_type_validator.rb more...
Overview
Methods for working with Compliance Enforcement Modules (CEM)
Defined Under Namespace
Modules: Generate, HieraData, Mapping, Validate
Classes: Benchmark, Control, Resource
Class Method Summary
collapse
Class Method Details
[View source]
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/abide_dev_utils/cem.rb', line 19
def self.rule_id_format(rule_id)
case rule_id
when /^c[0-9_]+$/
:hiera_title_num
when /^[a-z][a-z0-9_]+$/
:hiera_title
when /^[0-9.]+$/
:number
else
:title
end
end
|
.rule_identifiers(rule_id) ⇒ Object
[View source]
32
33
34
35
36
37
38
|
# File 'lib/abide_dev_utils/cem.rb', line 32
def self.rule_identifiers(rule_id)
{
number: xccdf.control_parts(rule_id).first,
hiera_title: xccdf.name_normalize_control(rule_id),
hiera_title_num: xccdf.number_normalize_control(rule_id),
}
end
|
.update_legacy_config_from_diff(config_hiera, diff) ⇒ Object
[View source]
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/abide_dev_utils/cem.rb', line 40
def self.update_legacy_config_from_diff(config_hiera, diff)
new_config_hiera = config_hiera.dup
new_control_configs = {}
change_report = []
changes = diff.select { |d| d[:type][0] == :number }
config_hiera['config']['control_configs'].each do |key, val_hash|
key_id_format = rule_id_format(key)
changed = false
changes.each do |change|
if key_id_format == :title
next unless change[:title] == key
else
next unless rule_identifiers(change[:self].id)[key_id_format] == key
end
changed = true
new_key = if key_id_format == :title
change[:other_title]
else
rule_identifiers(change[:other].id)[key_id_format]
end
new_control_configs[new_key] = val_hash
change_report << {
type: :identifier_update,
from: key,
to: new_key,
}
end
new_control_configs[key] = val_hash unless changed
end
new_config_hiera['config']['control_configs'] = new_control_configs
[new_config_hiera, change_report]
end
|
.xccdf ⇒ Object
[View source]
10
11
12
13
14
15
16
17
|
# File 'lib/abide_dev_utils/cem.rb', line 10
def self.xccdf
return @xccdf if defined?(@xccdf)
xccdf = Object.new
xccdf.extend AbideDevUtils::XCCDF::Common
@xccdf = xccdf
@xccdf
end
|