fixed project servers params

This commit is contained in:
amartynov 2014-09-09 17:12:18 +04:00
parent b341835a02
commit f581b1ff63
2 changed files with 17 additions and 6 deletions

View File

@ -192,19 +192,28 @@ class MongoConnector
end
def servers_find q, fields
@servers.find(create_query(q), :fields => fields).to_a.map{|bs| Server.create_from_bson bs}
s = if fields.nil?
@servers.find(create_query(q))
else
@servers.find(create_query(q), :fields => fields)
end
s.to_a.map{|bs| Server.create_from_bson bs}
end
def servers p=nil, env=nil, names=nil, reserved=nil, fields=[]
def servers p=nil, env=nil, names=nil, reserved=nil, fields=:all
q = {}
q["project"] = p unless p.nil? or p.empty?
q["deploy_env"] = env unless env.nil? or env.empty?
q["chef_node_name"] = {"$in" => names} unless names.nil? or names.class != Array
q["reserved_by"] = {"$ne" => nil} unless reserved.nil?
["_id", "chef_node_name"].each do |k|
fields.push(k) unless fields.include?(k)
f = nil
unless fields == :all
f = fields
["_id", "chef_node_name"].each do |k|
f.push(k) unless f.include?(k)
end
end
servers_find(q, fields)
servers_find(q, f)
end
def servers_by_names names

View File

@ -375,12 +375,14 @@ module Version2_0
check_string(obj["deploy_env"], "Parameter 'deploy_env' should be a not empty string", true)
check_array(obj["servers"], "Parameter 'servers' should be a not empty array of strings", String, true)
project = BaseRoutes.mongo.project(params[:id])
servers = BaseRoutes.mongo.servers(params[:id], obj["deploy_env"])
servers = BaseRoutes.mongo.servers(params[:id], obj["deploy_env"], obj["servers"], true)
=begin
servers.delete_if{|s| s.reserved_by.nil?}
unless obj["servers"].nil?
logger.debug "Servers in params: #{obj["servers"].inspect}\nServers: #{servers.map{|s| s.chef_node_name}.inspect}"
servers.select!{|ps| obj["servers"].include?(ps.chef_node_name)}
end
=end
keys = {}
stream() do |out|
begin