stack_master 0.17.0 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +7 -5
- data/README.md +15 -0
- data/features/apply.feature +0 -1
- data/features/apply_with_compile_time_parameters.feature +93 -0
- data/lib/stack_master/parameter_loader.rb +41 -12
- data/lib/stack_master/sparkle_formation/compile_time/allowed_pattern_validator.rb +35 -0
- data/lib/stack_master/sparkle_formation/compile_time/allowed_values_validator.rb +37 -0
- data/lib/stack_master/sparkle_formation/compile_time/definitions_validator.rb +33 -0
- data/lib/stack_master/sparkle_formation/compile_time/empty_validator.rb +32 -0
- data/lib/stack_master/sparkle_formation/compile_time/max_length_validator.rb +36 -0
- data/lib/stack_master/sparkle_formation/compile_time/max_size_validator.rb +36 -0
- data/lib/stack_master/sparkle_formation/compile_time/min_length_validator.rb +36 -0
- data/lib/stack_master/sparkle_formation/compile_time/min_size_validator.rb +36 -0
- data/lib/stack_master/sparkle_formation/compile_time/number_validator.rb +35 -0
- data/lib/stack_master/sparkle_formation/compile_time/parameters_validator.rb +27 -0
- data/lib/stack_master/sparkle_formation/compile_time/state_builder.rb +32 -0
- data/lib/stack_master/sparkle_formation/compile_time/string_validator.rb +33 -0
- data/lib/stack_master/sparkle_formation/compile_time/value_builder.rb +40 -0
- data/lib/stack_master/sparkle_formation/compile_time/value_validator.rb +40 -0
- data/lib/stack_master/sparkle_formation/compile_time/value_validator_factory.rb +41 -0
- data/lib/stack_master/stack.rb +4 -3
- data/lib/stack_master/template_compiler.rb +2 -2
- data/lib/stack_master/template_compilers/cfndsl.rb +1 -1
- data/lib/stack_master/template_compilers/json.rb +1 -1
- data/lib/stack_master/template_compilers/sparkle_formation.rb +33 -4
- data/lib/stack_master/template_compilers/yaml.rb +1 -1
- data/lib/stack_master/validator.rb +4 -1
- data/lib/stack_master/version.rb +1 -1
- data/spec/spec_helper.rb +3 -0
- data/spec/stack_master/parameter_loader_spec.rb +65 -53
- data/spec/stack_master/sparkle_formation/compile_time/allowed_pattern_validator_spec.rb +47 -0
- data/spec/stack_master/sparkle_formation/compile_time/allowed_values_validator_spec.rb +47 -0
- data/spec/stack_master/sparkle_formation/compile_time/definitions_validator_spec.rb +36 -0
- data/spec/stack_master/sparkle_formation/compile_time/empty_validator_spec.rb +47 -0
- data/spec/stack_master/sparkle_formation/compile_time/max_length_validator_spec.rb +37 -0
- data/spec/stack_master/sparkle_formation/compile_time/max_size_validator_spec.rb +27 -0
- data/spec/stack_master/sparkle_formation/compile_time/min_length_validator_spec.rb +36 -0
- data/spec/stack_master/sparkle_formation/compile_time/min_size_validator_spec.rb +28 -0
- data/spec/stack_master/sparkle_formation/compile_time/number_validator_spec.rb +41 -0
- data/spec/stack_master/sparkle_formation/compile_time/parameters_validator_spec.rb +65 -0
- data/spec/stack_master/sparkle_formation/compile_time/state_builder_spec.rb +28 -0
- data/spec/stack_master/sparkle_formation/compile_time/string_validator_spec.rb +35 -0
- data/spec/stack_master/sparkle_formation/compile_time/value_build_spec.rb +52 -0
- data/spec/stack_master/sparkle_formation/compile_time/value_validator_factory_spec.rb +40 -0
- data/spec/stack_master/stack_spec.rb +15 -13
- data/spec/stack_master/template_compiler_spec.rb +7 -6
- data/spec/stack_master/template_compilers/cfndsl_spec.rb +4 -1
- data/spec/stack_master/template_compilers/json_spec.rb +4 -1
- data/spec/stack_master/template_compilers/sparkle_formation_spec.rb +53 -9
- data/spec/stack_master/template_compilers/yaml_spec.rb +4 -1
- data/spec/stack_master/validator_spec.rb +10 -6
- data/spec/support/gemfiles/Gemfile.activesupport-4.0.0 +5 -0
- data/spec/support/validator_spec.rb +23 -0
- data/stack_master.gemspec +1 -1
- metadata +55 -6
@@ -1,7 +1,10 @@
|
|
1
1
|
RSpec.describe StackMaster::TemplateCompilers::Yaml do
|
2
2
|
describe '.compile' do
|
3
|
+
|
4
|
+
let(:compile_time_parameters) { {'InstanceType' => 't2.medium'} }
|
5
|
+
|
3
6
|
def compile
|
4
|
-
described_class.compile(template_file_path)
|
7
|
+
described_class.compile(template_file_path, compile_time_parameters)
|
5
8
|
end
|
6
9
|
|
7
10
|
context 'valid YAML template' do
|
@@ -5,16 +5,20 @@ RSpec.describe StackMaster::Validator do
|
|
5
5
|
let(:stack_name) { 'myapp_vpc' }
|
6
6
|
let(:stack_definition) do
|
7
7
|
StackMaster::StackDefinition.new(
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
region: 'us-east-1',
|
9
|
+
stack_name: stack_name,
|
10
|
+
template: 'myapp_vpc.json',
|
11
|
+
tags: {'environment' => 'production'},
|
12
|
+
base_dir: File.expand_path('spec/fixtures'),
|
13
13
|
)
|
14
14
|
end
|
15
15
|
let(:cf) { Aws::CloudFormation::Client.new(region: "us-east-1") }
|
16
|
+
let(:parameter_hash) { {template_parameters: {}, compile_time_parameters: {'DbPassword' => {'secret' => 'db_password'}}} }
|
17
|
+
let(:resolved_parameters) { {'DbPassword' => 'sdfgjkdhlfjkghdflkjghdflkjg', 'InstanceType' => 't2.medium'} }
|
16
18
|
before do
|
17
19
|
allow(Aws::CloudFormation::Client).to receive(:new).and_return cf
|
20
|
+
allow(StackMaster::ParameterLoader).to receive(:load).and_return(parameter_hash)
|
21
|
+
allow(StackMaster::ParameterResolver).to receive(:resolve).and_return(resolved_parameters)
|
18
22
|
end
|
19
23
|
|
20
24
|
describe "#perform" do
|
@@ -48,5 +52,5 @@ RSpec.describe StackMaster::Validator do
|
|
48
52
|
end
|
49
53
|
end
|
50
54
|
end
|
51
|
-
|
55
|
+
|
52
56
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
def validate_valid_parameter(parameter)
|
2
|
+
context "with parameter #{parameter}" do
|
3
|
+
subject { described_class.new('name', definition, parameter).tap { |validator| validator.validate } }
|
4
|
+
|
5
|
+
it 'is valid' do
|
6
|
+
expect(subject.is_valid).to be_truthy
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def validate_invalid_parameter(parameter, errors)
|
12
|
+
context "with parameter #{parameter}" do
|
13
|
+
subject { described_class.new(name, definition, parameter).tap { |validator| validator.validate } }
|
14
|
+
|
15
|
+
it 'is not valid' do
|
16
|
+
expect(subject.is_valid).to be_falsey
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'has an error' do
|
20
|
+
expect(subject.error).to eql error_message.call(errors, definition)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/stack_master.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_dependency "diffy"
|
33
33
|
spec.add_dependency "erubis"
|
34
34
|
spec.add_dependency "colorize"
|
35
|
-
spec.add_dependency "activesupport",
|
35
|
+
spec.add_dependency "activesupport", '>= 4'
|
36
36
|
spec.add_dependency "sparkle_formation"
|
37
37
|
spec.add_dependency "table_print"
|
38
38
|
spec.add_dependency "dotgpg"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stack_master
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Hodgkiss
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-10-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -197,16 +197,16 @@ dependencies:
|
|
197
197
|
name: activesupport
|
198
198
|
requirement: !ruby/object:Gem::Requirement
|
199
199
|
requirements:
|
200
|
-
- - "
|
200
|
+
- - ">="
|
201
201
|
- !ruby/object:Gem::Version
|
202
|
-
version: '4
|
202
|
+
version: '4'
|
203
203
|
type: :runtime
|
204
204
|
prerelease: false
|
205
205
|
version_requirements: !ruby/object:Gem::Requirement
|
206
206
|
requirements:
|
207
|
-
- - "
|
207
|
+
- - ">="
|
208
208
|
- !ruby/object:Gem::Version
|
209
|
-
version: '4
|
209
|
+
version: '4'
|
210
210
|
- !ruby/object:Gem::Dependency
|
211
211
|
name: sparkle_formation
|
212
212
|
requirement: !ruby/object:Gem::Requirement
|
@@ -302,6 +302,7 @@ files:
|
|
302
302
|
- example/simple/templates/myapp_vpc.rb
|
303
303
|
- example/simple/templates/myapp_web.rb
|
304
304
|
- features/apply.feature
|
305
|
+
- features/apply_with_compile_time_parameters.feature
|
305
306
|
- features/apply_with_s3.feature
|
306
307
|
- features/delete.feature
|
307
308
|
- features/diff.feature
|
@@ -348,6 +349,21 @@ files:
|
|
348
349
|
- lib/stack_master/resolver_array.rb
|
349
350
|
- lib/stack_master/security_group_finder.rb
|
350
351
|
- lib/stack_master/sns_topic_finder.rb
|
352
|
+
- lib/stack_master/sparkle_formation/compile_time/allowed_pattern_validator.rb
|
353
|
+
- lib/stack_master/sparkle_formation/compile_time/allowed_values_validator.rb
|
354
|
+
- lib/stack_master/sparkle_formation/compile_time/definitions_validator.rb
|
355
|
+
- lib/stack_master/sparkle_formation/compile_time/empty_validator.rb
|
356
|
+
- lib/stack_master/sparkle_formation/compile_time/max_length_validator.rb
|
357
|
+
- lib/stack_master/sparkle_formation/compile_time/max_size_validator.rb
|
358
|
+
- lib/stack_master/sparkle_formation/compile_time/min_length_validator.rb
|
359
|
+
- lib/stack_master/sparkle_formation/compile_time/min_size_validator.rb
|
360
|
+
- lib/stack_master/sparkle_formation/compile_time/number_validator.rb
|
361
|
+
- lib/stack_master/sparkle_formation/compile_time/parameters_validator.rb
|
362
|
+
- lib/stack_master/sparkle_formation/compile_time/state_builder.rb
|
363
|
+
- lib/stack_master/sparkle_formation/compile_time/string_validator.rb
|
364
|
+
- lib/stack_master/sparkle_formation/compile_time/value_builder.rb
|
365
|
+
- lib/stack_master/sparkle_formation/compile_time/value_validator.rb
|
366
|
+
- lib/stack_master/sparkle_formation/compile_time/value_validator_factory.rb
|
351
367
|
- lib/stack_master/sparkle_formation/template_file.rb
|
352
368
|
- lib/stack_master/stack.rb
|
353
369
|
- lib/stack_master/stack_definition.rb
|
@@ -407,6 +423,20 @@ files:
|
|
407
423
|
- spec/stack_master/resolver_array_spec.rb
|
408
424
|
- spec/stack_master/security_group_finder_spec.rb
|
409
425
|
- spec/stack_master/sns_topic_finder_spec.rb
|
426
|
+
- spec/stack_master/sparkle_formation/compile_time/allowed_pattern_validator_spec.rb
|
427
|
+
- spec/stack_master/sparkle_formation/compile_time/allowed_values_validator_spec.rb
|
428
|
+
- spec/stack_master/sparkle_formation/compile_time/definitions_validator_spec.rb
|
429
|
+
- spec/stack_master/sparkle_formation/compile_time/empty_validator_spec.rb
|
430
|
+
- spec/stack_master/sparkle_formation/compile_time/max_length_validator_spec.rb
|
431
|
+
- spec/stack_master/sparkle_formation/compile_time/max_size_validator_spec.rb
|
432
|
+
- spec/stack_master/sparkle_formation/compile_time/min_length_validator_spec.rb
|
433
|
+
- spec/stack_master/sparkle_formation/compile_time/min_size_validator_spec.rb
|
434
|
+
- spec/stack_master/sparkle_formation/compile_time/number_validator_spec.rb
|
435
|
+
- spec/stack_master/sparkle_formation/compile_time/parameters_validator_spec.rb
|
436
|
+
- spec/stack_master/sparkle_formation/compile_time/state_builder_spec.rb
|
437
|
+
- spec/stack_master/sparkle_formation/compile_time/string_validator_spec.rb
|
438
|
+
- spec/stack_master/sparkle_formation/compile_time/value_build_spec.rb
|
439
|
+
- spec/stack_master/sparkle_formation/compile_time/value_validator_factory_spec.rb
|
410
440
|
- spec/stack_master/sparkle_formation/template_file_spec.rb
|
411
441
|
- spec/stack_master/stack_definition_spec.rb
|
412
442
|
- spec/stack_master/stack_differ_spec.rb
|
@@ -425,6 +455,8 @@ files:
|
|
425
455
|
- spec/stack_master/utils_spec.rb
|
426
456
|
- spec/stack_master/validator_spec.rb
|
427
457
|
- spec/stack_master_spec.rb
|
458
|
+
- spec/support/gemfiles/Gemfile.activesupport-4.0.0
|
459
|
+
- spec/support/validator_spec.rb
|
428
460
|
- stack_master.gemspec
|
429
461
|
- stacktemplates/parameter_region.yml
|
430
462
|
- stacktemplates/parameter_stack_name.yml
|
@@ -457,6 +489,7 @@ summary: StackMaster is a sure-footed way of creating, updating and keeping trac
|
|
457
489
|
of Amazon (AWS) CloudFormation stacks.
|
458
490
|
test_files:
|
459
491
|
- features/apply.feature
|
492
|
+
- features/apply_with_compile_time_parameters.feature
|
460
493
|
- features/apply_with_s3.feature
|
461
494
|
- features/delete.feature
|
462
495
|
- features/diff.feature
|
@@ -504,6 +537,20 @@ test_files:
|
|
504
537
|
- spec/stack_master/resolver_array_spec.rb
|
505
538
|
- spec/stack_master/security_group_finder_spec.rb
|
506
539
|
- spec/stack_master/sns_topic_finder_spec.rb
|
540
|
+
- spec/stack_master/sparkle_formation/compile_time/allowed_pattern_validator_spec.rb
|
541
|
+
- spec/stack_master/sparkle_formation/compile_time/allowed_values_validator_spec.rb
|
542
|
+
- spec/stack_master/sparkle_formation/compile_time/definitions_validator_spec.rb
|
543
|
+
- spec/stack_master/sparkle_formation/compile_time/empty_validator_spec.rb
|
544
|
+
- spec/stack_master/sparkle_formation/compile_time/max_length_validator_spec.rb
|
545
|
+
- spec/stack_master/sparkle_formation/compile_time/max_size_validator_spec.rb
|
546
|
+
- spec/stack_master/sparkle_formation/compile_time/min_length_validator_spec.rb
|
547
|
+
- spec/stack_master/sparkle_formation/compile_time/min_size_validator_spec.rb
|
548
|
+
- spec/stack_master/sparkle_formation/compile_time/number_validator_spec.rb
|
549
|
+
- spec/stack_master/sparkle_formation/compile_time/parameters_validator_spec.rb
|
550
|
+
- spec/stack_master/sparkle_formation/compile_time/state_builder_spec.rb
|
551
|
+
- spec/stack_master/sparkle_formation/compile_time/string_validator_spec.rb
|
552
|
+
- spec/stack_master/sparkle_formation/compile_time/value_build_spec.rb
|
553
|
+
- spec/stack_master/sparkle_formation/compile_time/value_validator_factory_spec.rb
|
507
554
|
- spec/stack_master/sparkle_formation/template_file_spec.rb
|
508
555
|
- spec/stack_master/stack_definition_spec.rb
|
509
556
|
- spec/stack_master/stack_differ_spec.rb
|
@@ -522,3 +569,5 @@ test_files:
|
|
522
569
|
- spec/stack_master/utils_spec.rb
|
523
570
|
- spec/stack_master/validator_spec.rb
|
524
571
|
- spec/stack_master_spec.rb
|
572
|
+
- spec/support/gemfiles/Gemfile.activesupport-4.0.0
|
573
|
+
- spec/support/validator_spec.rb
|