| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | require_relative "worker" | 
					
						
							| 
									
										
										
										
											2014-10-22 15:01:55 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | class BootstrapWorker < Worker | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-04 13:17:07 +03:00
										 |  |  |   # @options | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |   # 'server_id':       required | 
					
						
							| 
									
										
										
										
											2016-04-04 13:17:07 +03:00
										 |  |  |   # 'owner':              required | 
					
						
							|  |  |  |   # 'skip_rollback':      optional | 
					
						
							|  |  |  |   # 'deploy_info':        optional | 
					
						
							|  |  |  |   # 'deployers':          optional | 
					
						
							|  |  |  |   # 'bootstrap_template': optional | 
					
						
							|  |  |  |   # 'chef_environment':   optional | 
					
						
							|  |  |  |   # 'config':             optional, whatever this parameter really means | 
					
						
							| 
									
										
										
										
											2015-09-02 12:41:29 +03:00
										 |  |  |   def perform(options) | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |     server_id = options.fetch('server_id') | 
					
						
							|  |  |  |     owner = options.fetch('owner') | 
					
						
							| 
									
										
										
										
											2016-08-12 14:39:07 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |     bootstrap_options = {} | 
					
						
							|  |  |  |     ['bootstrap_template', 'run_list', 'cm_name'].each do |key| | 
					
						
							|  |  |  |       bootstrap_options[key.to_sym] = options[key] if options.key?(key) | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-02-10 20:39:49 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |     call() do |out, task| | 
					
						
							|  |  |  |       server = Devops::Model::Server.find(server_id) | 
					
						
							|  |  |  |       set_task_data({ | 
					
						
							|  |  |  |         "created_by" => owner, | 
					
						
							|  |  |  |         "project" => server.project, | 
					
						
							|  |  |  |         "environment" => server.environment, | 
					
						
							|  |  |  |         "server_id" => server.id, | 
					
						
							|  |  |  |         "category" => server.category, | 
					
						
							|  |  |  |         "type" => Devops::Model::JobTask::BOOTSTRAP_TYPE | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |       executor = Devops::Executor::ServerExecutor.new(server, out, owner) | 
					
						
							|  |  |  |       executor.job_task = task | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       status = begin | 
					
						
							|  |  |  |         info = executor.deploy_info(bootstrap_options) | 
					
						
							|  |  |  |         executor.bootstrap_server bootstrap_options, info | 
					
						
							|  |  |  |         0
 | 
					
						
							|  |  |  |       rescue Devops::Exception::ServerOperationError => e | 
					
						
							|  |  |  |         msg = e.message | 
					
						
							|  |  |  |         DevopsLogger.logger.error msg | 
					
						
							|  |  |  |         e.error_code | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |       out.puts msg | 
					
						
							|  |  |  |       out.flush | 
					
						
							| 
									
										
										
										
											2014-12-04 13:07:25 +03:00
										 |  |  |       status | 
					
						
							| 
									
										
										
										
											2014-10-22 15:01:55 +04:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2015-09-02 12:41:29 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-22 15:01:55 +04:00
										 |  |  | end | 
					
						
							|  |  |  | 
 |