diff --git a/CHANGELOG b/CHANGELOG index d75faf62df..3c36c70c5c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +swift (1.7.2) + + * Fix issue where memcache serialization was not properly loading + the config value + swift (1.7.0) * Use custom encoding for ring data instead of pickle diff --git a/swift/__init__.py b/swift/__init__.py index b0bdd0b198..30591a9a56 100644 --- a/swift/__init__.py +++ b/swift/__init__.py @@ -14,7 +14,7 @@ class Version(object): return '%s-dev' % (self.canonical_version,) -_version = Version('1.7.0', True) +_version = Version('1.7.2', True) __version__ = _version.pretty_version __canonical_version__ = _version.canonical_version diff --git a/swift/common/middleware/memcache.py b/swift/common/middleware/memcache.py index c79ba246f5..13e16d4c68 100644 --- a/swift/common/middleware/memcache.py +++ b/swift/common/middleware/memcache.py @@ -52,6 +52,8 @@ class MemcacheMiddleware(object): self.memcache_servers = '127.0.0.1:11211' if serialization_format is None: serialization_format = 2 + else: + serialization_format = int(serialization_format) self.memcache = MemcacheRing( [s.strip() for s in self.memcache_servers.split(',') if s.strip()], diff --git a/test/unit/common/middleware/test_memcache.py b/test/unit/common/middleware/test_memcache.py index e217a96ea7..c3657021f5 100644 --- a/test/unit/common/middleware/test_memcache.py +++ b/test/unit/common/middleware/test_memcache.py @@ -48,7 +48,7 @@ class SetConfigParser(object): if option == 'memcache_servers': return '1.2.3.4:5' elif option == 'memcache_serialization_support': - return '2' + return '1' else: raise NoOptionError(option) else: @@ -104,6 +104,8 @@ class TestCacheMiddleware(unittest.TestCase): finally: memcache.ConfigParser = orig_parser self.assertEquals(app.memcache_servers, '127.0.0.1:11211') + self.assertEquals(app.memcache._allow_pickle, False) + self.assertEquals(app.memcache._allow_unpickle, False) def test_conf_from_extra_conf(self): orig_parser = memcache.ConfigParser @@ -113,16 +115,22 @@ class TestCacheMiddleware(unittest.TestCase): finally: memcache.ConfigParser = orig_parser self.assertEquals(app.memcache_servers, '1.2.3.4:5') + self.assertEquals(app.memcache._allow_pickle, False) + self.assertEquals(app.memcache._allow_unpickle, True) def test_conf_from_inline_conf(self): orig_parser = memcache.ConfigParser memcache.ConfigParser = SetConfigParser try: app = memcache.MemcacheMiddleware( - FakeApp(), {'memcache_servers': '6.7.8.9:10'}) + FakeApp(), + {'memcache_servers': '6.7.8.9:10', + 'serialization_format': '0'}) finally: memcache.ConfigParser = orig_parser self.assertEquals(app.memcache_servers, '6.7.8.9:10') + self.assertEquals(app.memcache._allow_pickle, False) + self.assertEquals(app.memcache._allow_unpickle, True) if __name__ == '__main__':