35 lines
		
	
	
		
			841 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			841 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require "db/mongo/models/server" | ||
|  | require "db/mongo/models/report" | ||
|  | require "lib/executors/server_executor" | ||
|  | 
 | ||
|  | class DeleteServerWorker < Worker | ||
|  | 
 | ||
|  |   def perform(options) | ||
|  |     chef_node_name = options.fetch('server_chef_node_name') | ||
|  |     puts "Expire server '#{chef_node_name}'." | ||
|  | 
 | ||
|  |     call(nil) do |not_used, out, file| | ||
|  |       server = mongo.server_by_chef_node_name(chef_node_name) | ||
|  |       save_report(file, server) | ||
|  | 
 | ||
|  |       e = Devops::Executor::ServerExecutor.new(server, out) | ||
|  |       e.delete_server | ||
|  |     end | ||
|  |   end | ||
|  | 
 | ||
|  |   private | ||
|  | 
 | ||
|  |   def save_report(file, server) | ||
|  |     report = Devops::Model::Report.new( | ||
|  |       "file" => file, | ||
|  |       "_id" => jid, | ||
|  |       "created_by" => 'SYSTEM', | ||
|  |       "project" => server.project, | ||
|  |       "deploy_env" => server.deploy_env, | ||
|  |       "type" => Devops::Model::Report::DELETE_SERVER_TYPE | ||
|  |     ) | ||
|  |     mongo.save_report(report) | ||
|  |   end | ||
|  | 
 | ||
|  | end |