autostacker24 1.0.41 → 1.0.42
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 +4 -4
- data/lib/autostacker24/stacker.rb +16 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a0b18224e1a9cf2044914d69fbc27d7e1633cbf
|
4
|
+
data.tar.gz: 23809d1e229d11f182c7d6b6b99de91e6e8385a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6595cc004225647cf56eaed70746f363819efc1c5a31814c60b719927cfab8d18754c74bdb2b2299d97c001f1c33cee68fe74c2f05501f0ca9890c640b03fe2
|
7
|
+
data.tar.gz: 3e778ee5ed4fdf9d9fac3b21e89663c2d95bb8df5252d2d88ac1368183712b6d072289cdf642cb1f611a661556a0908216a9097823b9156685313b2c21b91bc0
|
@@ -83,8 +83,12 @@ module Stacker
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def wait_for_stack(stack_name, operation, timeout_in_minutes = 15)
|
86
|
-
|
87
|
-
|
86
|
+
start_time = Time.now
|
87
|
+
stop_time = Time.now + timeout_in_minutes * 60
|
88
|
+
finished = /(CREATE_COMPLETE|UPDATE_COMPLETE|DELETE_COMPLETE|ROLLBACK_COMPLETE|ROLLBACK_FAILED|CREATE_FAILED|DELETE_FAILED)$/
|
89
|
+
seen_events = Array.new
|
90
|
+
|
91
|
+
puts "waiting for #{operation} stack #{stack_name}"
|
88
92
|
while Time.now < stop_time
|
89
93
|
stack = find_stack(stack_name)
|
90
94
|
status = stack ? stack.stack_status : 'DELETE_COMPLETE'
|
@@ -95,7 +99,12 @@ module Stacker
|
|
95
99
|
end
|
96
100
|
return true if status =~ expected_status
|
97
101
|
raise "#{operation} #{stack_name} failed, current status #{status}" if status =~ finished
|
98
|
-
|
102
|
+
get_stack_events(stack_name).select{ |e| e[:timestamp] > start_time && !seen_events.include?(e[:event_id]) }
|
103
|
+
.sort_by{|e| e[:timestamp]}
|
104
|
+
.each{·
|
105
|
+
|e| seen_events << e[:event_id]
|
106
|
+
puts "#{e[:timestamp]}\t#{e[:resource_status].ljust(20)}\t#{e[:resource_type].ljust(40)}\t#{e[:logical_resource_id].ljust(30)}\t#{e[:resource_status_reason]}"
|
107
|
+
}
|
99
108
|
sleep(7)
|
100
109
|
end
|
101
110
|
raise "waiting for #{operation} stack #{stack_name} timed out after #{timeout_in_minutes} minutes"
|
@@ -144,6 +153,10 @@ module Stacker
|
|
144
153
|
resources.inject({}){|map, resource| map.merge(resource.logical_resource_id.to_sym => resource)}.freeze
|
145
154
|
end
|
146
155
|
|
156
|
+
def get_stack_events(stack_name)
|
157
|
+
events = cloud_formation.describe_stack_events(stack_name: stack_name).data.stack_events
|
158
|
+
end
|
159
|
+
|
147
160
|
def cloud_formation # lazy CloudFormation client
|
148
161
|
unless @lazy_cloud_formation
|
149
162
|
params = {}
|
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.
|
4
|
+
version: 1.0.42
|
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-02-
|
12
|
+
date: 2015-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-sdk-core
|