|
|
|
@ -137,6 +137,7 @@ class PlayIterator:
|
|
|
|
|
self._blocks.append(new_block)
|
|
|
|
|
|
|
|
|
|
self._host_states = {}
|
|
|
|
|
start_at_matched = False
|
|
|
|
|
for host in inventory.get_hosts(self._play.hosts):
|
|
|
|
|
self._host_states[host.name] = HostState(blocks=self._blocks)
|
|
|
|
|
# if the host's name is in the variable manager's fact cache, then set
|
|
|
|
@ -152,16 +153,20 @@ class PlayIterator:
|
|
|
|
|
break
|
|
|
|
|
if task.name == play_context.start_at_task or fnmatch.fnmatch(task.name, play_context.start_at_task) or \
|
|
|
|
|
task.get_name() == play_context.start_at_task or fnmatch.fnmatch(task.get_name(), play_context.start_at_task):
|
|
|
|
|
# we have our match, so clear the start_at_task field on the
|
|
|
|
|
# play context to flag that we've started at a task (and future
|
|
|
|
|
# plays won't try to advance)
|
|
|
|
|
play_context.start_at_task = None
|
|
|
|
|
start_at_matched = True
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
|
self.get_next_task_for_host(host)
|
|
|
|
|
|
|
|
|
|
# finally, reset the host's state to ITERATING_SETUP
|
|
|
|
|
self._host_states[host.name].run_state = self.ITERATING_SETUP
|
|
|
|
|
|
|
|
|
|
if start_at_matched:
|
|
|
|
|
# we have our match, so clear the start_at_task field on the
|
|
|
|
|
# play context to flag that we've started at a task (and future
|
|
|
|
|
# plays won't try to advance)
|
|
|
|
|
play_context.start_at_task = None
|
|
|
|
|
|
|
|
|
|
# Extend the play handlers list to include the handlers defined in roles
|
|
|
|
|
self._play.handlers.extend(play.compile_roles_handlers())
|
|
|
|
|
|
|
|
|
|