40 lines
938 B
Ruby
40 lines
938 B
Ruby
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
|