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
def deploy_project_stream out, id
# check if project exist
project = Devops::Db.connector.project(id)
deploy_env, servers = parser.deploy
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")
status = []
servers.each do |s|
project = begin
deploy_info_buf = {}
dbservers.each do |s|
begin
Devops::Db.connector.check_project_auth s.project, s.deploy_env, parser.current_user
rescue InvalidPrivileges, RecordNotFound => e
out << e.message + "\n"
status.push 2
next
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))
end
status
end
def deploy_project id
# check if project exist
project_model = Devops::Db.connector.project(id)
deploy_env, servers = parser.deploy
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
Devops::Db.connector.check_project_auth s.project, s.deploy_env, parser.current_user
rescue InvalidPrivileges, RecordNotFound => e
next
end
project_model = project(s.project)
deploy_env_model = project_model.deploy_env(deploy_env)
puts '!!! WARNING !!!'
puts 'build_number is set to empty string'
build_number = ''
deploy_info = project_model.deploy_info(deploy_env_model, build_number)
deploy_env_model = project_model.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_model.deploy_info(deploy_env_model, nil)
end
uri = Worker.start_async(DeployWorker, @request,
server_attrs: s.to_hash,
@ -213,11 +227,6 @@ module Devops
files
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
project = Devops::Db.connector.project(id)
Devops::Db.connector.archive_project(id)