vaporware 0.0.7 → 0.0.8

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