cfn-model 0.6.4 → 0.6.7

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: 819df60d0212456c46c1fe5ae95b97bf33c8cb223a0d4f836e4d2f7e35a9d28e
4
- data.tar.gz: 9e29152b3a2988ad4dc31ef0bb40307ae5fcb23dc5752ee13998280ee1b6e660
3
+ metadata.gz: d79c8d1051b8e8c3748f10ac83bc366170edaa401a3f1b7749465a5a2cea116c
4
+ data.tar.gz: 31a167e318084371852f824d4797a5ecb415cabe1aaf9f30dde9bb5259bb4b75
5
5
  SHA512:
6
- metadata.gz: 60dff3853250130a0d39e7a4844e1e84f11be354c88600e3b127387e71afbfd6f5aac4f90b8192c7b19559dfd263ef127d7eb0070e016c79347579d3d8efae42
7
- data.tar.gz: ec6b71a0376167b1a52857c4570a8e1c199ccf40901d1cff5d31cf26da32d6c01dccd035f0504e712eb344ca62e90b70408277223eff5de8dc85c7c4ef9a2f71
6
+ metadata.gz: b03d3df6c11bf67d0e29c0cd12679cbe66c93f7b6fea38e0084a42d62dc628dcf65c91840d889095e08e5a5d724dd3cefc0e47b21c836030971561871c736d5e
7
+ data.tar.gz: 781f07c95fb3ef8c795d1a1a784ead19f6a80835e8422260cb5dc4c6d6f6baded4731e2a0f324ae86864103c54069593b8a65b68f681aa7646b7774733749aa3
@@ -3,10 +3,10 @@
3
3
  require_relative 'references'
4
4
 
5
5
  class CfnModel
6
- attr_reader :resources, :parameters, :line_numbers, :conditions, :globals, :mappings
6
+ attr_reader :resources, :parameters, :line_numbers, :conditions, :globals, :mappings, :element_types
7
7
 
8
8
  ##
9
- # if you really want it, here it is - the raw Hash from YAML.load. you'll have to mess with structural nits of
9
+ # if you really want it, here it is - the raw Hash from YAML.safe_load. you'll have to mess with structural nits of
10
10
  # CloudFormation and deal with variations between yaml/json refs and all that
11
11
  #
12
12
  attr_accessor :raw_model
@@ -19,6 +19,7 @@ class CfnModel
19
19
  @mappings = {}
20
20
  @raw_model = nil
21
21
  @line_numbers = {}
22
+ @element_types = {}
22
23
  end
23
24
 
24
25
  ##
@@ -65,7 +65,7 @@ class CfnParser
65
65
  if with_line_numbers
66
66
  parse_with_line_numbers(cloudformation_yml)
67
67
  else
68
- YAML.load cloudformation_yml
68
+ YAML.safe_load cloudformation_yml, permitted_classes: [Date]
69
69
  end
70
70
 
71
71
  # Transform raw resources in template as performed by
@@ -156,6 +156,7 @@ class CfnParser
156
156
  assign_fields_based_upon_properties resource_object, resource, cfn_model
157
157
 
158
158
  cfn_model.resources[resource_name] = resource_object
159
+ cfn_model.element_types[resource_name] = "resource"
159
160
  end
160
161
  cfn_model
161
162
  end
@@ -173,6 +174,7 @@ class CfnParser
173
174
 
174
175
  cfn_model.resources[resource_name] = resource_object
175
176
  cfn_model.line_numbers[resource_name] = resource['Type']['line']
177
+ cfn_model.element_types[resource_name] = "resource"
176
178
  end
177
179
  cfn_model
178
180
  end
@@ -184,6 +186,7 @@ class CfnParser
184
186
  parameter = Parameter.new
185
187
  parameter.id = parameter_name
186
188
  parameter.type = parameter_hash['Type']
189
+ parameter.logical_resource_id = parameter_name
187
190
 
188
191
  parameter_hash.each do |property_name, property_value|
189
192
  next if %w(Type).include? property_name
@@ -191,6 +194,8 @@ class CfnParser
191
194
  end
192
195
 
193
196
  cfn_model.parameters[parameter_name] = parameter
197
+ cfn_model.line_numbers[parameter_name] = parameter_hash['Type']['line']
198
+ cfn_model.element_types[parameter_name] = "parameter"
194
199
  end
195
200
  cfn_model
196
201
  end
@@ -12,7 +12,7 @@ class CloudFormationValidator
12
12
 
13
13
  schema = SchemaGenerator.new.generate cloudformation_string
14
14
  validator = Kwalify::Validator.new(schema)
15
- validator.validate(YAML.load(cloudformation_string))
15
+ validator.validate(YAML.safe_load(cloudformation_string, permitted_classes: [Date]))
16
16
  rescue ArgumentError, IOError, NameError => e
17
17
  raise ParserError, e.inspect
18
18
  end
@@ -5,7 +5,7 @@ require 'cfn-model/parser/parser_error'
5
5
  class ResourceTypeValidator
6
6
 
7
7
  def self.validate(cloudformation_yml)
8
- hash = YAML.load cloudformation_yml
8
+ hash = YAML.safe_load cloudformation_yml, permitted_classes: [Date]
9
9
  if hash == false || hash.nil?
10
10
  raise ParserError.new 'yml empty'
11
11
  end
@@ -19,7 +19,7 @@ class SchemaGenerator
19
19
  parameters_schema = generate_schema_for_parameter_keys cloudformation_hash
20
20
  resources_schema = generate_schema_for_resource_keys cloudformation_hash
21
21
 
22
- main_schema = YAML.load IO.read(schema_file('schema.yml.erb'))
22
+ main_schema = YAML.safe_load IO.read(schema_file('schema.yml.erb'))
23
23
  if parameters_schema.empty?
24
24
  main_schema['mapping'].delete 'Parameters'
25
25
  else
@@ -82,7 +82,7 @@ class SchemaGenerator
82
82
  if !File.exist? schema_file_path
83
83
  nil
84
84
  else
85
- YAML.load IO.read(schema_file_path)
85
+ YAML.safe_load IO.read(schema_file_path)
86
86
  end
87
87
  end
88
88
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn-model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.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-14 00:00:00.000000000 Z
11
+ date: 2022-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -84,16 +84,22 @@ dependencies:
84
84
  name: psych
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '3.1'
90
+ - - "<"
88
91
  - !ruby/object:Gem::Version
89
- version: '3'
92
+ version: '5'
90
93
  type: :runtime
91
94
  prerelease: false
92
95
  version_requirements: !ruby/object:Gem::Requirement
93
96
  requirements:
94
- - - "~>"
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '3.1'
100
+ - - "<"
95
101
  - !ruby/object:Gem::Version
96
- version: '3'
102
+ version: '5'
97
103
  description: An object model for CloudFormation templates
98
104
  email:
99
105
  executables:
@@ -193,9 +199,9 @@ licenses:
193
199
  metadata:
194
200
  bug_tracker_uri: https://github.com/stelligent/cfn-model/issues
195
201
  changelog_uri: https://github.com/stelligent/cfn-model/releases
196
- documentation_uri: https://www.rubydoc.info/gems/cfn-model/0.6.4
202
+ documentation_uri: https://www.rubydoc.info/gems/cfn-model/0.6.7
197
203
  homepage_uri: https://github.com/stelligent/cfn-model
198
- source_code_uri: https://github.com/stelligent/cfn-model/tree/v0.6.4
204
+ source_code_uri: https://github.com/stelligent/cfn-model/tree/v0.6.7
199
205
  post_install_message:
200
206
  rdoc_options: []
201
207
  require_paths: