This commit is contained in:
Anton Martynov 2015-09-18 10:32:50 +03:00
parent f01973ce92
commit 947c7cdac4

View File

@ -165,42 +165,56 @@ module Devops
end end
def deploy_project_stream out, id def deploy_project_stream out, id
# check if project exist
project = Devops::Db.connector.project(id)
deploy_env, servers = parser.deploy deploy_env, servers = parser.deploy
keys = {} keys = {}
dbserver = servers(id, deploy_env, servers) dbserver = Devops::Db.connector.servers(id, deploy_env, servers, true)
out << (dbservers.empty? ? "No reserved servers to deploy\n" : "Deploy servers: '#{dbservers.map{|s| s.chef_node_name}.join("', '")}'\n") out << (dbservers.empty? ? "No reserved servers to deploy\n" : "Deploy servers: '#{dbservers.map{|s| s.chef_node_name}.join("', '")}'\n")
status = [] status = []
servers.each do |s| deploy_info_buf = {}
project = begin dbservers.each do |s|
begin
Devops::Db.connector.check_project_auth s.project, s.deploy_env, parser.current_user Devops::Db.connector.check_project_auth s.project, s.deploy_env, parser.current_user
rescue InvalidPrivileges, RecordNotFound => e rescue InvalidPrivileges, RecordNotFound => e
out << e.message + "\n" out << e.message + "\n"
status.push 2 status.push 2
next next
end end
deploy_info = project.deploy_info(s.deploy_env, nil) deploy_env_model = project.deploy_env(s.deploy_env)
deploy_info = if deploy_info_buf[s.deploy_env]
deploy_info_buf[s.deploy_env]
else
# мы не можем указать один build_number для всех окружений, поэтому nil
deploy_info_buf[s.deploy_env] = project.deploy_info(deploy_env_model, nil)
end
status.push(Devops::Executor::ServerExecutor.new(s, out).deploy_server(deploy_info)) status.push(Devops::Executor::ServerExecutor.new(s, out).deploy_server(deploy_info))
end end
status status
end end
def deploy_project id def deploy_project id
# check if project exist
project_model = Devops::Db.connector.project(id)
deploy_env, servers = parser.deploy deploy_env, servers = parser.deploy
files = [] files = []
servers(id, deploy_env, servers).each do |s| dbservers = Devops::Db.connector.servers(id, deploy_env, servers, true)
out << (dbservers.empty? ? "No reserved servers to deploy\n" : "Deploy servers: '#{dbservers.map{|s| s.chef_node_name}.join("', '")}'\n")
deploy_info_buf = {}
dbservers.each do |s|
begin begin
Devops::Db.connector.check_project_auth s.project, s.deploy_env, parser.current_user Devops::Db.connector.check_project_auth s.project, s.deploy_env, parser.current_user
rescue InvalidPrivileges, RecordNotFound => e rescue InvalidPrivileges, RecordNotFound => e
next next
end end
project_model = project(s.project) deploy_env_model = project_model.deploy_env(s.deploy_env)
deploy_env_model = project_model.deploy_env(deploy_env) deploy_info = if deploy_info_buf[s.deploy_env]
deploy_info_buf[s.deploy_env]
puts '!!! WARNING !!!' else
puts 'build_number is set to empty string' # мы не можем указать один build_number для всех окружений, поэтому nil
build_number = '' deploy_info_buf[s.deploy_env] = project_model.deploy_info(deploy_env_model, nil)
deploy_info = project_model.deploy_info(deploy_env_model, build_number) end
uri = Worker.start_async(DeployWorker, @request, uri = Worker.start_async(DeployWorker, @request,
server_attrs: s.to_hash, server_attrs: s.to_hash,
@ -213,11 +227,6 @@ module Devops
files files
end end
def servers project_id, deploy_env, servers
project = Devops::Db.connector.project(project_id)
dbservers = Devops::Db.connector.servers(project_id, deploy_env, servers, true)
end
def archive_project id def archive_project id
project = Devops::Db.connector.project(id) project = Devops::Db.connector.project(id)
Devops::Db.connector.archive_project(id) Devops::Db.connector.archive_project(id)