Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ group :tests do
# renovate: datasource=rubygems versioning=ruby
gem 'pdk', ENV.fetch('PDK_VERSION', ['>= 2.0', '< 4.0']), require: false if RUBY_VERSION < '4'
gem 'syslog', require: false
gem 'voxpupuli-test', '~> 13.0'
gem 'voxpupuli-test', '~> 14.0'
end

group :development do
Expand Down
4 changes: 2 additions & 2 deletions lib/compliance_engine/component.rb
Original file line number Diff line number Diff line change
Expand Up @@ -216,14 +216,14 @@ def risk_too_high?(fragment)

if fragment['remediation'].key?('disabled')
message = "Remediation disabled for #{fragment}"
reason = fragment['remediation']['disabled']&.map { |value| value['reason'] }&.reject(&:nil?)&.join("\n")
reason = fragment['remediation']['disabled']&.map { |value| value['reason'] }&.compact&.join("\n")
message += "\n#{reason}" unless reason.nil?
ComplianceEngine.log.info message
return true
end

if fragment['remediation'].key?('risk')
risk_level = fragment['remediation']['risk']&.map { |value| value['level'] }&.select { |value| value.is_a?(Integer) }&.max
risk_level = fragment['remediation']['risk']&.map { |value| value['level'] }&.grep(Integer)&.max
if risk_level.is_a?(Integer) && risk_level >= enforcement_tolerance
ComplianceEngine.log.info "Remediation risk #{risk_level} exceeds enforcement enforcement_tolerance #{enforcement_tolerance} for #{fragment}"
return true
Expand Down
14 changes: 7 additions & 7 deletions spec/classes/compliance_engine/ces_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@

describe '#select' do
it 'returns a Collection of the same type' do
result = ces.select { |k, _| k == 'ce_one' }
result = ces.select { |k, _| k == 'ce_one' } # rubocop:disable Style/HashSlice
expect(result).to be_instance_of(described_class)
end

it 'contains only the selected keys' do
result = ces.select { |k, _| k == 'ce_one' }
result = ces.select { |k, _| k == 'ce_one' } # rubocop:disable Style/HashSlice
expect(result.keys).to eq(['ce_one'])
end

it 'does not modify the original collection' do
ces.select { |k, _| k == 'ce_one' }
ces.select { |k, _| k == 'ce_one' } # rubocop:disable Style/HashSlice
expect(ces.keys).to contain_exactly('ce_one', 'ce_two', 'ce_three')
end
end
Expand Down Expand Up @@ -182,11 +182,11 @@
end

describe '#clone isolation' do
include_examples 'collection copy isolation', :clone
it_behaves_like 'collection copy isolation', :clone
end

describe '#dup isolation' do
include_examples 'collection copy isolation', :dup
it_behaves_like 'collection copy isolation', :dup
end
end

Expand Down Expand Up @@ -272,11 +272,11 @@
end

describe '#clone isolation' do
include_examples 'by_oval_id copy isolation', :clone
it_behaves_like 'by_oval_id copy isolation', :clone
end

describe '#dup isolation' do
include_examples 'by_oval_id copy isolation', :dup
it_behaves_like 'by_oval_id copy isolation', :dup
end
end
end
4 changes: 2 additions & 2 deletions spec/classes/compliance_engine/component_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -229,11 +229,11 @@
end

describe '#clone isolation' do
include_examples 'component copy isolation', :clone
it_behaves_like 'component copy isolation', :clone
end

describe '#dup isolation' do
include_examples 'component copy isolation', :dup
it_behaves_like 'component copy isolation', :dup
end
end
end
28 changes: 14 additions & 14 deletions spec/classes/compliance_engine/data_clone_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -183,11 +183,11 @@ def visible_ce_titles(data_obj)
# Run the shared isolation suite for both copy methods.
# ---------------------------------------------------------------------------
describe '#clone isolation' do
include_examples 'copy isolation', :clone
it_behaves_like 'copy isolation', :clone
end

describe '#dup isolation' do
include_examples 'copy isolation', :dup
it_behaves_like 'copy isolation', :dup
end

# ---------------------------------------------------------------------------
Expand Down Expand Up @@ -312,11 +312,11 @@ def visible_ce_titles(data_obj)
end

describe '#clone' do
include_examples 'loader refresh isolation', :clone
it_behaves_like 'loader refresh isolation', :clone
end

describe '#dup' do
include_examples 'loader refresh isolation', :dup
it_behaves_like 'loader refresh isolation', :dup
end
end

Expand Down Expand Up @@ -376,11 +376,11 @@ def visible_ce_titles(data_obj)
end

describe '#clone isolation' do
include_examples 'enforcement_tolerance copy isolation', :clone
it_behaves_like 'enforcement_tolerance copy isolation', :clone
end

describe '#dup isolation' do
include_examples 'enforcement_tolerance copy isolation', :dup
it_behaves_like 'enforcement_tolerance copy isolation', :dup
end
end

Expand Down Expand Up @@ -435,11 +435,11 @@ def visible_ce_titles(data_obj)
end

describe '#clone isolation' do
include_examples 'environment_data copy isolation', :clone
it_behaves_like 'environment_data copy isolation', :clone
end

describe '#dup isolation' do
include_examples 'environment_data copy isolation', :dup
it_behaves_like 'environment_data copy isolation', :dup
end
end

Expand Down Expand Up @@ -477,11 +477,11 @@ def visible_ce_titles(data_obj)
end

describe '#clone' do
include_examples 'source context inherited', :clone
it_behaves_like 'source context inherited', :clone
end

describe '#dup' do
include_examples 'source context inherited', :dup
it_behaves_like 'source context inherited', :dup
end
end

Expand Down Expand Up @@ -520,11 +520,11 @@ def visible_ce_titles(data_obj)
end

describe '#clone' do
include_examples 'shared loader copy isolation', :clone
it_behaves_like 'shared loader copy isolation', :clone
end

describe '#dup' do
include_examples 'shared loader copy isolation', :dup
it_behaves_like 'shared loader copy isolation', :dup
end
end

Expand Down Expand Up @@ -571,11 +571,11 @@ def visible_ce_titles(data_obj)
end

describe '#clone' do
include_examples 'observer re-subscription', :clone
it_behaves_like 'observer re-subscription', :clone
end

describe '#dup' do
include_examples 'observer re-subscription', :dup
it_behaves_like 'observer re-subscription', :dup
end
end

Expand Down
2 changes: 1 addition & 1 deletion spec/functions/lookup/01_enforcement_confine_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
'confine' => {
'os.name' => [
'RedHat',
'CentOS'
'CentOS',
],
'os.release.major' => '7',
},
Expand Down
10 changes: 5 additions & 5 deletions spec/functions/lookup/07_enforcement_tolerance_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
'remediation' => {
'disabled' => [
{ 'reason' => 'This is the reason this check is disabled.' },
]
],
},
},
'07_level_21_check' => {
Expand All @@ -72,7 +72,7 @@
'remediation' => {
'risk' => [
{ 'level' => 21 },
]
],
},
},
'07_level_41_check' => {
Expand All @@ -87,7 +87,7 @@
'remediation' => {
'risk' => [
{ 'level' => 41, 'reason' => 'this is the reason for level 41' },
]
],
},
},
'07_level_61_check' => {
Expand All @@ -102,7 +102,7 @@
'remediation' => {
'risk' => [
{ 'level' => 61, 'reason' => 'this is the reason for level 61' },
]
],
},
},
'07_level_81_check' => {
Expand All @@ -117,7 +117,7 @@
'remediation' => {
'risk' => [
{ 'level' => 81, 'reason' => 'this is the reason for level 81' },
]
],
},
},
},
Expand Down
20 changes: 10 additions & 10 deletions spec/functions/lookup/10_enforce_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,29 +39,29 @@ def write_hieradata(hieradata_dir, hieradata_file, policy_order)
},
'identifiers' => {
'FOO2' => ['FOO2'],
'BAR2' => ['BAR2']
'BAR2' => ['BAR2'],
},
'settings' => {
'parameter' => 'useradd::shells',
'value' => ['/bin/disa']
}
'value' => ['/bin/disa'],
},
},
'oval:com.puppet.test.nist.useradd_shells' => {
'type' => 'puppet-class-parameter',
'controls' => {
'nist_800_53:rev4' => true
'nist_800_53:rev4' => true,
},
'identifiers' => {
'FOO2' => ['FOO2'],
'BAR2' => ['BAR2']
'BAR2' => ['BAR2'],
},
'settings' => {
'parameter' => 'useradd::shells',
'value' => ['/bin/nist']
}
}
}
}
'value' => ['/bin/nist'],
},
},
},
},
}

File.open(File.join(hieradata_dir, "#{hieradata_file}.yaml"), 'w') do |fh|
Expand Down
Loading