cfn-nag 0.8.3 → 0.8.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e016d95eb663b1bd6a4c7d8d968ea35de3396da8521f03dc33afb69fef6d0adc
4
- data.tar.gz: 2e29005bceb483b4b14d6f35b32857775d89b81025d5eb2a9e2032730b36def6
3
+ metadata.gz: 5802d950eab38e40f6073fa29cc4736a052885451e106ff8e6501128e877ad84
4
+ data.tar.gz: 36b602473c0e8586b360641825d44aa911a5511afafa614bd4c40c912bee1efc
5
5
  SHA512:
6
- metadata.gz: 5ed62f5cc0fa8b820c226b760ca9ac68fb942245c83511dbab69dece8dac99a389b210f5f832d5d73ca935fdc36ca1037ce953b648267c1035e8767b43a46850
7
- data.tar.gz: d54be264eb1f5418df550667b78d6860e76dcd27f6319d01706569e66bff682c2ccf7157df0757887725467c00219ee0519056c40ef227365bee79204312f855
6
+ metadata.gz: a10f0637676007bfd8c4498f579d71eea6e29e0ae01fe1ad9b82e51b77fc97bf9a2b9f69350b948a5b9794b2970e0e52191783ea50254aeccb5028db3a0b0a68
7
+ data.tar.gz: 9bade29b10f95b488c6be7711329c5ea11c21a32169badb0b9c1e83dcd930aac757601ba1ad722da34aaeb2d8c23bf46bdda458be5dcc0b17d2b32b519236ec7
@@ -95,7 +95,7 @@ class CfnNag
95
95
  )
96
96
 
97
97
  violations = filter_violations_by_deny_list_and_profile(violations)
98
- violations = mark_line_numbers(violations, cfn_model)
98
+ violations = mark_line_numbers_and_element_types(violations, cfn_model)
99
99
  rescue RuleRepoException, Psych::SyntaxError, ParserError => fatal_error
100
100
  violations << Violation.fatal_violation(fatal_error.to_s)
101
101
  rescue JSON::ParserError => json_parameters_error
@@ -118,10 +118,11 @@ class CfnNag
118
118
 
119
119
  private
120
120
 
121
- def mark_line_numbers(violations, cfn_model)
121
+ def mark_line_numbers_and_element_types(violations, cfn_model)
122
122
  violations.each do |violation|
123
123
  violation.logical_resource_ids.each do |logical_resource_id|
124
124
  violation.line_numbers << cfn_model.line_numbers[logical_resource_id]
125
+ violation.element_types << cfn_model.element_types[logical_resource_id]
125
126
  end
126
127
  end
127
128
 
@@ -22,12 +22,13 @@ class BaseRule
22
22
  violation(logical_resource_ids)
23
23
  end
24
24
 
25
- def violation(logical_resource_ids, line_numbers = [])
25
+ def violation(logical_resource_ids, line_numbers = [], element_types = [])
26
26
  Violation.new(id: rule_id,
27
27
  name: self.class.name,
28
28
  type: rule_type,
29
29
  message: rule_text,
30
30
  logical_resource_ids: logical_resource_ids,
31
- line_numbers: line_numbers)
31
+ line_numbers: line_numbers,
32
+ element_types: element_types)
32
33
  end
33
34
  end
@@ -10,7 +10,8 @@ class ColoredStdoutResults < StdoutResults
10
10
  color:,
11
11
  message:,
12
12
  logical_resource_ids: nil,
13
- line_numbers: [])
13
+ line_numbers: [],
14
+ element_types: [])
14
15
 
15
16
  logical_resource_ids = nil if logical_resource_ids == []
16
17
 
@@ -18,7 +19,7 @@ class ColoredStdoutResults < StdoutResults
18
19
  puts
19
20
  puts colorize(color, "| #{message_type.upcase}")
20
21
  puts colorize(color, '|')
21
- puts colorize(color, "| Resources: #{logical_resource_ids}") unless logical_resource_ids.nil?
22
+ puts colorize(color, "| #{element_type(element_types)}: #{logical_resource_ids}") unless logical_resource_ids.nil?
22
23
  puts colorize(color, "| Line Numbers: #{line_numbers}") unless line_numbers.empty?
23
24
  puts colorize(color, '|') unless line_numbers.empty? && logical_resource_ids.nil?
24
25
  puts colorize(color, "| #{message}")
@@ -38,4 +39,12 @@ class ColoredStdoutResults < StdoutResults
38
39
  def colorize(color_symbol, str)
39
40
  "\e[#{color_code(color_symbol)}m#{str}\e[0m"
40
41
  end
42
+
43
+ def element_type(element_types)
44
+ if element_types == [] || element_types.first.nil?
45
+ 'Element'
46
+ elsif !element_types.first.nil?
47
+ element_types.first.capitalize
48
+ end
49
+ end
41
50
  end
@@ -11,7 +11,8 @@ class SimpleStdoutResults < StdoutResults
11
11
  message:,
12
12
  color:,
13
13
  logical_resource_ids: nil,
14
- line_numbers: [])
14
+ line_numbers: [],
15
+ element_types: [])
15
16
 
16
17
  logical_resource_ids = nil if logical_resource_ids == []
17
18
 
@@ -19,10 +20,18 @@ class SimpleStdoutResults < StdoutResults
19
20
  puts
20
21
  puts "| #{message_type.upcase}"
21
22
  puts '|'
22
- puts "| Resources: #{logical_resource_ids}" unless logical_resource_ids.nil?
23
+ puts "| #{element_type(element_types)}: #{logical_resource_ids}" unless logical_resource_ids.nil?
23
24
  puts "| Line Numbers: #{line_numbers}" unless line_numbers.empty?
24
25
  puts '|' unless line_numbers.empty? && logical_resource_ids.nil?
25
26
  puts "| #{message}"
26
27
  end
27
28
  # rubocop:enable Lint/UnusedMethodArgument
29
+
30
+ def element_type(element_types)
31
+ if element_types == [] || element_types.first.nil?
32
+ 'Element'
33
+ elsif !element_types.first.nil?
34
+ element_types.first.capitalize
35
+ end
36
+ end
28
37
  end
@@ -12,7 +12,8 @@ class StdoutResults
12
12
  color: color,
13
13
  message: violation.message,
14
14
  logical_resource_ids: violation.logical_resource_ids,
15
- line_numbers: violation.line_numbers
15
+ line_numbers: violation.line_numbers,
16
+ element_types: violation.element_types
16
17
  end
17
18
  end
18
19
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  module CfnNagVersion
4
4
  # This is managed at release time via scripts/publish.sh
5
- VERSION = '0.8.3'
5
+ VERSION = '0.8.7'
6
6
  end
@@ -4,7 +4,7 @@ require_relative 'rule_definition'
4
4
 
5
5
  # Rule definition for violations
6
6
  class Violation < RuleDefinition
7
- attr_reader :logical_resource_ids, :line_numbers
7
+ attr_reader :logical_resource_ids, :line_numbers, :element_types
8
8
 
9
9
  # rubocop:disable Metrics/ParameterLists
10
10
  def initialize(id:,
@@ -12,7 +12,8 @@ class Violation < RuleDefinition
12
12
  type:,
13
13
  message:,
14
14
  logical_resource_ids: [],
15
- line_numbers: [])
15
+ line_numbers: [],
16
+ element_types: [])
16
17
  super id: id,
17
18
  name: name,
18
19
  type: type,
@@ -20,6 +21,7 @@ class Violation < RuleDefinition
20
21
 
21
22
  @logical_resource_ids = logical_resource_ids
22
23
  @line_numbers = line_numbers
24
+ @element_types = element_types
23
25
  end
24
26
  # rubocop:enable Metrics/ParameterLists
25
27
 
@@ -30,7 +32,8 @@ class Violation < RuleDefinition
30
32
  def to_h
31
33
  super.to_h.merge(
32
34
  logical_resource_ids: @logical_resource_ids,
33
- line_numbers: @line_numbers
35
+ line_numbers: @line_numbers,
36
+ element_types: @element_types
34
37
  )
35
38
  end
36
39
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn-nag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Kascic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-26 00:00:00.000000000 Z
11
+ date: 2021-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 0.6.5
75
+ version: 0.6.6
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 0.6.5
82
+ version: 0.6.6
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: logging
85
85
  requirement: !ruby/object:Gem::Requirement