From a3d8ae8f5fa092fe99a35c0ea714eb5ce81bcc0b Mon Sep 17 00:00:00 2001 From: Brant Knudson Date: Tue, 7 Apr 2015 19:35:00 -0500 Subject: [PATCH] Work with pymongo 3.0 pymongo 3.0 renamed mongos_enum to read_pref_mode_from_name which was causing the unit tests to fail. Change-Id: Iaa7fd7221c2e6c865633ef342e6b83304a1de655 Closes-Bug: 1441393 (cherry picked from commit 7c3fe6acaef6fc283c383fb79f06e388df6e6926) --- keystone/common/cache/backends/mongo.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/keystone/common/cache/backends/mongo.py b/keystone/common/cache/backends/mongo.py index b5de9bc4ca..58856ac8f6 100644 --- a/keystone/common/cache/backends/mongo.py +++ b/keystone/common/cache/backends/mongo.py @@ -360,8 +360,12 @@ class MongoApi(object): self._assign_data_mainpulator() if self.read_preference: - self.read_preference = pymongo.read_preferences.mongos_enum( - self.read_preference) + # pymongo 3.0 renamed mongos_enum to read_pref_mode_from_name + f = getattr(pymongo.read_preferences, + 'read_pref_mode_from_name', None) + if not f: + f = pymongo.read_preferences.mongos_enum + self.read_preference = f(self.read_preference) coll.read_preference = self.read_preference if self.w > -1: coll.write_concern['w'] = self.w