'fields' GET parameter for servers and projects
This commit is contained in:
parent
8c4453ef39
commit
237b6c3a1d
@ -195,11 +195,12 @@ class MongoConnector
|
|||||||
@servers.find(create_query(q), :fields => fields).to_a.map{|bs| Server.create_from_bson bs}
|
@servers.find(create_query(q), :fields => fields).to_a.map{|bs| Server.create_from_bson bs}
|
||||||
end
|
end
|
||||||
|
|
||||||
def servers p=nil, env=nil, names=nil, fields=[]
|
def servers p=nil, env=nil, names=nil, reserved=nil, fields=[]
|
||||||
q = {}
|
q = {}
|
||||||
q["project"] = p unless p.nil? or p.empty?
|
q["project"] = p unless p.nil? or p.empty?
|
||||||
q["deploy_env"] = env unless env.nil? or env.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["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|
|
["_id", "chef_node_name"].each do |k|
|
||||||
fields.push(k) unless fields.include?(k)
|
fields.push(k) unless fields.include?(k)
|
||||||
end
|
end
|
||||||
|
|||||||
@ -42,7 +42,7 @@ module Version2_0
|
|||||||
# - headers :
|
# - headers :
|
||||||
# - Accept: application/json
|
# - Accept: application/json
|
||||||
# - params :
|
# - params :
|
||||||
# - deploy_envs, type
|
# - fields - show server fields, available values: deploy_envs, type
|
||||||
#
|
#
|
||||||
# * *Returns* :
|
# * *Returns* :
|
||||||
# [
|
# [
|
||||||
@ -53,8 +53,10 @@ module Version2_0
|
|||||||
check_headers :accept
|
check_headers :accept
|
||||||
check_privileges("project", "r")
|
check_privileges("project", "r")
|
||||||
fields = []
|
fields = []
|
||||||
Project.fields.each do |k|
|
if params.key?("fields") and params["fields"].is_a?(Array)
|
||||||
fields.push k if params.key?(k)
|
Project.fields.each do |k|
|
||||||
|
fields.push k if params["fields"].include?(k)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
json BaseRoutes.mongo.projects(nil, nil, fields).map {|p| p.to_hash}
|
json BaseRoutes.mongo.projects(nil, nil, fields).map {|p| p.to_hash}
|
||||||
end
|
end
|
||||||
|
|||||||
@ -58,7 +58,7 @@ module Version2_0
|
|||||||
# - headers :
|
# - headers :
|
||||||
# - Accept: application/json
|
# - Accept: application/json
|
||||||
# - params :
|
# - params :
|
||||||
# - project, deploy_env, provider, remote_user, private_ip, public_ip, created_at, created_by, static, key, reserved_by
|
# - fields - show server fields, available values: project, deploy_env, provider, remote_user, private_ip, public_ip, created_at, created_by, static, key, reserved_by
|
||||||
#
|
#
|
||||||
# * *Returns* :
|
# * *Returns* :
|
||||||
# [
|
# [
|
||||||
@ -71,10 +71,13 @@ module Version2_0
|
|||||||
check_headers :accept
|
check_headers :accept
|
||||||
check_privileges("server", "r")
|
check_privileges("server", "r")
|
||||||
fields = []
|
fields = []
|
||||||
Server.fields.each do |k|
|
if params.key?("fields") and params["fields"].is_a?(Array)
|
||||||
fields.push k if params.key?(k)
|
Server.fields.each do |k|
|
||||||
|
fields.push k if params["fields"].include?(k)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
json BaseRoutes.mongo.servers(nil, nil, nil, fields).map {|s| s.to_hash}
|
reserved = (params.key?("reserved") ? true : nil)
|
||||||
|
json BaseRoutes.mongo.servers(nil, nil, nil, reserved, fields).map {|s| s.to_hash}
|
||||||
end
|
end
|
||||||
|
|
||||||
# Get chef nodes list
|
# Get chef nodes list
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user