Merge branch 'cid-390-async_servers_deleting' into features

This commit is contained in:
Anton Chuchkalov 2016-02-10 17:44:49 +03:00
commit 6306094883
3 changed files with 9 additions and 7 deletions

View File

@ -315,8 +315,9 @@ module Devops
private private
def delete_chosen_servers!(servers) def delete_chosen_servers!(servers)
current_user = parser.current_user
reports = servers.map do |server| reports = servers.map do |server|
Worker.start_async(DeleteServerWorker, 'server_id' => server.id) Worker.start_async(DeleteServerWorker, 'server_id' => server.id, 'current_user' => current_user)
end end
{reports: reports} {reports: reports}
end end

View File

@ -49,8 +49,9 @@ module Devops
def delete id def delete id
server = get_server_by_key(id, parser.instance_key) server = get_server_by_key(id, parser.instance_key)
Devops::Db.connector.check_project_auth server.project, server.deploy_env, parser.current_user current_user = parser.current_user
jid = Worker.start_async(DeleteServerWorker, 'server_id' => id) Devops::Db.connector.check_project_auth server.project, server.deploy_env, current_user
jid = Worker.start_async(DeleteServerWorker, 'server_id' => server.id, 'current_user' => current_user)
[jid] [jid]
end end

View File

@ -2,18 +2,18 @@ require "db/mongo/models/server"
require "db/mongo/models/report" require "db/mongo/models/report"
require "lib/executors/server_executor" require "lib/executors/server_executor"
require "workers/worker" require "workers/worker"
require 'byebug'
class DeleteServerWorker < Worker class DeleteServerWorker < Worker
# options should contain 'server_id' # options should contain 'server_id'
def perform(options) def perform(options)
server_id = options.fetch('server_id') server_id = options.fetch('server_id')
current_user = options.fetch('current_user')
call() do |out, file| call() do |out, file|
out.puts "Deleting server with id #{server_id}" and out.flush out.puts "Deleting server with id #{server_id}" and out.flush
@server = mongo.server_by_instance_id(server_id) @server = mongo.server_by_instance_id(server_id)
report = save_report(file) report = save_report(file, current_user)
e = Devops::Executor::ServerExecutor.new(@server, out) e = Devops::Executor::ServerExecutor.new(@server, out)
e.report = report e.report = report
@ -23,11 +23,11 @@ class DeleteServerWorker < Worker
private private
def save_report(file) def save_report(file, current_user)
report = Devops::Model::Report.new( report = Devops::Model::Report.new(
"file" => file, "file" => file,
"_id" => jid, "_id" => jid,
"created_by" => 'SYSTEM', "created_by" => current_user,
"project" => @server.project, "project" => @server.project,
"deploy_env" => @server.deploy_env, "deploy_env" => @server.deploy_env,
"type" => Devops::Model::Report::DELETE_SERVER_TYPE "type" => Devops::Model::Report::DELETE_SERVER_TYPE