diff --git a/lib/ansible/plugins/cache/__init__.py b/lib/ansible/plugins/cache/__init__.py index 0938e0983e..875837d033 100644 --- a/lib/ansible/plugins/cache/__init__.py +++ b/lib/ansible/plugins/cache/__init__.py @@ -68,3 +68,8 @@ class FactCache(MutableMapping): def flush(self): """ Flush the fact cache of all keys. """ self._plugin.flush() + + def update(self, key, value): + host_cache = self._plugin.get(key) + host_cache.update(value) + self._plugin.set(key, host_cache) diff --git a/lib/ansible/vars/__init__.py b/lib/ansible/vars/__init__.py index ec2ed99222..0988ed8036 100644 --- a/lib/ansible/vars/__init__.py +++ b/lib/ansible/vars/__init__.py @@ -546,7 +546,7 @@ class VariableManager: self._fact_cache[host.name] = facts else: try: - self._fact_cache[host.name].update(facts) + self._fact_cache.update(host.name, facts) except KeyError: self._fact_cache[host.name] = facts