sparkle_formation 3.0.30 → 3.0.32

Sign up to get free protection for your applications and to get access to all the features.
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