diff --git a/lib/ansible/plugins/cache/__init__.py b/lib/ansible/plugins/cache/__init__.py index 0938e0983e6..875837d0337 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 ec2ed992228..0988ed80367 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