2727
2828import pymongo
2929import pymongo .errors
30+ from pymongo .read_preferences import ReadPreference
3031
3132home = os .environ .get ('HOME' )
3233default_dbpath = os .path .join (home , 'data' , 'pymongo_high_availability' )
@@ -142,7 +143,7 @@ def start_replica_set(members, auth=False, fresh=True):
142143
143144 config = {'_id' : set_name , 'members' : members }
144145 primary = members [0 ]['host' ]
145- c = pymongo .Connection (primary , use_greenlets = use_greenlets )
146+ c = pymongo .MongoClient (primary , use_greenlets = use_greenlets )
146147 try :
147148 if ha_tools_debug :
148149 print 'rs.initiate(%s)' % config
@@ -243,7 +244,7 @@ def create_sharded_cluster(num_routers=3):
243244 return None
244245
245246 # Add the shard
246- client = pymongo .Connection (host )
247+ client = pymongo .MongoClient (host )
247248 try :
248249 client .admin .command ({'addshard' : shard_host })
249250 except pymongo .errors .OperationFailure :
@@ -254,8 +255,11 @@ def create_sharded_cluster(num_routers=3):
254255
255256
256257# Connect to a random member
257- def get_connection ():
258- return pymongo .Connection (nodes .keys (), slave_okay = True , use_greenlets = use_greenlets )
258+ def get_client ():
259+ return pymongo .MongoClient (
260+ nodes .keys (),
261+ read_preference = ReadPreference .PRIMARY_PREFERRED ,
262+ use_greenlets = use_greenlets )
259263
260264
261265def get_mongos_seed_list ():
@@ -273,7 +277,7 @@ def restart_mongos(host):
273277
274278
275279def get_members_in_state (state ):
276- status = get_connection ().admin .command ('replSetGetStatus' )
280+ status = get_client ().admin .command ('replSetGetStatus' )
277281 members = status ['members' ]
278282 return [k ['name' ] for k in members if k ['state' ] == state ]
279283
@@ -310,11 +314,11 @@ def get_recovering():
310314
311315
312316def get_passives ():
313- return get_connection ().admin .command ('ismaster' ).get ('passives' , [])
317+ return get_client ().admin .command ('ismaster' ).get ('passives' , [])
314318
315319
316320def get_hosts ():
317- return get_connection ().admin .command ('ismaster' ).get ('hosts' , [])
321+ return get_client ().admin .command ('ismaster' ).get ('hosts' , [])
318322
319323
320324def get_hidden_members ():
@@ -331,7 +335,7 @@ def get_hidden_members():
331335
332336
333337def get_tags (member ):
334- config = get_connection ().local .system .replset .find_one ()
338+ config = get_client ().local .system .replset .find_one ()
335339 for m in config ['members' ]:
336340 if m ['host' ] == member :
337341 return m .get ('tags' , {})
@@ -360,7 +364,7 @@ def kill_all_secondaries(sig=2):
360364def stepdown_primary ():
361365 primary = get_primary ()
362366 if primary :
363- c = pymongo .Connection (primary , use_greenlets = use_greenlets )
367+ c = pymongo .MongoClient (primary , use_greenlets = use_greenlets )
364368 # replSetStepDown causes mongod to close all connections
365369 try :
366370 c .admin .command ('replSetStepDown' , 20 )
@@ -371,7 +375,7 @@ def stepdown_primary():
371375def set_maintenance (member , value ):
372376 """Put a member into RECOVERING state if value is True, else normal state.
373377 """
374- c = pymongo .Connection (member , use_greenlets = use_greenlets )
378+ c = pymongo .MongoClient (member , use_greenlets = use_greenlets )
375379 c .admin .command ('replSetMaintenance' , value )
376380 start = time .time ()
377381 while value != (member in get_recovering ()):
0 commit comments