require "db/mongo/models/server" require "db/mongo/models/report" require "lib/executors/server_executor" require "workers/worker" require 'byebug' class DeleteServerWorker < Worker # options should contain 'server_id' def perform(options) server_id = options.fetch('server_id') call() do |out, file| out.puts "Deleting server with id #{server_id}" and out.flush @server = mongo.server_by_instance_id(server_id) report = save_report(file) e = Devops::Executor::ServerExecutor.new(@server, out) e.report = report e.delete_server end end private def save_report(file) 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) report end end