mirror of https://github.com/ansible/ansible.git
Allow cache_timeout=0 to reach inv. cache plugins (#70977)
Change: - Previously, `cache_timeout=0` was seen as falsey and not passed along to cache plugins as an option. Now only "nulley" values are not sent. Test Plan: - New integration tests Tickets: - Fixes #70702 Signed-off-by: Rick Elrod <rick@elrod.me>pull/71023/head
parent
a9eb8b0488
commit
3bec27dc34
@ -0,0 +1,62 @@
|
||||
# (c) 2014, Brian Coca, Josh Drake, et al
|
||||
# (c) 2017 Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
from ansible.plugins.cache import BaseCacheModule
|
||||
|
||||
DOCUMENTATION = '''
|
||||
cache: none
|
||||
short_description: write-only cache (no cache)
|
||||
description:
|
||||
- No caching at all
|
||||
version_added: historical
|
||||
author: core team (@ansible-core)
|
||||
options:
|
||||
_timeout:
|
||||
default: 86400
|
||||
description: Expiration timeout for the cache plugin data
|
||||
env:
|
||||
- name: ANSIBLE_CACHE_PLUGIN_TIMEOUT
|
||||
ini:
|
||||
- key: fact_caching_timeout
|
||||
section: defaults
|
||||
type: integer
|
||||
'''
|
||||
|
||||
|
||||
class CacheModule(BaseCacheModule):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(CacheModule, self).__init__(*args, **kwargs)
|
||||
self.empty = {}
|
||||
self._timeout = self.get_option('_timeout')
|
||||
|
||||
def get(self, key):
|
||||
return self.empty.get(key)
|
||||
|
||||
def set(self, key, value):
|
||||
return value
|
||||
|
||||
def keys(self):
|
||||
return self.empty.keys()
|
||||
|
||||
def contains(self, key):
|
||||
return key in self.empty
|
||||
|
||||
def delete(self, key):
|
||||
del self.emtpy[key]
|
||||
|
||||
def flush(self):
|
||||
self.empty = {}
|
||||
|
||||
def copy(self):
|
||||
return self.empty.copy()
|
||||
|
||||
def __getstate__(self):
|
||||
return self.copy()
|
||||
|
||||
def __setstate__(self, data):
|
||||
self.empty = data
|
||||
@ -1,3 +1,5 @@
|
||||
plugin: test_inventory
|
||||
departments:
|
||||
- paris
|
||||
cache: yes
|
||||
cache_timeout: 0
|
||||
|
||||
Loading…
Reference in New Issue