read_preference from parse_uri only PYMONGO_3 #1665

This commit is contained in:
Erdenezul 2017-10-03 09:23:17 +08:00
parent 5c4ce8754e
commit 6e2db1ced6

View File

@ -104,14 +104,15 @@ def register_connection(alias, name=None, host=None, port=None,
if 'authmechanism' in uri_options:
conn_settings['authentication_mechanism'] = uri_options['authmechanism']
if IS_PYMONGO_3 and 'readpreference' in uri_options:
read_preferences = (ReadPreference.NEAREST,
read_preferences = (
ReadPreference.NEAREST,
ReadPreference.PRIMARY,
ReadPreference.PRIMARY_PREFERRED,
ReadPreference.SECONDARY,
ReadPreference.SECONDARY_PREFERRED)
read_pf_mode = uri_options['readpreference']
read_pf_mode = uri_options['readpreference'].lower()
for preference in read_preferences:
if preference.mode == read_pf_mode:
if preference.name.lower() == read_pf_mode:
conn_settings['read_preference'] = preference
break
else: