sparkle_formation 3.0.30 → 3.0.32

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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/lib/sparkle_formation.rb +23 -23
  4. data/lib/sparkle_formation/aws.rb +1 -1
  5. data/lib/sparkle_formation/composition.rb +7 -7
  6. data/lib/sparkle_formation/error.rb +2 -2
  7. data/lib/sparkle_formation/function_struct.rb +22 -22
  8. data/lib/sparkle_formation/provider.rb +7 -7
  9. data/lib/sparkle_formation/provider/aws.rb +28 -28
  10. data/lib/sparkle_formation/provider/azure.rb +7 -7
  11. data/lib/sparkle_formation/provider/google.rb +16 -16
  12. data/lib/sparkle_formation/provider/heat.rb +6 -6
  13. data/lib/sparkle_formation/provider/terraform.rb +7 -7
  14. data/lib/sparkle_formation/resources.rb +18 -18
  15. data/lib/sparkle_formation/resources/aws.rb +216 -126
  16. data/lib/sparkle_formation/resources/aws_resources.json +3463 -1601
  17. data/lib/sparkle_formation/resources/azure.rb +6 -6
  18. data/lib/sparkle_formation/resources/google.rb +7 -7
  19. data/lib/sparkle_formation/resources/heat.rb +2 -2
  20. data/lib/sparkle_formation/resources/rackspace.rb +2 -2
  21. data/lib/sparkle_formation/resources/terraform.rb +6 -6
  22. data/lib/sparkle_formation/sparkle.rb +32 -32
  23. data/lib/sparkle_formation/sparkle_attribute.rb +10 -10
  24. data/lib/sparkle_formation/sparkle_attribute/aws.rb +30 -30
  25. data/lib/sparkle_formation/sparkle_attribute/azure.rb +39 -39
  26. data/lib/sparkle_formation/sparkle_attribute/google.rb +19 -19
  27. data/lib/sparkle_formation/sparkle_attribute/heat.rb +16 -16
  28. data/lib/sparkle_formation/sparkle_attribute/rackspace.rb +1 -1
  29. data/lib/sparkle_formation/sparkle_attribute/terraform.rb +41 -41
  30. data/lib/sparkle_formation/sparkle_collection.rb +4 -4
  31. data/lib/sparkle_formation/sparkle_collection/rainbow.rb +3 -3
  32. data/lib/sparkle_formation/sparkle_formation.rb +31 -31
  33. data/lib/sparkle_formation/sparkle_struct.rb +5 -5
  34. data/lib/sparkle_formation/translation.rb +32 -32
  35. data/lib/sparkle_formation/translation/heat.rb +126 -126
  36. data/lib/sparkle_formation/translation/rackspace.rb +118 -118
  37. data/lib/sparkle_formation/utils.rb +5 -5
  38. data/lib/sparkle_formation/version.rb +1 -1
  39. data/sparkle_formation.gemspec +1 -1
  40. metadata +7 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a29d3a6620a8273f91482119da653d55604be48e69c1e635efb439acb677fb3a
4
- data.tar.gz: 707f5d92f16fe7209a2e95822b40e9fa289cbe438516bc22ed894bc9e0b88b55
3
+ metadata.gz: ee99fa6d41cebeb6ced3d79f39ebc5caded4179d01eecd2c15f435057856b0fe
4
+ data.tar.gz: e2a4ca7febb8b5de48dc4d2731c922d05be53c85fa27bf7360e5ae98df3a41c0
5
5
  SHA512:
6
- metadata.gz: ac01ee39bf5e43271bc658ca754c74d7667eebb739b305b9c335e5b203c9009504a6b9313d946d3b7a06abb45fd1ad5c520c83e7931c37d4c538d6eefd2646c5
7
- data.tar.gz: aa7f5880c6c41d4a854f95023e0ee7e39a55bbb83f7050709d1abb0ce5daef7932b8284b8f61f9ecf2d5f709a3967c24ecdb20c4d384106627cf82fd96d6f6dc
6
+ metadata.gz: 5b15efc35a98bb669a3eb3dfe55b5095e1716af599b2e21c94c67cd12c01af42646c10c6a17d6793564b1353d2a63acd8420fae4fa1eb6d9b68777c386c6b936
7
+ data.tar.gz: ec4a9a34e04600b1f9395a48007bda3aab11cd12d4be4a1472f7782a7472c7d152f688d985e50cf78de8f47ed309b65bab87e05e8703ef7b4616d34d1ca1b013
@@ -1,3 +1,6 @@
1
+ # v3.0.32
2
+ * Update AWS builtin resources
3
+
1
4
  # v3.0.30
2
5
  * Fix race condition in pack loading (#241)
3
6
 
@@ -1,28 +1,28 @@
1
- require 'bogo'
2
- require 'multi_json'
3
- require 'attribute_struct'
1
+ require "bogo"
2
+ require "multi_json"
3
+ require "attribute_struct"
4
4
 
5
5
  # Unicorns and rainbows
6
6
  class SparkleFormation
7
- autoload :Aws, 'sparkle_formation/aws'
8
- autoload :AzureVariableStruct, 'sparkle_formation/function_struct'
9
- autoload :Composition, 'sparkle_formation/composition'
10
- autoload :Error, 'sparkle_formation/error'
11
- autoload :FunctionStruct, 'sparkle_formation/function_struct'
12
- autoload :GoogleStruct, 'sparkle_formation/function_struct'
13
- autoload :JinjaExpressionStruct, 'sparkle_formation/function_struct'
14
- autoload :JinjaStatementStruct, 'sparkle_formation/function_struct'
15
- autoload :Provider, 'sparkle_formation/provider'
16
- autoload :Resources, 'sparkle_formation/resources'
17
- autoload :Sparkle, 'sparkle_formation/sparkle'
18
- autoload :SparklePack, 'sparkle_formation/sparkle'
19
- autoload :SparkleCollection, 'sparkle_formation/sparkle_collection'
20
- autoload :SparkleAttribute, 'sparkle_formation/sparkle_attribute'
21
- autoload :SparkleStruct, 'sparkle_formation/sparkle_struct'
22
- autoload :TerraformStruct, 'sparkle_formation/function_struct'
23
- autoload :Utils, 'sparkle_formation/utils'
24
- autoload :Translation, 'sparkle_formation/translation'
25
- autoload :Version, 'sparkle_formation/version'
7
+ autoload :Aws, "sparkle_formation/aws"
8
+ autoload :AzureVariableStruct, "sparkle_formation/function_struct"
9
+ autoload :Composition, "sparkle_formation/composition"
10
+ autoload :Error, "sparkle_formation/error"
11
+ autoload :FunctionStruct, "sparkle_formation/function_struct"
12
+ autoload :GoogleStruct, "sparkle_formation/function_struct"
13
+ autoload :JinjaExpressionStruct, "sparkle_formation/function_struct"
14
+ autoload :JinjaStatementStruct, "sparkle_formation/function_struct"
15
+ autoload :Provider, "sparkle_formation/provider"
16
+ autoload :Resources, "sparkle_formation/resources"
17
+ autoload :Sparkle, "sparkle_formation/sparkle"
18
+ autoload :SparklePack, "sparkle_formation/sparkle"
19
+ autoload :SparkleCollection, "sparkle_formation/sparkle_collection"
20
+ autoload :SparkleAttribute, "sparkle_formation/sparkle_attribute"
21
+ autoload :SparkleStruct, "sparkle_formation/sparkle_struct"
22
+ autoload :TerraformStruct, "sparkle_formation/function_struct"
23
+ autoload :Utils, "sparkle_formation/utils"
24
+ autoload :Translation, "sparkle_formation/translation"
25
+ autoload :Version, "sparkle_formation/version"
26
26
  end
27
27
 
28
- require 'sparkle_formation/sparkle_formation'
28
+ require "sparkle_formation/sparkle_formation"
@@ -1,4 +1,4 @@
1
1
  # TODO: Include deprecation notice information
2
- require 'sparkle_formation'
2
+ require "sparkle_formation"
3
3
  # Shortcut helper constant
4
4
  SfnAws = SparkleFormation::Aws = SparkleFormation::Resources::Aws # rubocop:disable Style/ConstantName
@@ -1,18 +1,18 @@
1
- require 'sparkle_formation'
1
+ require "sparkle_formation"
2
2
 
3
3
  class SparkleFormation
4
4
  # Internal template composition
5
5
  class Composition
6
6
 
7
7
  # Component item of composition
8
- Component = Struct.new('Component', :origin, :key, :block) do
8
+ Component = Struct.new("Component", :origin, :key, :block) do
9
9
  def key
10
10
  self[:key].to_s
11
11
  end
12
12
  end
13
13
 
14
14
  # Override item of composition
15
- Override = Struct.new('Override', :origin, :args, :block)
15
+ Override = Struct.new("Override", :origin, :args, :block)
16
16
 
17
17
  # @return [SparkleFormation] owner of composition
18
18
  attr_reader :origin
@@ -26,7 +26,7 @@ class SparkleFormation
26
26
  # @return [self]
27
27
  def initialize(origin, args = {})
28
28
  unless origin.is_a?(SparkleFormation)
29
- raise TypeError.new 'Composition requires `SparkleFormation` instance as origin. ' \
29
+ raise TypeError.new "Composition requires `SparkleFormation` instance as origin. " \
30
30
  "Received origin type `#{origin.class}`."
31
31
  end
32
32
  @origin = origin
@@ -75,7 +75,7 @@ class SparkleFormation
75
75
  when :prepend
76
76
  components_list.unshift(item)
77
77
  else
78
- raise ArgumentError.new 'Unknown addition location provided. Valid: `:append, :prepend`. ' \
78
+ raise ArgumentError.new "Unknown addition location provided. Valid: `:append, :prepend`. " \
79
79
  "Received: `#{location.inspect}`"
80
80
  end
81
81
  end
@@ -97,7 +97,7 @@ class SparkleFormation
97
97
  when :prepend
98
98
  overrides_list.unshift(item)
99
99
  else
100
- raise ArgumentError.new 'Unknown addition location provided. Valid: ' \
100
+ raise ArgumentError.new "Unknown addition location provided. Valid: " \
101
101
  "`:append, :prepend`. Received: `#{location.inspect}`"
102
102
  end
103
103
  self
@@ -169,7 +169,7 @@ class SparkleFormation
169
169
  end
170
170
  unless valid_item
171
171
  raise TypeError.new "Invalid type encountered within collection `#{item.class}`. " \
172
- "Expected `#{type.map(&:to_s).join('`, `')}`."
172
+ "Expected `#{type.map(&:to_s).join("`, `")}`."
173
173
  end
174
174
  end
175
175
  items.dup
@@ -1,4 +1,4 @@
1
- require 'sparkle_formation'
1
+ require "sparkle_formation"
2
2
 
3
3
  class SparkleFormation
4
4
 
@@ -27,7 +27,7 @@ class SparkleFormation
27
27
  if name
28
28
  "Failed to locate item named: `#{name}`"
29
29
  else
30
- 'Failed to locate item'
30
+ "Failed to locate item"
31
31
  end
32
32
  end
33
33
 
@@ -1,4 +1,4 @@
1
- require 'sparkle_formation'
1
+ require "sparkle_formation"
2
2
 
3
3
  class SparkleFormation
4
4
 
@@ -91,7 +91,7 @@ class SparkleFormation
91
91
  if args.empty?
92
92
  super
93
93
  else
94
- @table['_function_'] = _klass_new(name, *args)
94
+ @table["_function_"] = _klass_new(name, *args)
95
95
  end
96
96
  end
97
97
 
@@ -115,7 +115,7 @@ class SparkleFormation
115
115
  key, value = @table.first
116
116
  suffix = _eval_join(
117
117
  *[
118
- key == '_function_' ? nil : key,
118
+ key == "_function_" ? nil : key,
119
119
  !value.nil? ? value._dump : nil,
120
120
  ].compact
121
121
  )
@@ -132,7 +132,7 @@ class SparkleFormation
132
132
  else
133
133
  arg.inspect
134
134
  end
135
- end.join(', ')
135
+ end.join(", ")
136
136
  unless _fn_name.to_s.empty?
137
137
  function_name = args.empty? ? "#{_fn_name}#{__empty_argument_list}" : "#{_fn_name}(#{args})"
138
138
  end
@@ -165,7 +165,7 @@ class SparkleFormation
165
165
  args = args.compact
166
166
  args.delete_if &:empty?
167
167
  args.slice(1, args.size).to_a.inject(args.first) do |memo, item|
168
- if item.start_with?('[')
168
+ if item.start_with?("[")
169
169
  memo += item
170
170
  else
171
171
  memo += ".#{item}"
@@ -189,17 +189,17 @@ class SparkleFormation
189
189
 
190
190
  # @return [String] start character(s) used to anchor function call
191
191
  def __anchor_start
192
- '['
192
+ "["
193
193
  end
194
194
 
195
195
  # @return [String] stop character(s) used to anchor function call
196
196
  def __anchor_stop
197
- ']'
197
+ "]"
198
198
  end
199
199
 
200
200
  # @return [String] value to use when argument list is empty
201
201
  def __empty_argument_list
202
- '()'
202
+ "()"
203
203
  end
204
204
 
205
205
  # @return [String] dump from root
@@ -239,9 +239,9 @@ class SparkleFormation
239
239
  if _fn_context && _fn_context.root!.data![_fn_name] && _fn_context.root!.data![_fn_name].data![_fn_args.first]
240
240
  __valid_keys = _fn_context.root!.data![_fn_name].data![_fn_args.first].keys!
241
241
  __current_key = @table.keys.first
242
- __match_key = __current_key.to_s.downcase.gsub('_', '')
242
+ __match_key = __current_key.to_s.downcase.gsub("_", "")
243
243
  __key_remap = __valid_keys.detect do |__nested_key|
244
- __nested_key.to_s.downcase.gsub('_', '') == __match_key
244
+ __nested_key.to_s.downcase.gsub("_", "") == __match_key
245
245
  end
246
246
  if __key_remap
247
247
  @table[__key_remap] = @table.delete(@table.keys.first)
@@ -261,17 +261,17 @@ class SparkleFormation
261
261
 
262
262
  # @return [String] start character(s) used to anchor function call
263
263
  def __anchor_start
264
- '{{ '
264
+ "{{ "
265
265
  end
266
266
 
267
267
  # @return [String] stop character(s) used to anchor function call
268
268
  def __anchor_stop
269
- ' }}'
269
+ " }}"
270
270
  end
271
271
 
272
272
  # @return [String] value to use when argument list is empty
273
273
  def __empty_argument_list
274
- ''
274
+ ""
275
275
  end
276
276
 
277
277
  # @return [FalseClass] disable single quote string generation
@@ -290,17 +290,17 @@ class SparkleFormation
290
290
 
291
291
  # @return [String] start character(s) used to anchor function call
292
292
  def __anchor_start
293
- '{% '
293
+ "{% "
294
294
  end
295
295
 
296
296
  # @return [String] stop character(s) used to anchor function call
297
297
  def __anchor_stop
298
- ' %}'
298
+ " %}"
299
299
  end
300
300
 
301
301
  # @return [String] value to use when argument list is empty
302
302
  def __empty_argument_list
303
- ''
303
+ ""
304
304
  end
305
305
 
306
306
  # @return [FalseClass] disable single quote string generation
@@ -319,17 +319,17 @@ class SparkleFormation
319
319
 
320
320
  # @return [String] start character(s) used to anchor function call
321
321
  def __anchor_start
322
- '$('
322
+ "$("
323
323
  end
324
324
 
325
325
  # @return [String] stop character(s) used to anchor function call
326
326
  def __anchor_stop
327
- ')'
327
+ ")"
328
328
  end
329
329
 
330
330
  # @return [String] value to use when argument list is empty
331
331
  def __empty_argument_list
332
- ''
332
+ ""
333
333
  end
334
334
 
335
335
  # @return [FalseClass] disable single quote string generation
@@ -348,17 +348,17 @@ class SparkleFormation
348
348
 
349
349
  # @return [String] start character(s) used to anchor function call
350
350
  def __anchor_start
351
- '${'
351
+ "${"
352
352
  end
353
353
 
354
354
  # @return [String] stop character(s) used to anchor function call
355
355
  def __anchor_stop
356
- '}'
356
+ "}"
357
357
  end
358
358
 
359
359
  # @return [String] value to use when argument list is empty
360
360
  def __empty_argument_list
361
- ''
361
+ ""
362
362
  end
363
363
 
364
364
  # @return [FalseClass] disable single quote string generation
@@ -1,13 +1,13 @@
1
- require 'sparkle_formation'
1
+ require "sparkle_formation"
2
2
 
3
3
  class SparkleFormation
4
4
  # Provider specific implementation namespace
5
5
  module Provider
6
- autoload :Aws, 'sparkle_formation/provider/aws'
7
- autoload :Azure, 'sparkle_formation/provider/azure'
8
- autoload :Google, 'sparkle_formation/provider/google'
9
- autoload :Heat, 'sparkle_formation/provider/heat'
10
- autoload :OpenStack, 'sparkle_formation/provider/heat'
11
- autoload :Terraform, 'sparkle_formation/provider/terraform'
6
+ autoload :Aws, "sparkle_formation/provider/aws"
7
+ autoload :Azure, "sparkle_formation/provider/azure"
8
+ autoload :Google, "sparkle_formation/provider/google"
9
+ autoload :Heat, "sparkle_formation/provider/heat"
10
+ autoload :OpenStack, "sparkle_formation/provider/heat"
11
+ autoload :Terraform, "sparkle_formation/provider/terraform"
12
12
  end
13
13
  end
@@ -1,4 +1,4 @@
1
- require 'sparkle_formation'
1
+ require "sparkle_formation"
2
2
 
3
3
  class SparkleFormation
4
4
  module Provider
@@ -7,7 +7,7 @@ class SparkleFormation
7
7
 
8
8
  # @return [String] Type string for AWS CFN stack resource
9
9
  def stack_resource_type
10
- 'AWS::CloudFormation::Stack'
10
+ "AWS::CloudFormation::Stack"
11
11
  end
12
12
 
13
13
  # Generate policy for stack
@@ -17,25 +17,25 @@ class SparkleFormation
17
17
  statements = []
18
18
  compile.resources.keys!.each do |r_name|
19
19
  r_object = compile.resources[r_name]
20
- if r_object['Policy']
21
- r_object['Policy'].keys!.each do |effect|
20
+ if r_object["Policy"]
21
+ r_object["Policy"].keys!.each do |effect|
22
22
  statements.push(
23
- 'Effect' => effect.to_s.capitalize,
24
- 'Action' => [r_object['Policy'][effect]].flatten.compact.map { |i| "Update:#{i}" },
25
- 'Resource' => "LogicalResourceId/#{r_name}",
26
- 'Principal' => '*',
23
+ "Effect" => effect.to_s.capitalize,
24
+ "Action" => [r_object["Policy"][effect]].flatten.compact.map { |i| "Update:#{i}" },
25
+ "Resource" => "LogicalResourceId/#{r_name}",
26
+ "Principal" => "*",
27
27
  )
28
28
  end
29
- r_object.delete!('Policy')
29
+ r_object.delete!("Policy")
30
30
  end
31
31
  end
32
32
  statements.push(
33
- 'Effect' => 'Allow',
34
- 'Action' => 'Update:*',
35
- 'Resource' => '*',
36
- 'Principal' => '*',
33
+ "Effect" => "Allow",
34
+ "Action" => "Update:*",
35
+ "Resource" => "*",
36
+ "Principal" => "*",
37
37
  )
38
- Smash.new('Statement' => statements)
38
+ Smash.new("Statement" => statements)
39
39
  end
40
40
 
41
41
  # Apply deeply nested stacks. This is the new nesting approach and
@@ -95,7 +95,7 @@ class SparkleFormation
95
95
  if args.include?(:bubble_outputs)
96
96
  outputs_hash = Hash[
97
97
  output_map.map do |name, value|
98
- [name, {'Value' => {'Fn::GetAtt' => value}}]
98
+ [name, {"Value" => {"Fn::GetAtt" => value}}]
99
99
  end
100
100
  ]
101
101
  unless compile.outputs.nil?
@@ -132,9 +132,9 @@ class SparkleFormation
132
132
  end
133
133
  end
134
134
  raise ArgumentError.new "Failed to detect available bubbling path for output `#{output_name}`. " <<
135
- 'This may be due to a circular dependency! ' <<
136
- "(Output Path: #{outputs[output_name].root_path.map(&:name).join(' > ')} " <<
137
- "Requester Path: #{root_path.map(&:name).join(' > ')})"
135
+ "This may be due to a circular dependency! " <<
136
+ "(Output Path: #{outputs[output_name].root_path.map(&:name).join(" > ")} " <<
137
+ "Requester Path: #{root_path.map(&:name).join(" > ")})"
138
138
  end
139
139
  result = compile.attr!(bubble_path.first.name, "Outputs.#{output_name}")
140
140
  if drip_path.size > 1
@@ -143,7 +143,7 @@ class SparkleFormation
143
143
  drip_path.each_slice(2) do |base_sparkle, ref_sparkle|
144
144
  next unless ref_sparkle
145
145
  base_sparkle.compile.resources[ref_sparkle.name].properties.parameters.set!(output_name, result)
146
- ref_sparkle.compile.parameters.set!(output_name) { type 'String' } # TODO: <<<<------ type check and prop
146
+ ref_sparkle.compile.parameters.set!(output_name) { type "String" } # TODO: <<<<------ type check and prop
147
147
  result = compile.ref!(output_name)
148
148
  end
149
149
  end
@@ -168,27 +168,27 @@ class SparkleFormation
168
168
  stack_parameters = stack_resource.properties.stack.compile.parameters
169
169
  unless stack_parameters.nil?
170
170
  stack_parameters._dump.each do |pname, pval|
171
- if pval['StackUnique']
171
+ if pval["StackUnique"]
172
172
  check_name = [stack_name, pname].join
173
173
  else
174
174
  check_name = pname
175
175
  end
176
176
  if parameters.keys.include?(check_name)
177
- if list_type?(parameters[check_name]['Type'])
178
- new_val = {'Fn::Join' => [',', {'Ref' => check_name}]}
177
+ if list_type?(parameters[check_name]["Type"])
178
+ new_val = {"Fn::Join" => [",", {"Ref" => check_name}]}
179
179
  else
180
- new_val = {'Ref' => check_name}
180
+ new_val = {"Ref" => check_name}
181
181
  end
182
182
  template.resources.set!(stack_name).properties.parameters.set!(pname, new_val)
183
183
  elsif output_map[check_name]
184
184
  template.resources.set!(stack_name).properties.parameters.set!(
185
- pname, 'Fn::GetAtt' => output_map[check_name],
185
+ pname, "Fn::GetAtt" => output_map[check_name],
186
186
  )
187
187
  else
188
- if list_type?(pval['Type'])
189
- new_val = {'Fn::Join' => [',', {'Ref' => check_name}]}
188
+ if list_type?(pval["Type"])
189
+ new_val = {"Fn::Join" => [",", {"Ref" => check_name}]}
190
190
  else
191
- new_val = {'Ref' => check_name}
191
+ new_val = {"Ref" => check_name}
192
192
  end
193
193
  template.resources.set!(stack_name).properties.parameters.set!(pname, new_val)
194
194
  parameters[check_name] = pval
@@ -208,7 +208,7 @@ class SparkleFormation
208
208
  # @param type [String]
209
209
  # @return [TrueClass, FalseClass]
210
210
  def list_type?(type)
211
- type == 'CommaDelimitedList' || type.start_with?('List<')
211
+ type == "CommaDelimitedList" || type.start_with?("List<")
212
212
  end
213
213
  end
214
214
  end