| 
									
										
										
										
											2016-08-11 15:45:55 +03:00
										 |  |  | require File.join(File.dirname(__FILE__), "worker") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require "lib/executors/server_executor" | 
					
						
							|  |  |  | require "db/mongo/models/report" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class WaitRebootstrapWorker < Worker | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # @options | 
					
						
							|  |  |  |   # 'jid': bootstrap job to wait | 
					
						
							|  |  |  |   # 'server_node_name' | 
					
						
							|  |  |  |   # 'owner' | 
					
						
							|  |  |  |   # 'old_chef_node': node info | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def perform(options) | 
					
						
							|  |  |  |     call do | 
					
						
							|  |  |  |       owner = options.fetch("owner") | 
					
						
							|  |  |  |       server = Devops::Db.connector.server_by_chef_node_name(options.fetch("server_node_name")) | 
					
						
							|  |  |  |       save_report(owner, server) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       old_node_info = options.fetch('old_chef_node') | 
					
						
							|  |  |  |       out.puts(JSON.pretty_generate(old_node_info)) | 
					
						
							| 
									
										
										
										
											2016-08-12 14:31:58 +03:00
										 |  |  |       puts_and_flush "Waiting for bootstrap end..." | 
					
						
							| 
									
										
										
										
											2016-08-12 14:25:23 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |       Devops::Helpers::JobWaiter.new(options["jid"], 10*60).wait | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-12 14:31:58 +03:00
										 |  |  |       puts_and_flush "Setting run list to #{old_node_info['run_list']}" | 
					
						
							| 
									
										
										
										
											2016-08-11 15:45:55 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |       executor = Devops::Executor::ServerExecutor.new(server, out, current_user: owner) | 
					
						
							|  |  |  |       executor.set_run_list(old_node_info["run_list"]) | 
					
						
							| 
									
										
										
										
											2016-08-12 14:35:30 +03:00
										 |  |  |       0
 | 
					
						
							| 
									
										
										
										
											2016-08-11 15:45:55 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def save_report(owner, server) | 
					
						
							|  |  |  |     update_report( | 
					
						
							|  |  |  |       "created_by" => owner, | 
					
						
							|  |  |  |       "project" => server.project, | 
					
						
							|  |  |  |       "deploy_env" => server.deploy_env, | 
					
						
							|  |  |  |       "type" => Devops::Model::Report::WAIT_BOOTSTRAP | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 |