autostacker24 1.0.8 → 1.0.9

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: dba5db40a030fc43099e897142221408281fde0f
4
- data.tar.gz: e0bdf82e4fe18602a9c5852077c03ef1bfd4a9b4
3
+ metadata.gz: b732fd31c628afdb647f46c73cf3291deb75a1a8
4
+ data.tar.gz: 64a7bcd1cbda0d7671901af8007cce921a2d6cdb
5
5
  SHA512:
6
- metadata.gz: be884bbe188f6ed46c47aba394be80873e582d682c1414070b335be2f725b76644888f9a6b8cf72c741ef065ec228fc891a767de7278503a135bfd2c18f9b3ee
7
- data.tar.gz: f406a791a692ed25729778f5970e74e92f94ae02ac4426531243e9f8f32ced4e249fced641434e1f164a2f3db20ebbf5c35fd9ce5c8c5e8585d7572a3eccc03c
6
+ metadata.gz: bb34baa7e6d305e4003bd17f219cc3cd794fa72dfd11dc132a3d507072f73bc20e0624bdfa9813f2387041a987d90f4a2e8c6d0ce234de5d75ee45a202030b36
7
+ data.tar.gz: 6b0841d59347522ec965c6b99d4c9c9784b31c062954beff3f81f329890650282222d56a0e7390aa4b9de555aa8e0d9b3aebaa11f5dba496c38237019098f96b
@@ -14,10 +14,8 @@ class ServiceStack
14
14
  attr_reader :name, :sandbox, :version, :stack_name, :global_stack_name
15
15
 
16
16
  def create_or_update(template, parameters)
17
- inputs = JSON(template)['Parameters']
18
- global_outputs.each{|k, v| parameters[k.to_sym] = v if inputs.has_key?(k.to_s)}
19
17
  parameters[:Version] = version
20
- Stacker.create_or_update_stack(stack_name, template, parameters)
18
+ Stacker.create_or_update_stack(stack_name, template, parameters, global_stack_name)
21
19
  end
22
20
 
23
21
  def delete
@@ -2,15 +2,16 @@ require 'aws-sdk'
2
2
 
3
3
  module Stacker
4
4
 
5
- def self.create_or_update_stack(stack_name, template_body, parameters)
5
+ def self.create_or_update_stack(stack_name, template_body, parameters, parent_stack_name = nil)
6
6
  if find_stack(stack_name).nil?
7
- create_stack(stack_name, template_body, parameters)
7
+ create_stack(stack_name, template_body, parameters, parent_stack_name)
8
8
  else
9
- update_stack(stack_name, template_body, parameters)
9
+ update_stack(stack_name, template_body, parameters, parent_stack_name)
10
10
  end
11
11
  end
12
12
 
13
- def self.create_stack(stack_name, template_body, parameters)
13
+ def self.create_stack(stack_name, template_body, parameters, parent_stack_name = nil)
14
+ merge_output_parameters(parent_stack_name, template_body, parameters) if parent_stack_name
14
15
  cloud_formation.create_stack(stack_name: stack_name,
15
16
  template_body: template_body,
16
17
  on_failure: 'DELETE',
@@ -19,7 +20,8 @@ module Stacker
19
20
  wait_for_stack(stack_name, :create)
20
21
  end
21
22
 
22
- def self.update_stack(stack_name, template_body, parameters)
23
+ def self.update_stack(stack_name, template_body, parameters, parent_stack_name = nil)
24
+ merge_output_parameters(parent_stack_name, template_body, parameters) if parent_stack_name
23
25
  begin
24
26
  cloud_formation.update_stack(stack_name: stack_name,
25
27
  template_body: template_body,
@@ -33,6 +35,14 @@ module Stacker
33
35
  end
34
36
  end
35
37
 
38
+ def merge_output_parameters(stack_name, template_body, parameters)
39
+ expected_parameters = JSON(template_body)['Parameters']
40
+ get_stack_outputs(stack_name).each do |k, v|
41
+ parameters[k.to_sym] = v if expected_parameters.has_key?(k.to_s)
42
+ end
43
+ parameters
44
+ end
45
+
36
46
  def self.delete_stack(stack_name)
37
47
  cloud_formation.delete_stack(stack_name: stack_name)
38
48
  wait_for_stack(stack_name, :delete)
@@ -68,14 +78,14 @@ module Stacker
68
78
  cloud_formation.estimate_template_cost(:template_body => template_body, :parameters => transform_parameters(parameters))
69
79
  end
70
80
 
71
- def self.get_stack_outputs(stack_name, hash = {})
81
+ def self.get_stack_outputs(stack_name)
72
82
  stack = find_stack(stack_name)
73
83
  fail "stack #{stack_name} not found" unless stack
74
- transform_outputs(stack.outputs, hash).freeze
84
+ transform_outputs(stack.outputs).freeze
75
85
  end
76
86
 
77
- def self.transform_outputs(outputs, existing_outputs = {})
78
- outputs.inject(existing_outputs) { |m, o| m.merge(o.output_key.to_sym => o.output_value) }
87
+ def self.transform_outputs(outputs)
88
+ outputs.inject({}) { |m, o| m.merge(o.output_key.to_sym => o.output_value) }
79
89
  end
80
90
 
81
91
  def self.transform_parameters(parameters)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autostacker24
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johannes Mueller
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-01-02 00:00:00.000000000 Z
12
+ date: 2015-01-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk