bora 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff4f553135f201ba7386c5b97464b2cf23931c85
4
- data.tar.gz: 78c79cc5fd9755d085b6f28ea6c8233a967fc0c2
3
+ metadata.gz: f3b7fb07038e20354a749af9db174d21fca4a3ab
4
+ data.tar.gz: 923412c975c6d3c2454d7dd616ed7b2339bb7646
5
5
  SHA512:
6
- metadata.gz: f95882cd11d3ee76306203b5a38c765c7ff525ff6e7633325593d5114afee6dee4ebf00f26dae6088628fb8a891ed1bfd488c8cb43d3d0175aa2b85e6837c874
7
- data.tar.gz: ae7563ed6725c60cd623051a3f3cbd625aa1eff8bacce0a5e7c3931a92a7fac07b86a15efc26557b824c20927dbed2b5ee660f9d20b97ae42e29ae63a142cf86
6
+ metadata.gz: f89db4d0f3175157424d9ea86ddb3fa6ec8aacabac8a762d8a7ad1e8f08f217c489f92d8fe2a72dfc287dfb6c82cf88bee97d5674d4b6961b00ab01808f15272
7
+ data.tar.gz: 039661e930401f3ac1c59bf122fd7aa67b60aaf79a5d129ec269a6dcb125d54f2667fdb6c626f0a8c35f1c90584a1fc111b9759a72907184af1a76f8a700bcc6
@@ -24,9 +24,10 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency "diffy", "~> 3.0"
25
25
  spec.add_dependency "rake", "~> 10.0"
26
26
  spec.add_dependency "thor", "~> 0.19"
27
+ spec.add_dependency "hashie", "~> 3.4.6"
27
28
 
28
29
  spec.add_development_dependency "bundler", "~> 1.11"
29
- spec.add_development_dependency "hashie", "~> 3.4.6"
30
30
  spec.add_development_dependency "rspec", "~> 3.0"
31
31
  spec.add_development_dependency "simplecov", "~> 0.12"
32
+ spec.add_development_dependency "pry"
32
33
  end
@@ -287,6 +287,7 @@ class Bora
287
287
  end
288
288
  end
289
289
  end
290
+ #binding.pry
290
291
  cfn_options
291
292
  end
292
293
 
@@ -316,8 +317,16 @@ class Bora
316
317
  end
317
318
 
318
319
  def cfn_options_from_stack_config
319
- valid_options = ["capabilities"]
320
- @stack_config.select { |k| valid_options.include?(k) }
320
+ valid_options = %w(capabilities tags disable_rollback on_failure)
321
+
322
+ cfn_options = @stack_config.select { |k| valid_options.include?(k) }
323
+ # Expand any Tags to "key" => key, "value" => value pairs
324
+ if cfn_options['tags']
325
+ cfn_options['tags'] = cfn_options['tags'].map do |k, v|
326
+ { key: k, value: v }
327
+ end
328
+ end
329
+ cfn_options
321
330
  end
322
331
 
323
332
  def get_new_template(cfn_options)
@@ -1,12 +1,13 @@
1
1
  require 'bora/stack'
2
+ require 'hashie'
2
3
 
3
4
  class Bora
4
5
  class Template
5
- # These are properties that you can define on the template, but which can also be defined in the stack
6
- INHERITABLE_PROPERTIES = ["capabilities", "default_region"]
6
+ # These are properties that you can define on the template, but which can also be defined and overriden in the stack
7
+ INHERITABLE_PROPERTIES = %w(capabilities default_region tags)
7
8
 
8
9
  # These are properties that can be passed in from the command line to override what's defined inthe stack
9
- OVERRIDABLE_PROPERTIES = ["cfn_stack_name"]
10
+ OVERRIDABLE_PROPERTIES = %w(cfn_stack_name)
10
11
 
11
12
  def initialize(template_name, template_config, override_config = {})
12
13
  @template_name = template_name
@@ -31,11 +32,12 @@ class Bora
31
32
  @stacks.each { |_, s| s.rake_tasks }
32
33
  end
33
34
 
34
-
35
35
  private
36
36
 
37
37
  def resolve_stack_config(template_config, stack_config, override_config)
38
- inheritable_properties(template_config).merge(stack_config).merge(overridable_properties(override_config))
38
+ Hashie::Mash.new(
39
+ inheritable_properties(template_config)
40
+ ).deep_merge(stack_config).merge(overridable_properties(override_config))
39
41
  end
40
42
 
41
43
  def inheritable_properties(config)
@@ -45,6 +47,5 @@ class Bora
45
47
  def overridable_properties(config)
46
48
  config.select { |k| INHERITABLE_PROPERTIES.include?(k) || OVERRIDABLE_PROPERTIES.include?(k) }
47
49
  end
48
-
49
50
  end
50
51
  end
@@ -1,3 +1,3 @@
1
1
  class Bora
2
- VERSION = "1.5.0"
2
+ VERSION = "1.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bora
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Blaxland
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-21 00:00:00.000000000 Z
11
+ date: 2017-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -95,33 +95,33 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.19'
97
97
  - !ruby/object:Gem::Dependency
98
- name: bundler
98
+ name: hashie
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.11'
104
- type: :development
103
+ version: 3.4.6
104
+ type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.11'
110
+ version: 3.4.6
111
111
  - !ruby/object:Gem::Dependency
112
- name: hashie
112
+ name: bundler
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 3.4.6
117
+ version: '1.11'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 3.4.6
124
+ version: '1.11'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0.12'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
153
167
  description:
154
168
  email:
155
169
  - charles.blaxland@gmail.com