| 
									
										
										
										
											2015-07-20 18:59:26 +03:00
										 |  |  | module StackCommands | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def sync_stack_till_not_in_progress_proc | 
					
						
							|  |  |  |     lambda do |out, stack, mongo| | 
					
						
							| 
									
										
										
										
											2015-07-21 17:13:10 +03:00
										 |  |  |       # two tries each 5 seconds, then 5 tries each 10 seconds, then 5 tries each minute. | 
					
						
							|  |  |  |       sleep_times = [5]*2 + [10]*5 + [60]*5
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-20 18:59:26 +03:00
										 |  |  |       begin | 
					
						
							| 
									
										
										
										
											2015-07-21 17:13:10 +03:00
										 |  |  |         out << "Syncing stack '#{stack.id}'...\n" | 
					
						
							|  |  |  |         sleep_times.each do |sleep_time| | 
					
						
							|  |  |  |           sleep sleep_time | 
					
						
							| 
									
										
										
										
											2015-07-20 18:59:26 +03:00
										 |  |  |           stack.sync_details! | 
					
						
							|  |  |  |           if stack.stack_status != 'CREATE_IN_PROGRESS' | 
					
						
							|  |  |  |             mongo.stack_update(stack) | 
					
						
							|  |  |  |             out << "Stack '#{stack.id}' status is now #{stack.stack_status}" | 
					
						
							|  |  |  |             break | 
					
						
							|  |  |  |           end | 
					
						
							| 
									
										
										
										
											2015-07-21 17:13:10 +03:00
										 |  |  |           out << "Next try...\n" | 
					
						
							| 
									
										
										
										
											2015-07-20 18:59:26 +03:00
										 |  |  |         end | 
					
						
							|  |  |  |       rescue StandardError => e | 
					
						
							|  |  |  |         logger.error e.message | 
					
						
							|  |  |  |         return 5
 | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end |