stack_master 1.6.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +548 -0
  3. data/bin/stack_master +17 -0
  4. data/lib/stack_master.rb +159 -0
  5. data/lib/stack_master/aws_driver/cloud_formation.rb +41 -0
  6. data/lib/stack_master/aws_driver/s3.rb +68 -0
  7. data/lib/stack_master/change_set.rb +109 -0
  8. data/lib/stack_master/cli.rb +208 -0
  9. data/lib/stack_master/command.rb +57 -0
  10. data/lib/stack_master/commands/apply.rb +221 -0
  11. data/lib/stack_master/commands/delete.rb +53 -0
  12. data/lib/stack_master/commands/diff.rb +31 -0
  13. data/lib/stack_master/commands/events.rb +39 -0
  14. data/lib/stack_master/commands/init.rb +111 -0
  15. data/lib/stack_master/commands/list_stacks.rb +20 -0
  16. data/lib/stack_master/commands/outputs.rb +31 -0
  17. data/lib/stack_master/commands/resources.rb +33 -0
  18. data/lib/stack_master/commands/status.rb +46 -0
  19. data/lib/stack_master/commands/terminal_helper.rb +28 -0
  20. data/lib/stack_master/commands/validate.rb +17 -0
  21. data/lib/stack_master/config.rb +133 -0
  22. data/lib/stack_master/ctrl_c.rb +4 -0
  23. data/lib/stack_master/paged_response_accumulator.rb +29 -0
  24. data/lib/stack_master/parameter_loader.rb +49 -0
  25. data/lib/stack_master/parameter_resolver.rb +98 -0
  26. data/lib/stack_master/parameter_resolvers/ami_finder.rb +36 -0
  27. data/lib/stack_master/parameter_resolvers/env.rb +18 -0
  28. data/lib/stack_master/parameter_resolvers/latest_ami.rb +19 -0
  29. data/lib/stack_master/parameter_resolvers/latest_ami_by_tags.rb +18 -0
  30. data/lib/stack_master/parameter_resolvers/parameter_store.rb +31 -0
  31. data/lib/stack_master/parameter_resolvers/secret.rb +52 -0
  32. data/lib/stack_master/parameter_resolvers/security_group.rb +22 -0
  33. data/lib/stack_master/parameter_resolvers/sns_topic_name.rb +31 -0
  34. data/lib/stack_master/parameter_resolvers/stack_output.rb +76 -0
  35. data/lib/stack_master/prompter.rb +21 -0
  36. data/lib/stack_master/resolver_array.rb +35 -0
  37. data/lib/stack_master/security_group_finder.rb +28 -0
  38. data/lib/stack_master/sns_topic_finder.rb +26 -0
  39. data/lib/stack_master/sparkle_formation/compile_time/allowed_pattern_validator.rb +35 -0
  40. data/lib/stack_master/sparkle_formation/compile_time/allowed_values_validator.rb +37 -0
  41. data/lib/stack_master/sparkle_formation/compile_time/definitions_validator.rb +33 -0
  42. data/lib/stack_master/sparkle_formation/compile_time/empty_validator.rb +32 -0
  43. data/lib/stack_master/sparkle_formation/compile_time/max_length_validator.rb +36 -0
  44. data/lib/stack_master/sparkle_formation/compile_time/max_size_validator.rb +36 -0
  45. data/lib/stack_master/sparkle_formation/compile_time/min_length_validator.rb +36 -0
  46. data/lib/stack_master/sparkle_formation/compile_time/min_size_validator.rb +36 -0
  47. data/lib/stack_master/sparkle_formation/compile_time/number_validator.rb +35 -0
  48. data/lib/stack_master/sparkle_formation/compile_time/parameters_validator.rb +27 -0
  49. data/lib/stack_master/sparkle_formation/compile_time/state_builder.rb +32 -0
  50. data/lib/stack_master/sparkle_formation/compile_time/string_validator.rb +33 -0
  51. data/lib/stack_master/sparkle_formation/compile_time/value_builder.rb +40 -0
  52. data/lib/stack_master/sparkle_formation/compile_time/value_validator.rb +40 -0
  53. data/lib/stack_master/sparkle_formation/compile_time/value_validator_factory.rb +41 -0
  54. data/lib/stack_master/sparkle_formation/template_file.rb +115 -0
  55. data/lib/stack_master/stack.rb +105 -0
  56. data/lib/stack_master/stack_definition.rb +103 -0
  57. data/lib/stack_master/stack_differ.rb +111 -0
  58. data/lib/stack_master/stack_events/fetcher.rb +38 -0
  59. data/lib/stack_master/stack_events/presenter.rb +27 -0
  60. data/lib/stack_master/stack_events/streamer.rb +68 -0
  61. data/lib/stack_master/stack_states.rb +34 -0
  62. data/lib/stack_master/stack_status.rb +61 -0
  63. data/lib/stack_master/template_compiler.rb +30 -0
  64. data/lib/stack_master/template_compilers/cfndsl.rb +13 -0
  65. data/lib/stack_master/template_compilers/json.rb +22 -0
  66. data/lib/stack_master/template_compilers/sparkle_formation.rb +71 -0
  67. data/lib/stack_master/template_compilers/yaml.rb +14 -0
  68. data/lib/stack_master/template_utils.rb +31 -0
  69. data/lib/stack_master/test_driver/cloud_formation.rb +193 -0
  70. data/lib/stack_master/test_driver/s3.rb +34 -0
  71. data/lib/stack_master/testing.rb +9 -0
  72. data/lib/stack_master/utils.rb +50 -0
  73. data/lib/stack_master/validator.rb +33 -0
  74. data/lib/stack_master/version.rb +3 -0
  75. metadata +457 -0
@@ -0,0 +1,34 @@
1
+ module StackMaster
2
+ module TestDriver
3
+ class S3
4
+ def initialize
5
+ reset
6
+ end
7
+
8
+ def set_region(_)
9
+ end
10
+
11
+ def reset
12
+ @files = Hash.new { |hash, key| hash[key] = Hash.new }
13
+ end
14
+
15
+ def upload_files(bucket: nil, prefix: nil, region: nil, files: {})
16
+ return if files.empty?
17
+
18
+ files.each do |template, file|
19
+ object_key = [prefix, template].compact.join('/')
20
+ @files[bucket][object_key] = file[:body]
21
+ end
22
+ end
23
+
24
+ def url(bucket:, prefix:, region:, template:)
25
+ ["https://s3-#{region}.amazonaws.com", bucket, prefix, template].compact.join('/')
26
+ end
27
+
28
+ # test only method
29
+ def find_file(bucket:, object_key:)
30
+ @files[bucket][object_key]
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,9 @@
1
+ require 'stack_master'
2
+
3
+ Aws.config[:stub_responses] = true
4
+
5
+ require 'stack_master/test_driver/cloud_formation'
6
+
7
+ StackMaster.cloud_formation_driver = StackMaster::TestDriver::CloudFormation.new
8
+ StackMaster.s3_driver = StackMaster::TestDriver::S3.new
9
+ StackMaster.non_interactive!
@@ -0,0 +1,50 @@
1
+ module StackMaster
2
+ module Utils
3
+ module Initializable
4
+ def initialize(attributes = {})
5
+ self.attributes = attributes
6
+ end
7
+
8
+ def attributes=(attributes)
9
+ attributes.each do |k, v|
10
+ instance_variable_set("@#{k}", v)
11
+ end
12
+ end
13
+ end
14
+
15
+ extend self
16
+
17
+ def change_extension(file_name, extension)
18
+ [
19
+ File.basename(file_name, '.*'),
20
+ extension
21
+ ].join('.')
22
+ end
23
+
24
+ def hash_to_aws_parameters(params)
25
+ params.inject([]) do |params, (key, value)|
26
+ params << { parameter_key: key, parameter_value: value }
27
+ params
28
+ end
29
+ end
30
+
31
+ def hash_to_aws_tags(tags)
32
+ return [] if tags.nil?
33
+ tags.inject([]) do |aws_tags, (key, value)|
34
+ aws_tags << { key: key, value: value }
35
+ aws_tags
36
+ end
37
+ end
38
+
39
+ def underscore_to_hyphen(string)
40
+ string.to_s.gsub('_', '-')
41
+ end
42
+
43
+ def underscore_keys_to_hyphen(hash)
44
+ hash.inject({}) do |hash, (key, value)|
45
+ hash[underscore_to_hyphen(key)] = value
46
+ hash
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,33 @@
1
+ module StackMaster
2
+ class Validator
3
+ def self.valid?(stack_definition, config)
4
+ new(stack_definition, config).perform
5
+ end
6
+
7
+ def initialize(stack_definition, config)
8
+ @stack_definition = stack_definition
9
+ @config = config
10
+ end
11
+
12
+ def perform
13
+ parameter_hash = ParameterLoader.load(@stack_definition.parameter_files)
14
+ compile_time_parameters = ParameterResolver.resolve(@config, @stack_definition, parameter_hash[:compile_time_parameters])
15
+
16
+ StackMaster.stdout.print "#{@stack_definition.stack_name}: "
17
+ template_body = TemplateCompiler.compile(@config, @stack_definition.template_file_path, compile_time_parameters, @stack_definition.compiler_options)
18
+ cf.validate_template(template_body: TemplateUtils.maybe_compressed_template_body(template_body))
19
+ StackMaster.stdout.puts "valid"
20
+ true
21
+ rescue Aws::CloudFormation::Errors::ValidationError => e
22
+ StackMaster.stdout.puts "invalid. #{e.message}"
23
+ false
24
+ end
25
+
26
+ private
27
+
28
+ def cf
29
+ @cf ||= StackMaster.cloud_formation_driver
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,3 @@
1
+ module StackMaster
2
+ VERSION = "1.6.0"
3
+ end
metadata ADDED
@@ -0,0 +1,457 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: stack_master
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.6.0
5
+ platform: x64-mingw32
6
+ authors:
7
+ - Steve Hodgkiss
8
+ - Glen Stampoultzis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2018-05-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.5'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.5'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: pry
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: cucumber
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: aruba
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: timecop
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: os
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: ruby-progressbar
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: commander
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: aws-sdk-cloudformation
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '1'
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '1'
168
+ - !ruby/object:Gem::Dependency
169
+ name: aws-sdk-ec2
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '1'
175
+ type: :runtime
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '1'
182
+ - !ruby/object:Gem::Dependency
183
+ name: aws-sdk-s3
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '1'
189
+ type: :runtime
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: '1'
196
+ - !ruby/object:Gem::Dependency
197
+ name: aws-sdk-sns
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: '1'
203
+ type: :runtime
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '1'
210
+ - !ruby/object:Gem::Dependency
211
+ name: aws-sdk-ssm
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - "~>"
215
+ - !ruby/object:Gem::Version
216
+ version: '1'
217
+ type: :runtime
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - "~>"
222
+ - !ruby/object:Gem::Version
223
+ version: '1'
224
+ - !ruby/object:Gem::Dependency
225
+ name: diffy
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ type: :runtime
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ - !ruby/object:Gem::Dependency
239
+ name: erubis
240
+ requirement: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ type: :runtime
246
+ prerelease: false
247
+ version_requirements: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ version: '0'
252
+ - !ruby/object:Gem::Dependency
253
+ name: colorize
254
+ requirement: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '0'
259
+ type: :runtime
260
+ prerelease: false
261
+ version_requirements: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - ">="
264
+ - !ruby/object:Gem::Version
265
+ version: '0'
266
+ - !ruby/object:Gem::Dependency
267
+ name: activesupport
268
+ requirement: !ruby/object:Gem::Requirement
269
+ requirements:
270
+ - - ">="
271
+ - !ruby/object:Gem::Version
272
+ version: '4'
273
+ type: :runtime
274
+ prerelease: false
275
+ version_requirements: !ruby/object:Gem::Requirement
276
+ requirements:
277
+ - - ">="
278
+ - !ruby/object:Gem::Version
279
+ version: '4'
280
+ - !ruby/object:Gem::Dependency
281
+ name: sparkle_formation
282
+ requirement: !ruby/object:Gem::Requirement
283
+ requirements:
284
+ - - ">="
285
+ - !ruby/object:Gem::Version
286
+ version: '0'
287
+ type: :runtime
288
+ prerelease: false
289
+ version_requirements: !ruby/object:Gem::Requirement
290
+ requirements:
291
+ - - ">="
292
+ - !ruby/object:Gem::Version
293
+ version: '0'
294
+ - !ruby/object:Gem::Dependency
295
+ name: table_print
296
+ requirement: !ruby/object:Gem::Requirement
297
+ requirements:
298
+ - - ">="
299
+ - !ruby/object:Gem::Version
300
+ version: '0'
301
+ type: :runtime
302
+ prerelease: false
303
+ version_requirements: !ruby/object:Gem::Requirement
304
+ requirements:
305
+ - - ">="
306
+ - !ruby/object:Gem::Version
307
+ version: '0'
308
+ - !ruby/object:Gem::Dependency
309
+ name: deep_merge
310
+ requirement: !ruby/object:Gem::Requirement
311
+ requirements:
312
+ - - ">="
313
+ - !ruby/object:Gem::Version
314
+ version: '0'
315
+ type: :runtime
316
+ prerelease: false
317
+ version_requirements: !ruby/object:Gem::Requirement
318
+ requirements:
319
+ - - ">="
320
+ - !ruby/object:Gem::Version
321
+ version: '0'
322
+ - !ruby/object:Gem::Dependency
323
+ name: cfndsl
324
+ requirement: !ruby/object:Gem::Requirement
325
+ requirements:
326
+ - - ">="
327
+ - !ruby/object:Gem::Version
328
+ version: '0'
329
+ type: :runtime
330
+ prerelease: false
331
+ version_requirements: !ruby/object:Gem::Requirement
332
+ requirements:
333
+ - - ">="
334
+ - !ruby/object:Gem::Version
335
+ version: '0'
336
+ - !ruby/object:Gem::Dependency
337
+ name: multi_json
338
+ requirement: !ruby/object:Gem::Requirement
339
+ requirements:
340
+ - - ">="
341
+ - !ruby/object:Gem::Version
342
+ version: '0'
343
+ type: :runtime
344
+ prerelease: false
345
+ version_requirements: !ruby/object:Gem::Requirement
346
+ requirements:
347
+ - - ">="
348
+ - !ruby/object:Gem::Version
349
+ version: '0'
350
+ description: ''
351
+ email:
352
+ - steve@hodgkiss.me
353
+ - gstamp@gmail.com
354
+ executables:
355
+ - stack_master
356
+ extensions: []
357
+ extra_rdoc_files: []
358
+ files:
359
+ - README.md
360
+ - bin/stack_master
361
+ - lib/stack_master.rb
362
+ - lib/stack_master/aws_driver/cloud_formation.rb
363
+ - lib/stack_master/aws_driver/s3.rb
364
+ - lib/stack_master/change_set.rb
365
+ - lib/stack_master/cli.rb
366
+ - lib/stack_master/command.rb
367
+ - lib/stack_master/commands/apply.rb
368
+ - lib/stack_master/commands/delete.rb
369
+ - lib/stack_master/commands/diff.rb
370
+ - lib/stack_master/commands/events.rb
371
+ - lib/stack_master/commands/init.rb
372
+ - lib/stack_master/commands/list_stacks.rb
373
+ - lib/stack_master/commands/outputs.rb
374
+ - lib/stack_master/commands/resources.rb
375
+ - lib/stack_master/commands/status.rb
376
+ - lib/stack_master/commands/terminal_helper.rb
377
+ - lib/stack_master/commands/validate.rb
378
+ - lib/stack_master/config.rb
379
+ - lib/stack_master/ctrl_c.rb
380
+ - lib/stack_master/paged_response_accumulator.rb
381
+ - lib/stack_master/parameter_loader.rb
382
+ - lib/stack_master/parameter_resolver.rb
383
+ - lib/stack_master/parameter_resolvers/ami_finder.rb
384
+ - lib/stack_master/parameter_resolvers/env.rb
385
+ - lib/stack_master/parameter_resolvers/latest_ami.rb
386
+ - lib/stack_master/parameter_resolvers/latest_ami_by_tags.rb
387
+ - lib/stack_master/parameter_resolvers/parameter_store.rb
388
+ - lib/stack_master/parameter_resolvers/secret.rb
389
+ - lib/stack_master/parameter_resolvers/security_group.rb
390
+ - lib/stack_master/parameter_resolvers/sns_topic_name.rb
391
+ - lib/stack_master/parameter_resolvers/stack_output.rb
392
+ - lib/stack_master/prompter.rb
393
+ - lib/stack_master/resolver_array.rb
394
+ - lib/stack_master/security_group_finder.rb
395
+ - lib/stack_master/sns_topic_finder.rb
396
+ - lib/stack_master/sparkle_formation/compile_time/allowed_pattern_validator.rb
397
+ - lib/stack_master/sparkle_formation/compile_time/allowed_values_validator.rb
398
+ - lib/stack_master/sparkle_formation/compile_time/definitions_validator.rb
399
+ - lib/stack_master/sparkle_formation/compile_time/empty_validator.rb
400
+ - lib/stack_master/sparkle_formation/compile_time/max_length_validator.rb
401
+ - lib/stack_master/sparkle_formation/compile_time/max_size_validator.rb
402
+ - lib/stack_master/sparkle_formation/compile_time/min_length_validator.rb
403
+ - lib/stack_master/sparkle_formation/compile_time/min_size_validator.rb
404
+ - lib/stack_master/sparkle_formation/compile_time/number_validator.rb
405
+ - lib/stack_master/sparkle_formation/compile_time/parameters_validator.rb
406
+ - lib/stack_master/sparkle_formation/compile_time/state_builder.rb
407
+ - lib/stack_master/sparkle_formation/compile_time/string_validator.rb
408
+ - lib/stack_master/sparkle_formation/compile_time/value_builder.rb
409
+ - lib/stack_master/sparkle_formation/compile_time/value_validator.rb
410
+ - lib/stack_master/sparkle_formation/compile_time/value_validator_factory.rb
411
+ - lib/stack_master/sparkle_formation/template_file.rb
412
+ - lib/stack_master/stack.rb
413
+ - lib/stack_master/stack_definition.rb
414
+ - lib/stack_master/stack_differ.rb
415
+ - lib/stack_master/stack_events/fetcher.rb
416
+ - lib/stack_master/stack_events/presenter.rb
417
+ - lib/stack_master/stack_events/streamer.rb
418
+ - lib/stack_master/stack_states.rb
419
+ - lib/stack_master/stack_status.rb
420
+ - lib/stack_master/template_compiler.rb
421
+ - lib/stack_master/template_compilers/cfndsl.rb
422
+ - lib/stack_master/template_compilers/json.rb
423
+ - lib/stack_master/template_compilers/sparkle_formation.rb
424
+ - lib/stack_master/template_compilers/yaml.rb
425
+ - lib/stack_master/template_utils.rb
426
+ - lib/stack_master/test_driver/cloud_formation.rb
427
+ - lib/stack_master/test_driver/s3.rb
428
+ - lib/stack_master/testing.rb
429
+ - lib/stack_master/utils.rb
430
+ - lib/stack_master/validator.rb
431
+ - lib/stack_master/version.rb
432
+ homepage: https://github.com/envato/stack_master
433
+ licenses:
434
+ - MIT
435
+ metadata: {}
436
+ post_install_message:
437
+ rdoc_options: []
438
+ require_paths:
439
+ - lib
440
+ required_ruby_version: !ruby/object:Gem::Requirement
441
+ requirements:
442
+ - - ">="
443
+ - !ruby/object:Gem::Version
444
+ version: 2.1.0
445
+ required_rubygems_version: !ruby/object:Gem::Requirement
446
+ requirements:
447
+ - - ">="
448
+ - !ruby/object:Gem::Version
449
+ version: '0'
450
+ requirements: []
451
+ rubyforge_project:
452
+ rubygems_version: 2.6.13
453
+ signing_key:
454
+ specification_version: 4
455
+ summary: StackMaster is a sure-footed way of creating, updating and keeping track
456
+ of Amazon (AWS) CloudFormation stacks.
457
+ test_files: []