Don't use copy.deepcopy in high workload areas, use naive_deepcopy (#44337)

* Don't use copy.deepcopy in high workload areas, use deepishcopy. ci_complete

* Add tests

* Add changelog fragment

* rename to naive_deepcopy and add extra docs

* Rename to module_response_deepcopy and move to vars/clean
This commit is contained in:
Matt Martz
2018-08-20 15:08:29 -05:00
committed by GitHub
parent 27ac2fc67c
commit 9b2baebe64
6 changed files with 119 additions and 11 deletions

View File

@@ -5,11 +5,9 @@
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
from copy import deepcopy
from ansible import constants as C
from ansible.parsing.dataloader import DataLoader
from ansible.vars.clean import strip_internal_keys
from ansible.vars.clean import module_response_deepcopy, strip_internal_keys
_IGNORE = ('failed', 'skipped')
_PRESERVE = ('attempts', 'changed', 'retries')
@@ -131,7 +129,7 @@ class TaskResult:
result._result = x
elif self._result:
result._result = deepcopy(self._result)
result._result = module_response_deepcopy(self._result)
# actualy remove
for remove_key in ignore: