@@ -195,6 +195,9 @@ if __name__ == "__main__":
195
195
help = "tail event log" )
196
196
parser .add_argument ("-u" , "--update" , help = "Update an existing stack" ,
197
197
dest = "update" )
198
+ parser .add_argument ("-w" , "--wait" , action = "store_true" ,
199
+ help = "Wait for the operation to complete and return "
200
+ "an appropriate error code" )
198
201
parser .add_argument ("stack" , nargs = '?' )
199
202
values = parser .parse_args ()
200
203
@@ -220,14 +223,15 @@ if __name__ == "__main__":
220
223
parameters = values .params ,
221
224
capabilities = values .capabilities )
222
225
223
- for event in events :
224
- print_event (event )
225
- if event .physical_resource_id == stack_id :
226
- if event .resource_status in ['UPDATE_ROLLBACK_COMPLETE' ,
227
- 'UPDATE_ROLLBACK_FAILED' ]:
228
- sys .exit (1 )
229
- if event .resource_status == 'UPDATE_COMPLETE' :
230
- break
226
+ if values .wait :
227
+ for event in events :
228
+ print_event (event )
229
+ if event .physical_resource_id == stack_id :
230
+ if event .resource_status in ['UPDATE_ROLLBACK_COMPLETE' ,
231
+ 'UPDATE_ROLLBACK_FAILED' ]:
232
+ sys .exit (1 )
233
+ if event .resource_status == 'UPDATE_COMPLETE' :
234
+ break
231
235
232
236
if values .delete :
233
237
stack_id = get_stack_id_if_exists (conn , values .stack )
@@ -236,14 +240,15 @@ if __name__ == "__main__":
236
240
events .read_existing ()
237
241
conn .delete_stack (stack_id )
238
242
239
- for event in events :
240
- print_event (event )
241
- if event .physical_resource_id == stack_id :
242
- if event .resource_status == 'DELETE_FAILED' :
243
- print "Delete failed"
244
- sys .exit (1 )
245
- elif event .resource_status == 'DELETE_COMPLETE' :
246
- break
243
+ if values .wait :
244
+ for event in events :
245
+ print_event (event )
246
+ if event .physical_resource_id == stack_id :
247
+ if event .resource_status == 'DELETE_FAILED' :
248
+ print "Delete failed"
249
+ sys .exit (1 )
250
+ elif event .resource_status == 'DELETE_COMPLETE' :
251
+ break
247
252
else :
248
253
print "Couldn't delete {0}: stack doesn't exist." \
249
254
.format (values .stack )
@@ -267,20 +272,21 @@ if __name__ == "__main__":
267
272
stack_id = create_stack (conn , values .stack , template , None ,
268
273
values .params , values .capabilities )
269
274
270
- rollback_enabled = True
275
+ if values .wait :
276
+ rollback_enabled = True
271
277
272
- for event in StackEventIterator (conn , stack_id ):
273
- print_event (event )
274
- if event .physical_resource_id == stack_id :
275
- if rollback_enabled :
276
- if event .resource_status in ['ROLLBACK_COMPLETE' ,
277
- 'ROLLBACK_FAILED' ]:
278
- sys .exit (1 )
279
- else :
280
- if event .resource_status == 'CREATE_FAILED' :
281
- sys .exit (1 )
282
- if event .resource_status == 'CREATE_COMPLETE' :
283
- break
278
+ for event in StackEventIterator (conn , stack_id ):
279
+ print_event (event )
280
+ if event .physical_resource_id == stack_id :
281
+ if rollback_enabled :
282
+ if event .resource_status in ['ROLLBACK_COMPLETE' ,
283
+ 'ROLLBACK_FAILED' ]:
284
+ sys .exit (1 )
285
+ else :
286
+ if event .resource_status == 'CREATE_FAILED' :
287
+ sys .exit (1 )
288
+ if event .resource_status == 'CREATE_COMPLETE' :
289
+ break
284
290
285
291
if values .resources :
286
292
describe_resources (conn , values .stack )
0 commit comments