From c633022fcafaf7ec2c678398cf9f696ca70053ad Mon Sep 17 00:00:00 2001 From: Adrian Likins <alikins@redhat.com> Date: Wed, 14 Sep 2016 13:27:42 -0400 Subject: [PATCH] [wip] Let jsonfile and memcached cache plugins understand fact_caching_timeout=0 (#17565) * Add support for no-expiration to jsonfile cache * Let memcached cache use fact_caching_timeout=0 If fact_cache=memcached and fact_caching_timeout=0 memcached would hit a NameError on _expire_keys --- lib/ansible/plugins/cache/jsonfile.py | 3 +++ lib/ansible/plugins/cache/memcached.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/ansible/plugins/cache/jsonfile.py b/lib/ansible/plugins/cache/jsonfile.py index f2f42f3cc20..f13443d8711 100644 --- a/lib/ansible/plugins/cache/jsonfile.py +++ b/lib/ansible/plugins/cache/jsonfile.py @@ -108,6 +108,9 @@ class CacheModule(BaseCacheModule): def has_expired(self, key): + if self._timeout == 0: + return False + cachefile = "%s/%s" % (self._cache_dir, key) try: st = os.stat(cachefile) diff --git a/lib/ansible/plugins/cache/memcached.py b/lib/ansible/plugins/cache/memcached.py index 01fbefb07be..80a42a5b215 100644 --- a/lib/ansible/plugins/cache/memcached.py +++ b/lib/ansible/plugins/cache/memcached.py @@ -157,7 +157,7 @@ class CacheModule(BaseCacheModule): def _expire_keys(self): if self._timeout > 0: expiry_age = time.time() - self._timeout - self._keys.remove_by_timerange(0, expiry_age) + self._keys.remove_by_timerange(0, expiry_age) def get(self, key): value = self._cache.get(self._make_key(key))