2016-02-02 11:43:13 +03:00
|
|
|
require "db/mongo/models/server"
|
|
|
|
|
require "db/mongo/models/report"
|
|
|
|
|
require "lib/executors/server_executor"
|
|
|
|
|
require "workers/worker"
|
|
|
|
|
|
|
|
|
|
class DeleteServerWorker < Worker
|
|
|
|
|
|
2016-02-10 20:39:49 +03:00
|
|
|
# options must contain 'server_id', 'current_user'
|
2016-02-02 11:43:13 +03:00
|
|
|
def perform(options)
|
2016-02-10 20:39:49 +03:00
|
|
|
call do
|
|
|
|
|
server_id = options.fetch('server_id')
|
2016-02-02 11:43:13 +03:00
|
|
|
|
|
|
|
|
out.puts "Deleting server with id #{server_id}" and out.flush
|
|
|
|
|
@server = mongo.server_by_instance_id(server_id)
|
2016-02-10 20:39:49 +03:00
|
|
|
report = save_report(options.fetch('current_user'))
|
2016-02-02 11:43:13 +03:00
|
|
|
|
|
|
|
|
e = Devops::Executor::ServerExecutor.new(@server, out)
|
|
|
|
|
e.report = report
|
|
|
|
|
e.delete_server
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
2016-02-10 20:39:49 +03:00
|
|
|
def save_report(current_user)
|
|
|
|
|
update_report(
|
2016-02-10 17:05:35 +03:00
|
|
|
"created_by" => current_user,
|
2016-02-02 11:43:13 +03:00
|
|
|
"project" => @server.project,
|
|
|
|
|
"deploy_env" => @server.deploy_env,
|
|
|
|
|
"type" => Devops::Model::Report::DELETE_SERVER_TYPE
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|