Added replicaset connection support

Provide replicaSet=NAME in your connection.
fixes #423
This commit is contained in:
Ross Lawley 2012-02-17 17:09:48 +00:00
parent 589a720162
commit ece8d25187
2 changed files with 6 additions and 2 deletions

View File

@ -5,6 +5,7 @@ Changelog
Changes in dev Changes in dev
============== ==============
- Added replicaSet connection support
- Updated deprecated imports from pymongo (safe for pymongo 2.2) - Updated deprecated imports from pymongo (safe for pymongo 2.2)
- Added uri support for connections - Added uri support for connections
- Added scalar for efficiently returning partial data values (aliased to values_list) - Added scalar for efficiently returning partial data values (aliased to values_list)

View File

@ -1,5 +1,5 @@
import pymongo import pymongo
from pymongo import Connection, uri_parser from pymongo import Connection, ReplicaSetConnection, uri_parser
__all__ = ['ConnectionError', 'connect', 'register_connection', __all__ = ['ConnectionError', 'connect', 'register_connection',
@ -108,8 +108,11 @@ def get_connection(alias=DEFAULT_CONNECTION_NAME, reconnect=False):
conn_settings['slaves'] = slaves conn_settings['slaves'] = slaves
conn_settings.pop('read_preference') conn_settings.pop('read_preference')
connection_class = Connection
if 'replicaSet' in conn_settings:
connection_class = ReplicaSetConnection
try: try:
_connections[alias] = Connection(**conn_settings) _connections[alias] = connection_class(**conn_settings)
except Exception, e: except Exception, e:
raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e)) raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
return _connections[alias] return _connections[alias]