server executor, set report

This commit is contained in:
Anton Martynov 2015-09-17 11:50:35 +03:00
parent 413609be82
commit 31e86c5c6a
7 changed files with 40 additions and 18 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)