Create state in PlayIterator for unknown hosts rather than raise errors

Since we now use the PlayIterator to carry forward failures from previous
play executions, in the event that some hosts which had previously failed
are not in the current inventory we now create a stub state instead of
raising an error.
This commit is contained in:
James Cammarata 2016-06-07 09:42:39 -05:00
parent aa66551352
commit 313d94cc71

View file

@ -216,10 +216,13 @@ class PlayIterator:
self._play.handlers.extend(play.compile_roles_handlers())
def get_host_state(self, host):
try:
return self._host_states[host.name].copy()
except KeyError:
raise AnsibleError("invalid host (%s) specified for playbook iteration" % host)
# Since we're using the PlayIterator to carry forward failed hosts,
# in the event that a previous host was not in the current inventory
# we create a stub state for it now
if host.name not in self._host_states:
self._host_states[host.name] = HostState(blocks=[])
return self._host_states[host.name].copy()
def get_next_task_for_host(self, host, peek=False):