From f581b1ff63b3dd60b71205f44d2b33497b143139 Mon Sep 17 00:00:00 2001 From: amartynov Date: Tue, 9 Sep 2014 17:12:18 +0400 Subject: [PATCH] fixed project servers params --- devops-service/db/mongo/mongo_connector.rb | 19 ++++++++++++++----- devops-service/routes/v2.0/project.rb | 4 +++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/devops-service/db/mongo/mongo_connector.rb b/devops-service/db/mongo/mongo_connector.rb index 5a94f3f..33cb93d 100644 --- a/devops-service/db/mongo/mongo_connector.rb +++ b/devops-service/db/mongo/mongo_connector.rb @@ -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 diff --git a/devops-service/routes/v2.0/project.rb b/devops-service/routes/v2.0/project.rb index eae82ac..abf1466 100644 --- a/devops-service/routes/v2.0/project.rb +++ b/devops-service/routes/v2.0/project.rb @@ -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