cfn-nag 0.3.64 → 0.3.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 960b1a143e3a08dafc5cfed366c18b2edb16b3e1a4b02b4f1c82a10e995e0f50
4
- data.tar.gz: 2df5d5eac2ad2577e5e9aa951b79dd273e694a1aecc15872a318f952dbe13356
3
+ metadata.gz: 783d680607fef0a7471c74e353264ebbc7758a8cf7ffcf61392b41c06739d09b
4
+ data.tar.gz: 38505a5993a099e5140a0e5ad35122c5ecea8f8f14c04afbcf045ae180bf6c27
5
5
  SHA512:
6
- metadata.gz: 6794ae9f495c2f0a67656911eb0801046a438eb5a63962badce7e4942dbb1d42f8162c05ef8e004f7ccbc6cfdb4e30242c9af052f32cc40ca4a15e10904fdc0e
7
- data.tar.gz: 9c60301df79b8c7466319ea16d83862eec1da3a3418dfdee46f453a4a7d72b0a2c292bfa510087e421493d173a94e906f287f90108810760a5985ca0925d7ee8
6
+ metadata.gz: 00c6718490e3ade00a21a2f42e8fc4be2373a1dc60b68308f96563ce2eb356d44b9e697733a9cb37bbab9603f0e4bc84ef1e1306a3ce6bf83a6b476a35cfec54
7
+ data.tar.gz: c96b56fc4fbe93b9d04e51eb58da0442d8e41c2d143eb80a8a10704872db64d0d7b167ed212910e85cc4020bfa6cbf418480c6e6c0f982b2bfe3997547f3f062
@@ -64,6 +64,19 @@ class CfnNag
64
64
  aggregate_results
65
65
  end
66
66
 
67
+ def audit_result(violations)
68
+ {
69
+ failure_count: Violation.count_failures(violations),
70
+ violations: violations
71
+ }
72
+ end
73
+
74
+ def fatal_violation(message)
75
+ Violation.new(id: 'FATAL',
76
+ type: Violation::FAILING_VIOLATION,
77
+ message: message)
78
+ end
79
+
67
80
  ##
68
81
  # Given cloudformation json/yml, run all the rules against it
69
82
  #
@@ -74,26 +87,20 @@ class CfnNag
74
87
  #
75
88
  def audit(cloudformation_string:, parameter_values_string: nil)
76
89
  violations = []
77
- cfn_model = CfnParser.new.parse cloudformation_string,
78
- parameter_values_string
79
- violations += @custom_rule_loader.execute_custom_rules(cfn_model)
80
- violations = filter_violations_by_profile violations
81
- { failure_count: Violation.count_failures(violations),
82
- violations: violations }
83
- rescue Psych::SyntaxError, ParserError => parser_error
84
- violations << Violation.new(id: 'FATAL',
85
- type: Violation::FAILING_VIOLATION,
86
- message: parser_error.to_s)
87
- { failure_count: Violation.count_failures(violations),
88
- violations: violations }
89
- rescue JSON::ParserError => json_parameters_error
90
- violations << Violation.new(id: 'FATAL',
91
- type: Violation::FAILING_VIOLATION,
92
- message: "JSON Parameter values parse error: #{json_parameters_error.to_s}")
93
- {
94
- failure_count: Violation.count_failures(violations),
95
- violations: violations
96
- }
90
+
91
+ begin
92
+ cfn_model = CfnParser.new.parse cloudformation_string,
93
+ parameter_values_string
94
+ violations += @custom_rule_loader.execute_custom_rules(cfn_model)
95
+ violations = filter_violations_by_profile violations
96
+ rescue Psych::SyntaxError, ParserError => parser_error
97
+ violations << fatal_violation(parser_error.to_s)
98
+ rescue JSON::ParserError => json_parameters_error
99
+ error = "JSON Parameter values parse error: #{json_parameters_error.to_s}"
100
+ violations << fatal_violation(error)
101
+ end
102
+
103
+ audit_result(violations)
97
104
  end
98
105
 
99
106
  def self.configure_logging(opts)
@@ -97,9 +97,7 @@ class CustomRuleLoader
97
97
  end
98
98
  end
99
99
 
100
- # XXX given mangled_metadatas is never used or returned,
101
- # STDERR emit can be moved to unless block
102
- def validate_cfn_nag_metadata(cfn_model)
100
+ def collect_mangled_metadata(cfn_model)
103
101
  mangled_metadatas = []
104
102
  cfn_model.resources.each do |logical_resource_id, resource|
105
103
  resource_rules_to_suppress = rules_to_suppress resource
@@ -111,6 +109,13 @@ class CustomRuleLoader
111
109
  mangled_metadatas << [logical_resource_id, mangled_rules]
112
110
  end
113
111
  end
112
+ mangled_metadatas
113
+ end
114
+
115
+ # XXX given mangled_metadatas is never used or returned,
116
+ # STDERR emit can be moved to unless block
117
+ def validate_cfn_nag_metadata(cfn_model)
118
+ mangled_metadatas = collect_mangled_metadata(cfn_model)
114
119
  mangled_metadatas.each do |mangled_metadata|
115
120
  logical_resource_id = mangled_metadata.first
116
121
  mangled_rules = mangled_metadata[1]
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.3.64
4
+ version: 0.3.65
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Kascic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-11 00:00:00.000000000 Z
11
+ date: 2019-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec