From ba873ba4f2d768ee33357dc044c98c5cc6bd4bfd Mon Sep 17 00:00:00 2001 From: Mikhail Elovskikh Date: Thu, 8 Jun 2017 21:41:15 +0500 Subject: Fix readpreference option parsing in MongoDB transport (#751) * Fix readpreference option parsing in MongoDB transport * Update changelog --- kombu/transport/mongodb.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'kombu') diff --git a/kombu/transport/mongodb.py b/kombu/transport/mongodb.py index 2a7f8ff3..75372ab0 100644 --- a/kombu/transport/mongodb.py +++ b/kombu/transport/mongodb.py @@ -274,18 +274,21 @@ class Channel(virtual.Channel): if self.connect_timeout else None), } options.update(parsed['options']) + options = self._prepare_client_options(options) return hostname, dbname, options def _prepare_client_options(self, options): if pymongo.version_tuple >= (3,): options.pop('auto_start_request', None) + if isinstance(options.get('readpreference'), int): + modes = pymongo.read_preferences._MONGOS_MODES + options['readpreference'] = modes[options['readpreference']] return options def _open(self, scheme='mongodb://'): - hostname, dbname, options = self._parse_uri(scheme=scheme) + hostname, dbname, conf = self._parse_uri(scheme=scheme) - conf = self._prepare_client_options(options) conf['host'] = hostname env = _detect_environment() -- cgit v1.2.1