vaporware 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/vaporware.rb +21 -27
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7c8dd20bc503251f0a2db40374f6509711e35ae2
4
- data.tar.gz: 81483a099efb4c1c0a07db426c242a0f5b2441fa
3
+ metadata.gz: bd07f1737f07e7d1936f8774cb0808b4d063ff8a
4
+ data.tar.gz: f479a682b5c19453796eccaa5854f8c91b2cfd7b
5
5
  SHA512:
6
- metadata.gz: bd3f0412f1cfb62407e58bea88684f5ec96739ae6995b6cb55526150a545d5fe1ff1b7a2a6b1547d54db209059b208fbadb9ceb959e77f7baa72912a9108b1d6
7
- data.tar.gz: ba8a5132753e15c666f5d910490f24866cbbaa3103eca9d6cf9927e78c1a28cc93c9da420cf4bf8c777deb3911b921066819b947ca4c9c5ae8e71f312cc95b61
6
+ metadata.gz: 7e97833be8c224dccf8c0eb77ff3346c4c7fb57bbfca15c1a4e7efb7aad78536f63a28d5eb59d9b93fa7c4fa67f1d4d79d4cc97c3e269a3564df43cf35c88989
7
+ data.tar.gz: 0e268b06cac64fa88c184171cd9e3181e380468f27c72b588fd8dc6ffe86e24f1908b92f7ca974cbee8c1bb50b54a9df8c7b0c9f1157492b3484559a96328610
@@ -10,8 +10,8 @@ class Vaporware
10
10
  timeout: 40, # minutes
11
11
  tags: {},
12
12
  on_failure: "ROLLBACK", # or: DO_NOTHING, DELETE
13
- status_max_attempts: 360,
14
- status_delay: 10
13
+ status_max_attempts: 720,
14
+ status_delay: 5
15
15
  }.merge opts
16
16
  fail "You must specify a template filename!" unless options[:template_filename]
17
17
 
@@ -31,32 +31,20 @@ class Vaporware
31
31
  end
32
32
 
33
33
  def create_stack
34
- with_progress "creation" do
34
+ wait_for "creation", :stack_create_complete do
35
35
  @client.create_stack(stack_create_params)
36
- @client.wait_until(:stack_create_complete, stack_name: @stack_name) do |w|
37
- w.max_attempts = @status_max_attempts
38
- w.delay = @status_delay
39
- end
40
36
  end
41
37
  end
42
38
 
43
39
  def update_stack
44
- with_progress "update" do
40
+ wait_for "update", :stack_update_complete do
45
41
  @client.update_stack(stack_update_params)
46
- @client.wait_until(:stack_update_complete, stack_name: @stack_name) do |w|
47
- w.max_attempts = @status_max_attempts
48
- w.delay = @status_delay
49
- end
50
42
  end
51
43
  end
52
44
 
53
45
  def delete_stack
54
- with_progress "deletion" do
46
+ wait_for "deletion", :stack_delete_complete do
55
47
  @client.delete_stack(stack_name: @stack_name)
56
- @client.wait_until(:stack_delete_complete, stack_name: @stack_name) do |w|
57
- w.max_attempts = @status_max_attempts
58
- w.delay = @status_delay
59
- end
60
48
  end
61
49
  end
62
50
 
@@ -138,21 +126,27 @@ class Vaporware
138
126
  new_events.reverse
139
127
  end
140
128
 
141
- def with_progress goal
129
+ def format_events events
130
+ return "." if events.size == 0
131
+ events.reduce("") do |acc, event|
132
+ acc << "[#{event.timestamp}] #{event.logical_resource_id} (#{event.resource_type}): #{event.resource_status}\n"
133
+ end
134
+ end
135
+
136
+ def wait_for goal, event_type
142
137
  @old_events = -1
143
138
  new_stack_events
144
- progress_thread = Thread.new do
145
- loop do
146
- puts "Waiting for stack #{goal}..."
147
- sleep 5
139
+ puts "Waiting for stack #{goal}..."
140
+ yield
141
+ @client.wait_until(event_type, stack_name: @stack_name) do |w|
142
+ w.max_attempts = @status_max_attempts
143
+ w.delay = @status_delay
144
+ w.before_wait do
148
145
  new_events = new_stack_events
149
- new_events.each do |event|
150
- puts "[#{event.timestamp}] #{event.logical_resource_id} (#{event.resource_type}): #{event.resource_status}"
151
- end
146
+ puts format_events new_events
152
147
  end
153
148
  end
154
- yield
155
- progress_thread.exit
149
+ puts format_events new_stack_events
156
150
  puts "Stack #{goal} complete!"
157
151
  end
158
152
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vaporware
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Audrey Schwarz