| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | require 'db/mongo/models/job_task' | 
					
						
							|  |  |  | require 'workers/worker' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-30 12:57:24 +03:00
										 |  |  | module Devops | 
					
						
							|  |  |  |   module Helpers | 
					
						
							|  |  |  |     class JobWaiter | 
					
						
							|  |  |  |       class TimeoutReached < StandardError; end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       INTERVAL = 5
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def initialize(job_id, timeout=5000) | 
					
						
							|  |  |  |         @job_id, @timeout = job_id, timeout | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def wait | 
					
						
							|  |  |  |         (@timeout / INTERVAL).times do | 
					
						
							|  |  |  |           sleep(INTERVAL) | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |           task = Devops::Model::JobTask.find(@job_id) | 
					
						
							|  |  |  |           case task.status | 
					
						
							| 
									
										
										
										
											2016-03-30 12:57:24 +03:00
										 |  |  |           when Worker::STATUS::COMPLETED | 
					
						
							|  |  |  |             return 0
 | 
					
						
							|  |  |  |           when Worker::STATUS::FAILED | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |             return task.job_result_code | 
					
						
							| 
									
										
										
										
											2016-03-30 12:57:24 +03:00
										 |  |  |           end | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |         raise TimeoutReached | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | end |