diff options
author | James Cammarata <jimi@sngx.net> | 2016-08-04 09:08:36 -0500 |
---|---|---|
committer | James Cammarata <jimi@sngx.net> | 2016-08-08 15:58:46 -0500 |
commit | e2448951744e647df5c9a43b75d83cf7e62b887d (patch) | |
tree | 9af38d30a4fbd9ffba51088a8b25df6df855c5ca | |
parent | 06d4f4ad0e8f62c6b02b01833b94a0e44be008d0 (diff) | |
download | ansible-performance_improvements.tar.gz |
Avoid copying task parents in TaskExecutorperformance_improvements
As Block.copy() is potentially expensive, avoid copying the parent
structure of tasks in TaskExecutor.
-rw-r--r-- | lib/ansible/executor/task_executor.py | 3 | ||||
-rw-r--r-- | test/units/executor/test_task_executor.py | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/ansible/executor/task_executor.py b/lib/ansible/executor/task_executor.py index 88f69070eb..3faaee7e82 100644 --- a/lib/ansible/executor/task_executor.py +++ b/lib/ansible/executor/task_executor.py @@ -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))) diff --git a/test/units/executor/test_task_executor.py b/test/units/executor/test_task_executor.py index 12d1330239..60935692d5 100644 --- a/test/units/executor/test_task_executor.py +++ b/test/units/executor/test_task_executor.py @@ -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 |