From 1a2ef0922fb63f09642fbcf05bf2069ee8684c07 Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Mon, 25 Jun 2018 15:06:32 -0500 Subject: [PATCH] Use inventory.get_host instead of direct access to inventory.hosts (#41860) * Use inventory.get_host instead of direct access to inventory.hosts. Fixes #32152 * Prevent potential side effect, by using self._inventory.localhost directly instead of get_host --- lib/ansible/plugins/strategy/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/ansible/plugins/strategy/__init__.py b/lib/ansible/plugins/strategy/__init__.py index 2423eb30fbf..97be5bf3a30 100644 --- a/lib/ansible/plugins/strategy/__init__.py +++ b/lib/ansible/plugins/strategy/__init__.py @@ -717,7 +717,12 @@ class StrategyBase: # the host here is from the executor side, which means it was a # serialized/cloned copy and we'll need to look up the proper # host object from the master inventory - real_host = self._inventory.hosts[host.name] + real_host = self._inventory.hosts.get(host.name) + if real_host is None: + if host.name == self._inventory.localhost.name: + real_host = self._inventory.localhost + else: + raise AnsibleError('%s cannot be matched in inventory' % host.name) group_name = result_item.get('add_group') parent_group_names = result_item.get('parent_groups', [])