Module: Vulnerability::Selection

Included in:
Validate
Defined in:
lib/puppet_x/vulnerability/selection.rb

Overview

Common selections on the Vulnerability list

Instance Method Summary collapse

Instance Method Details

#all_levelsObject



18
19
20
# File 'lib/puppet_x/vulnerability/selection.rb', line 18

def all_levels
  %w[Critical High Medium Low Negligible Unknown]
end

#allowed_levels(level) ⇒ Object



27
28
29
30
# File 'lib/puppet_x/vulnerability/selection.rb', line 27

def allowed_levels(level)
  validate_level(level)
  all_levels.select { |e| all_levels.index(e) > all_levels.index(level) }
end

#filter_cves(cve_list, allow_list) ⇒ Object



9
10
11
# File 'lib/puppet_x/vulnerability/selection.rb', line 9

def filter_cves(cve_list, allow_list)
  cve_list.reject { |c| allow_list.include?(c) }
end

#level_selection(cve_list, level) ⇒ Object



13
14
15
16
# File 'lib/puppet_x/vulnerability/selection.rb', line 13

def level_selection(cve_list, level)
  allowed_levels = allowed_levels(level)
  cve_list.reject { |_c, data| allowed_levels.include?(data['severity']) }
end

#selected_levels(level) ⇒ Object



22
23
24
25
# File 'lib/puppet_x/vulnerability/selection.rb', line 22

def selected_levels(level)
  validate_level(level)
  all_levels.select { |e| all_levels.index(e) <= all_levels.index(level) }
end

#validate_level(level) ⇒ Object



32
33
34
# File 'lib/puppet_x/vulnerability/selection.rb', line 32

def validate_level(level)
  fail "Level #{level} is not a valid level. Use one of: #{all_levels.join(', ')}." unless all_levels.include?(level)
end