Fix an issue where cache plugins weren't updated
The first call to persisting facts would work due to the assignment of a MutableMapping calling __setitem__ but subsequent module fact data would not be propogated to the fact cache plugins because update() doesn't invoke __setitem__. This changes the behavior a little bit and ensures set() is called on cache plugins.
This commit is contained in:
parent
d1b98ec776
commit
7da478a4f4
2 changed files with 6 additions and 1 deletions
5
lib/ansible/plugins/cache/__init__.py
vendored
5
lib/ansible/plugins/cache/__init__.py
vendored
|
@ -68,3 +68,8 @@ class FactCache(MutableMapping):
|
||||||
def flush(self):
|
def flush(self):
|
||||||
""" Flush the fact cache of all keys. """
|
""" Flush the fact cache of all keys. """
|
||||||
self._plugin.flush()
|
self._plugin.flush()
|
||||||
|
|
||||||
|
def update(self, key, value):
|
||||||
|
host_cache = self._plugin.get(key)
|
||||||
|
host_cache.update(value)
|
||||||
|
self._plugin.set(key, host_cache)
|
||||||
|
|
|
@ -546,7 +546,7 @@ class VariableManager:
|
||||||
self._fact_cache[host.name] = facts
|
self._fact_cache[host.name] = facts
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
self._fact_cache[host.name].update(facts)
|
self._fact_cache.update(host.name, facts)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
self._fact_cache[host.name] = facts
|
self._fact_cache[host.name] = facts
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue