bora 1.5.0 → 1.6.0

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.
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