diff --git a/devops-service/app/api2/handlers/project.rb b/devops-service/app/api2/handlers/project.rb index 7193e8b..5f8f918 100644 --- a/devops-service/app/api2/handlers/project.rb +++ b/devops-service/app/api2/handlers/project.rb @@ -315,8 +315,9 @@ module Devops private def delete_chosen_servers!(servers) + current_user = parser.current_user 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 {reports: reports} end diff --git a/devops-service/app/api2/handlers/server.rb b/devops-service/app/api2/handlers/server.rb index f6a462c..aa77939 100644 --- a/devops-service/app/api2/handlers/server.rb +++ b/devops-service/app/api2/handlers/server.rb @@ -49,8 +49,9 @@ module Devops def delete id server = get_server_by_key(id, parser.instance_key) - Devops::Db.connector.check_project_auth server.project, server.deploy_env, parser.current_user - jid = Worker.start_async(DeleteServerWorker, 'server_id' => id) + current_user = parser.current_user + 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] end diff --git a/devops-service/workers/delete_server_worker.rb b/devops-service/workers/delete_server_worker.rb index 4354e16..77f3e5c 100644 --- a/devops-service/workers/delete_server_worker.rb +++ b/devops-service/workers/delete_server_worker.rb @@ -2,18 +2,18 @@ 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') + 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) + report = save_report(file, current_user) e = Devops::Executor::ServerExecutor.new(@server, out) e.report = report @@ -23,11 +23,11 @@ class DeleteServerWorker < Worker private - def save_report(file) + def save_report(file, current_user) report = Devops::Model::Report.new( "file" => file, "_id" => jid, - "created_by" => 'SYSTEM', + "created_by" => current_user, "project" => @server.project, "deploy_env" => @server.deploy_env, "type" => Devops::Model::Report::DELETE_SERVER_TYPE