bbc-cosmos-tools 0.4.3 → 0.4.4

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: 85c052e70bf55d6b859d9c3b6f7aec1573828fb0
4
- data.tar.gz: 58cdf9bb265c6f1544b7a60bddfa6a090e13d4c6
3
+ metadata.gz: c9f73c62ff74b961229432dd533a9ebd0bf8b025
4
+ data.tar.gz: 3d456c48f0f1455b0f0ec8112ae2f3507203f4d0
5
5
  SHA512:
6
- metadata.gz: 93b2ed6fe6c2155e022e9b17bfc4626d651f5e491b04ebb3cb6fd4e659d507c6adbb27c5229a95727596c7f50dcc47860ff48e78cab7bd3248df67d9969719a1
7
- data.tar.gz: d62438d8c0a3f2639dbdd41bd3c162749a98323551c5fb8b212bfa5b3756ba2075f1d0d662438fcf483848141b84683f430d912b80e46b9320770cd1d39c6775
6
+ metadata.gz: 7da7d791f4eb7318141eb379f20d6cf6ac7a4da67a7744df2b90c583b0bbd1c90460e22c65a3dad726b4c24f58fca7596deb69e087f0cadf4dec5ff0e8b6d7dc
7
+ data.tar.gz: f027c41e34a4eb9c50a0382c81cfe1b4d9d6ccdc60fc044f204eb71321dd83620c7d1b1f93cf5e4f76dc795daf5eca911374b0854e92d11fb18eb91ee560fa63
@@ -125,6 +125,13 @@ module BBC
125
125
  @l.(d, id, options[:env])
126
126
  end
127
127
 
128
+ stack_meta = stack_data(component, stack_name, options[:env])
129
+
130
+ data['Parameters'] = deep_merge(
131
+ stack_parameters(stack_meta['parameters']),
132
+ data['Parameters']
133
+ )
134
+
128
135
  params = Tools::Cloudformation::Generator.parameters(data, false)
129
136
 
130
137
  post_data = {
@@ -201,14 +208,34 @@ module BBC
201
208
 
202
209
  private
203
210
 
211
+ def stack_parameters(stack_data)
212
+ stack_data.reduce({}) do |accum, (key, value)|
213
+ accum.tap do |a|
214
+ a[key] = {
215
+ "Default" => value["value"]
216
+ }
217
+ end
218
+ end
219
+ end
220
+
221
+ def stack_data(component, stack_name, env = 'int')
222
+ response = api.get sprintf(config.app['stack_details'], env, component, stack_name)
223
+ JSON.parse(response.body)
224
+ end
225
+
204
226
  def latest_ami_for(component, env = 'int')
205
227
  response = api.get sprintf(config.app['deployments'], component, env)
206
228
  api_error response unless response.success?
207
229
  JSON.parse(response.body).first['image']['ami_id']
208
230
  end
231
+
232
+ def deep_merge(merger, mergee)
233
+ merge_proc = Proc.new { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merge_proc) : v2 }
234
+ merger.merge(mergee, &merge_proc)
235
+ end
236
+
209
237
  end
210
238
  end
211
239
  end
212
240
  end
213
241
  end
214
-
@@ -11,8 +11,7 @@ module BBC
11
11
  @config = config
12
12
  end
13
13
 
14
- def generate_data
15
- to_json = false
14
+ def generate_data(to_json = false)
16
15
 
17
16
  # Because the block is evaluated in the context of another class
18
17
  # i.e. instance_eval &block
@@ -1,7 +1,7 @@
1
1
  module BBC
2
2
  module Cosmos
3
3
  module Tools
4
- VERSION = "0.4.3"
4
+ VERSION = "0.4.4"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bbc-cosmos-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Jack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-02 00:00:00.000000000 Z
11
+ date: 2014-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler