Avoid copying task parents in TaskExecutor

As Block.copy() is potentially expensive, avoid copying the parent
structure of tasks in TaskExecutor.
This commit is contained in:
James Cammarata 2016-08-04 09:08:36 -05:00
parent 06d4f4ad0e
commit e244895174
2 changed files with 3 additions and 2 deletions

View file

@ -246,7 +246,8 @@ class TaskExecutor:
task_vars[loop_var] = item
try:
tmp_task = self._task.copy(exclude_tasks=True)
tmp_task = self._task.copy(exclude_parent=True, exclude_tasks=True)
tmp_task._parent = self._task._parent
tmp_play_context = self._play_context.copy()
except AnsibleParserError as e:
results.append(dict(failed=True, msg=to_unicode(e)))

View file

@ -139,7 +139,7 @@ class TestTaskExecutor(unittest.TestCase):
mock_host = MagicMock()
def _copy(exclude_block=False, exclude_tasks=False):
def _copy(exclude_parent=False, exclude_tasks=False):
new_item = MagicMock()
return new_item