commit
f1d53a87e5
2 changed files with 8 additions and 5 deletions
|
@ -399,6 +399,9 @@ class PlayIterator:
|
||||||
if state.fail_state != self.FAILED_NONE:
|
if state.fail_state != self.FAILED_NONE:
|
||||||
return state
|
return state
|
||||||
|
|
||||||
|
if not task_list:
|
||||||
|
return state
|
||||||
|
|
||||||
if state.run_state == self.ITERATING_TASKS:
|
if state.run_state == self.ITERATING_TASKS:
|
||||||
if state.tasks_child_state:
|
if state.tasks_child_state:
|
||||||
state.tasks_child_state = self._insert_tasks_into_state(state.tasks_child_state, task_list)
|
state.tasks_child_state = self._insert_tasks_into_state(state.tasks_child_state, task_list)
|
||||||
|
|
|
@ -145,9 +145,9 @@ class StrategyModule(StrategyBase):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if len(included_files) > 0:
|
if len(included_files) > 0:
|
||||||
|
all_blocks = dict((host, []) for host in hosts_left)
|
||||||
for included_file in included_files:
|
for included_file in included_files:
|
||||||
# included hosts get the task list while those excluded get an equal-length
|
display.debug("collecting new blocks for %s" % included_file)
|
||||||
# list of noop tasks, to make sure that they continue running in lock-step
|
|
||||||
try:
|
try:
|
||||||
new_blocks = self._load_included_file(included_file, iterator=iterator)
|
new_blocks = self._load_included_file(included_file, iterator=iterator)
|
||||||
except AnsibleError as e:
|
except AnsibleError as e:
|
||||||
|
@ -156,18 +156,18 @@ class StrategyModule(StrategyBase):
|
||||||
display.warning(str(e))
|
display.warning(str(e))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
display.debug("generating all_blocks data")
|
|
||||||
all_blocks = dict((host, []) for host in hosts_left)
|
|
||||||
display.debug("done generating all_blocks data")
|
|
||||||
for new_block in new_blocks:
|
for new_block in new_blocks:
|
||||||
task_vars = self._variable_manager.get_vars(loader=self._loader, play=iterator._play, task=included_file._task)
|
task_vars = self._variable_manager.get_vars(loader=self._loader, play=iterator._play, task=included_file._task)
|
||||||
final_block = new_block.filter_tagged_tasks(play_context, task_vars)
|
final_block = new_block.filter_tagged_tasks(play_context, task_vars)
|
||||||
for host in hosts_left:
|
for host in hosts_left:
|
||||||
if host in included_file._hosts:
|
if host in included_file._hosts:
|
||||||
all_blocks[host].append(final_block)
|
all_blocks[host].append(final_block)
|
||||||
|
display.debug("done collecting new blocks for %s" % included_file)
|
||||||
|
|
||||||
|
display.debug("adding all collected blocks from %d included file(s) to iterator" % len(included_files))
|
||||||
for host in hosts_left:
|
for host in hosts_left:
|
||||||
iterator.add_tasks(host, all_blocks[host])
|
iterator.add_tasks(host, all_blocks[host])
|
||||||
|
display.debug("done adding collected blocks to iterator")
|
||||||
|
|
||||||
# pause briefly so we don't spin lock
|
# pause briefly so we don't spin lock
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
|
|
Loading…
Reference in a new issue