fluke/devops-service/workers/delete_server_worker.rb
2016-02-10 17:42:49 +03:00

40 lines
1002 B
Ruby

require "db/mongo/models/server"
require "db/mongo/models/report"
require "lib/executors/server_executor"
require "workers/worker"
class DeleteServerWorker < Worker
# options should contain 'server_id'
def perform(options)
server_id = options.fetch('server_id')
current_user = options.fetch('current_user')
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, current_user)
e = Devops::Executor::ServerExecutor.new(@server, out)
e.report = report
e.delete_server
end
end
private
def save_report(file, current_user)
report = Devops::Model::Report.new(
"file" => file,
"_id" => jid,
"created_by" => current_user,
"project" => @server.project,
"deploy_env" => @server.deploy_env,
"type" => Devops::Model::Report::DELETE_SERVER_TYPE
)
mongo.save_report(report)
report
end
end