fluke/devops-service/workers/delete_server_worker.rb
2016-02-10 21:09:04 +03:00

35 lines
856 B
Ruby

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