Fix logic in PlayIterator when inserting tasks during rescue/always

Because the fail_state is potentially non-zero in these block sections,
the prior logic led to included tasks not being inserted at all.

Related issue: #13605
This commit is contained in:
James Cammarata 2015-12-20 12:37:24 -05:00
parent 5fef2c4297
commit 6ae04c1e4f

View file

@ -397,7 +397,7 @@ class PlayIterator:
def _insert_tasks_into_state(self, state, task_list):
# if we've failed at all, or if the task list is empty, just return the current state
if state.fail_state != self.FAILED_NONE or not task_list:
if state.fail_state != self.FAILED_NONE and state.run_state not in (self.ITERATING_RESCUE, self.ITERATING_ALWAYS) or not task_list:
return state
if state.run_state == self.ITERATING_TASKS: