35 lines
841 B
Ruby
35 lines
841 B
Ruby
|
|
require "db/mongo/models/server"
|
||
|
|
require "db/mongo/models/report"
|
||
|
|
require "lib/executors/server_executor"
|
||
|
|
|
||
|
|
class DeleteServerWorker < Worker
|
||
|
|
|
||
|
|
def perform(options)
|
||
|
|
chef_node_name = options.fetch('server_chef_node_name')
|
||
|
|
puts "Expire server '#{chef_node_name}'."
|
||
|
|
|
||
|
|
call(nil) do |not_used, out, file|
|
||
|
|
server = mongo.server_by_chef_node_name(chef_node_name)
|
||
|
|
save_report(file, server)
|
||
|
|
|
||
|
|
e = Devops::Executor::ServerExecutor.new(server, out)
|
||
|
|
e.delete_server
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
private
|
||
|
|
|
||
|
|
def save_report(file, server)
|
||
|
|
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)
|
||
|
|
end
|
||
|
|
|
||
|
|
end
|