servers GET params
This commit is contained in:
parent
d9f0780554
commit
324d4fd581
@ -18,6 +18,10 @@ class Server < MongoModel
|
|||||||
:chef_node_name => {:type => String, :empty => true},
|
:chef_node_name => {:type => String, :empty => true},
|
||||||
:reserved_by => {:type => String, :empty => true}
|
:reserved_by => {:type => String, :empty => true}
|
||||||
|
|
||||||
|
def self.fields
|
||||||
|
["chef_node_name", "project", "deploy_env", "provider", "remote_user", "private_ip", "public_ip", "created_at", "created_by", "static", "key", "reserved_by"]
|
||||||
|
end
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
self.static = false
|
self.static = false
|
||||||
end
|
end
|
||||||
@ -41,7 +45,7 @@ class Server < MongoModel
|
|||||||
"static" => self.static,
|
"static" => self.static,
|
||||||
"key" => self.key,
|
"key" => self.key,
|
||||||
"reserved_by" => self.reserved_by
|
"reserved_by" => self.reserved_by
|
||||||
}
|
}.delete_if{|k,v| v.nil?}
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_list_hash
|
def to_list_hash
|
||||||
@ -63,7 +67,7 @@ class Server < MongoModel
|
|||||||
server.private_ip = s["private_ip"]
|
server.private_ip = s["private_ip"]
|
||||||
server.created_at = s["created_at"]
|
server.created_at = s["created_at"]
|
||||||
server.created_by = s["created_by"]
|
server.created_by = s["created_by"]
|
||||||
server.static = s["static"] || false
|
server.static = s["static"]
|
||||||
server.key = s["key"]
|
server.key = s["key"]
|
||||||
server.reserved_by = s["reserved_by"]
|
server.reserved_by = s["reserved_by"]
|
||||||
server
|
server
|
||||||
|
|||||||
@ -191,16 +191,19 @@ class MongoConnector
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def servers_find q
|
def servers_find q, fields
|
||||||
@servers.find(create_query(q)).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
|
def servers p=nil, env=nil, names=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
|
||||||
servers_find(q)
|
["_id", "chef_node_name"].each do |k|
|
||||||
|
fields.push(k) unless fields.include?(k)
|
||||||
|
end
|
||||||
|
servers_find(q, fields)
|
||||||
end
|
end
|
||||||
|
|
||||||
def servers_by_names names
|
def servers_by_names names
|
||||||
|
|||||||
@ -57,6 +57,8 @@ module Version2_0
|
|||||||
# - method : GET
|
# - method : GET
|
||||||
# - headers :
|
# - headers :
|
||||||
# - Accept: application/json
|
# - Accept: application/json
|
||||||
|
# - params :
|
||||||
|
# - project, deploy_env, provider, remote_user, private_ip, public_ip, created_at, created_by, static, key, reserved_by
|
||||||
#
|
#
|
||||||
# * *Returns* :
|
# * *Returns* :
|
||||||
# [
|
# [
|
||||||
@ -68,7 +70,11 @@ module Version2_0
|
|||||||
get "/servers" do
|
get "/servers" do
|
||||||
check_headers :accept
|
check_headers :accept
|
||||||
check_privileges("server", "r")
|
check_privileges("server", "r")
|
||||||
json BaseRoutes.mongo.servers.map {|s| s.to_list_hash}
|
fields = []
|
||||||
|
Server.fields.each do |k|
|
||||||
|
fields.push k if params.key?(k)
|
||||||
|
end
|
||||||
|
json BaseRoutes.mongo.servers(nil, nil, nil, fields).map {|s| s.to_hash}
|
||||||
end
|
end
|
||||||
|
|
||||||
# Get chef nodes list
|
# Get chef nodes list
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user