From 31e86c5c6a812d57e090cac4bf16d3930df417a1 Mon Sep 17 00:00:00 2001 From: Anton Martynov Date: Thu, 17 Sep 2015 11:50:35 +0300 Subject: [PATCH] server executor, set report --- devops-service/lib/executors/server_executor.rb | 4 ++++ devops-service/workers/bootstrap_worker.rb | 12 ++++++++---- devops-service/workers/create_server_worker.rb | 9 ++++++--- devops-service/workers/delete_server_worker.rb | 4 +++- devops-service/workers/deploy_worker.rb | 9 ++++++--- devops-service/workers/project_test_worker.rb | 9 ++++++--- devops-service/workers/stack_bootstrap_worker.rb | 11 +++++++---- 7 files changed, 40 insertions(+), 18 deletions(-) diff --git a/devops-service/lib/executors/server_executor.rb b/devops-service/lib/executors/server_executor.rb index 83d82a0..5488c85 100644 --- a/devops-service/lib/executors/server_executor.rb +++ b/devops-service/lib/executors/server_executor.rb @@ -35,6 +35,10 @@ module Devops @out.class.send(:define_method, :flush) { } unless @out.respond_to?(:flush) end + def report= r + @report = r + end + def project= p @project = p end diff --git a/devops-service/workers/bootstrap_worker.rb b/devops-service/workers/bootstrap_worker.rb index d57951d..5fe0856 100644 --- a/devops-service/workers/bootstrap_worker.rb +++ b/devops-service/workers/bootstrap_worker.rb @@ -15,12 +15,14 @@ class BootstrapWorker < Worker call(provider_name) do |provider, out, file| server = Devops::Model::Server.new(server_attrs) - save_report(file, owner, server) + report = save_report(file, owner, server) options = { bootstrap_template: bootstrap_template } - status = Devops::Executor::ServerExecutor.new(server, out).two_phase_bootstrap(options) + executor = Devops::Executor::ServerExecutor.new(server, out) + executor.report = report + status = executor.two_phase_bootstrap(options) mongo.set_report_server_data(jid, server.chef_node_name, server.public_ip || server.private_ip) status end @@ -29,7 +31,7 @@ class BootstrapWorker < Worker private def save_report(file, owner, server) - report = { + report_data = { "file" => file, "_id" => jid, "created_by" => owner, @@ -37,7 +39,9 @@ class BootstrapWorker < Worker "deploy_env" => server.deploy_env, "type" => Devops::Model::Report::BOOTSTRAP_TYPE } - mongo.save_report(Devops::Model::Report.new(report)) + report = Devops::Model::Report.new(report_data) + mongo.save_report(report) + report end end diff --git a/devops-service/workers/create_server_worker.rb b/devops-service/workers/create_server_worker.rb index 5131595..192de26 100644 --- a/devops-service/workers/create_server_worker.rb +++ b/devops-service/workers/create_server_worker.rb @@ -14,10 +14,11 @@ class CreateServerWorker < Worker call(nil) do |not_used, out, file| project = mongo.project(server_attrs["project"]) env = project.deploy_env(server_attrs["deploy_env"]) - save_report(file, project, env, owner) + report = save_report(file, project, env, owner) e = Devops::Executor::ServerExecutor.new(nil, out) e.project = project + e.report = report e.deploy_env = env server_attrs["created_by"] = owner e.create_server(server_attrs) @@ -27,7 +28,7 @@ class CreateServerWorker < Worker private def save_report(file, project, env, owner) - report = { + report_data = { "file" => file, "_id" => jid, "created_by" => owner, @@ -35,7 +36,9 @@ class CreateServerWorker < Worker "deploy_env" => env.identifier, "type" => Devops::Model::Report::SERVER_TYPE } - mongo.save_report(Devops::Model::Report.new(report)) + report = Devops::Model::Report.new(report_data) + mongo.save_report(report) + report end end diff --git a/devops-service/workers/delete_server_worker.rb b/devops-service/workers/delete_server_worker.rb index ce607d3..66c8f48 100644 --- a/devops-service/workers/delete_server_worker.rb +++ b/devops-service/workers/delete_server_worker.rb @@ -10,9 +10,10 @@ class DeleteServerWorker < Worker call(nil) do |not_used, out, file| server = mongo.server_by_chef_node_name(chef_node_name) - save_report(file, server) + report = save_report(file, server) e = Devops::Executor::ServerExecutor.new(server, out) + e.report = report e.delete_server end end @@ -29,6 +30,7 @@ class DeleteServerWorker < Worker "type" => Devops::Model::Report::DELETE_SERVER_TYPE ) mongo.save_report(report) + report end end diff --git a/devops-service/workers/deploy_worker.rb b/devops-service/workers/deploy_worker.rb index e5851d9..2120222 100644 --- a/devops-service/workers/deploy_worker.rb +++ b/devops-service/workers/deploy_worker.rb @@ -14,9 +14,10 @@ class DeployWorker < Worker call(nil) do |not_used, out, file| server = Devops::Model::Server.new(server_attrs) - save_report(file, owner, server) + report = save_report(file, owner, server) executor = Devops::Executor::ServerExecutor.new(server, out) + executor.report = report executor.deploy_server_with_tags(tags, deploy_info) end end @@ -24,7 +25,7 @@ class DeployWorker < Worker private def save_report(file, owner, server) - report = { + report_data = { "file" => file, "_id" => jid, "created_by" => owner, @@ -35,7 +36,9 @@ class DeployWorker < Worker "chef_node_name" => server.chef_node_name, "host" => server.public_ip || server.private_ip } - mongo.save_report(Devops::Model::Report.new(report)) + report = Devops::Model::Report.new(report_data) + mongo.save_report(report) + report end end diff --git a/devops-service/workers/project_test_worker.rb b/devops-service/workers/project_test_worker.rb index b384ec5..5f70be4 100644 --- a/devops-service/workers/project_test_worker.rb +++ b/devops-service/workers/project_test_worker.rb @@ -19,10 +19,11 @@ class ProjectTestWorker < Worker DevopsLogger.logger.info "Test project '#{project_name}' and env '#{deploy_env_name}' (user - #{user})" project = mongo.project(project_name) env = project.deploy_env(deploy_env_name) - save_report(file, user, project_name, deploy_env_name) + report = save_report(file, user, project_name, deploy_env_name) executor = Devops::Executor::ServerExecutor.new(nil, out) executor.project = project + executor.report = report executor.deploy_env = env result = {:servers => []} @@ -102,7 +103,7 @@ class ProjectTestWorker < Worker private def save_report(file, user, project_name, deploy_env_name) - report = { + report_data = { "file" => file, "_id" => jid, "created_by" => user, @@ -110,6 +111,8 @@ class ProjectTestWorker < Worker "deploy_env" => deploy_env_name, "type" => Devops::Model::Report::PROJECT_TEST_TYPE } - mongo.save_report(Devops::Model::Report.new(report)) + report = Devops::Model::Report.new(report_data) + mongo.save_report(report) + report end end diff --git a/devops-service/workers/stack_bootstrap_worker.rb b/devops-service/workers/stack_bootstrap_worker.rb index a300a65..f4f36bf 100644 --- a/devops-service/workers/stack_bootstrap_worker.rb +++ b/devops-service/workers/stack_bootstrap_worker.rb @@ -13,7 +13,7 @@ class StackBootstrapWorker < Worker call(provider_name) do |provider, out, file| without_bootstrap = stack_attrs.delete('without_bootstrap') - save_report(file, stack_attrs) + report = save_report(file, stack_attrs) stack = Devops::Model::StackFactory.create(provider_name, stack_attrs, out) mongo.stack_insert(stack) @@ -23,7 +23,7 @@ class StackBootstrapWorker < Worker out << "\nStack '#{stack.name}' has been created\n" out.flush servers = persist_stack_servers!(stack, provider) - bootstrap_servers(servers, out) unless without_bootstrap + bootstrap_servers(servers, out, report) unless without_bootstrap end operation_result end @@ -31,10 +31,12 @@ class StackBootstrapWorker < Worker private - def bootstrap_servers(servers, out) + def bootstrap_servers(servers, out, report) out << "\n" servers.map do |server| - Devops::Executor::ServerExecutor.new(server, out).two_phase_bootstrap({}) + executor = Devops::Executor::ServerExecutor.new(server, out) + executor.report = report + executor.two_phase_bootstrap({}) end end @@ -48,6 +50,7 @@ class StackBootstrapWorker < Worker "type" => ::Devops::Model::Report::STACK_TYPE ) mongo.save_report(report) + report end def persist_stack_servers!(stack, provider)