@@ -28,6 +28,8 @@ class MongoHandler:
28
28
_cursor_id = 0
29
29
30
30
def __init__ (self , mongos ):
31
+ self .connections = {}
32
+
31
33
for host in mongos :
32
34
args = MongoFakeFieldStorage ({"server" : host })
33
35
@@ -42,9 +44,8 @@ def _get_connection(self, name = None, host = None, port = None):
42
44
if name == None :
43
45
name = "default"
44
46
45
- connection = getattr (self , name , None )
46
- if connection != None or host == None :
47
- return connection
47
+ if name in self .connections :
48
+ return self .connections [name ]
48
49
49
50
if port == None :
50
51
port = 27107
@@ -54,7 +55,7 @@ def _get_connection(self, name = None, host = None, port = None):
54
55
except ConnectionFailure :
55
56
return None
56
57
57
- setattr ( self , name , connection )
58
+ self . connections [ name ] = connection
58
59
return connection
59
60
60
61
@@ -135,6 +136,13 @@ def _hello(self, args, out, name = None, db = None, collection = None):
135
136
'all fine here now, thank you. How are you?"}' )
136
137
return
137
138
139
+ def _status (self , args , out , name = None , db = None , collection = None ):
140
+ result = {"ok" : 1 , "connections" : {}}
141
+
142
+ for name , conn in self .connections .iteritems ():
143
+ result ['connections' ][name ] = "%s:%d" % (conn .host , conn .port )
144
+
145
+ out (json .dumps (result ))
138
146
139
147
def _connect (self , args , out , name = None , db = None , collection = None ):
140
148
"""
@@ -453,7 +461,7 @@ def _batch(self, args, out, name = None, db = None, collection = None):
453
461
454
462
func = getattr (MongoHandler .mh , cmd , None )
455
463
if callable (func ):
456
- output = MongoFakeStream ();
464
+ output = MongoFakeStream ()
457
465
func (args , output .ostream , name = name , db = db , collection = collection )
458
466
if not first :
459
467
out ("," )
0 commit comments