require "db/mongo/models/server" require "db/mongo/models/report" require "lib/executors/server_executor" require "workers/worker" class DeleteServerWorker < Worker # options must contain 'server_id', 'current_user' def perform(options) call do server_id = options.fetch('server_id') out.puts "Deleting server with id #{server_id}" and out.flush @server = mongo.server_by_instance_id(server_id) report = save_report(options.fetch('current_user')) e = Devops::Executor::ServerExecutor.new(@server, out) e.report = report e.delete_server end end private def save_report(current_user) update_report( "created_by" => current_user, "project" => @server.project, "deploy_env" => @server.deploy_env, "type" => Devops::Model::Report::DELETE_SERVER_TYPE ) end end