From 90b1d780eba42fa352ac845f4c6464afe97932a1 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Mon, 12 Jun 2017 08:00:44 -0700 Subject: [PATCH] Fix redis cache for python3 According to the redis-py docs, zrank will return the 0 based index for the value in the sorted set. So the logic here wasn't right to begin with (It just means that a value at the 0-th position would never show up as cached). Need to compare against None to know if the value exists in the cache. https://redis-py.readthedocs.io/en/latest/#redis.StrictRedis.zrank Fixes #25590 --- lib/ansible/plugins/cache/redis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ansible/plugins/cache/redis.py b/lib/ansible/plugins/cache/redis.py index c0e5d4b534..8e51b6b5bf 100644 --- a/lib/ansible/plugins/cache/redis.py +++ b/lib/ansible/plugins/cache/redis.py @@ -84,7 +84,7 @@ class CacheModule(BaseCacheModule): def contains(self, key): self._expire_keys() - return (self._cache.zrank(self._keys_set, key) >= 0) + return (self._cache.zrank(self._keys_set, key) is not None) def delete(self, key): self._cache.delete(self._make_key(key))