mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
sanatize results
This commit is contained in:
parent
92dd563a75
commit
8ce864db6f
3 changed files with 15 additions and 5 deletions
|
@ -21,6 +21,7 @@ __metaclass__ = type
|
||||||
|
|
||||||
from ansible.compat.six.moves import queue
|
from ansible.compat.six.moves import queue
|
||||||
from ansible.compat.six import iteritems, text_type
|
from ansible.compat.six import iteritems, text_type
|
||||||
|
from ansible.vars import strip_internal_keys
|
||||||
|
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
import time
|
import time
|
||||||
|
@ -105,7 +106,7 @@ class ResultProcess(multiprocessing.Process):
|
||||||
|
|
||||||
# if this task is registering a result, do it now
|
# if this task is registering a result, do it now
|
||||||
if result._task.register:
|
if result._task.register:
|
||||||
self._send_result(('register_host_var', result._host, result._task.register, result._result))
|
self._send_result(('register_host_var', result._host, result._task.register, strip_internal_keys(result._result)))
|
||||||
|
|
||||||
# send callbacks, execute other options based on the result status
|
# send callbacks, execute other options based on the result status
|
||||||
# TODO: this should all be cleaned up and probably moved to a sub-function.
|
# TODO: this should all be cleaned up and probably moved to a sub-function.
|
||||||
|
|
|
@ -27,6 +27,7 @@ from copy import deepcopy
|
||||||
from ansible.compat.six import string_types
|
from ansible.compat.six import string_types
|
||||||
|
|
||||||
from ansible import constants as C
|
from ansible import constants as C
|
||||||
|
from ansible.vars import strip_internal_keys
|
||||||
from ansible.utils.unicode import to_unicode
|
from ansible.utils.unicode import to_unicode
|
||||||
|
|
||||||
__all__ = ["CallbackBase"]
|
__all__ = ["CallbackBase"]
|
||||||
|
@ -56,10 +57,7 @@ class CallbackBase:
|
||||||
indent = 4
|
indent = 4
|
||||||
|
|
||||||
# All result keys stating with _ansible_ are internal, so remove them from the result before we output anything.
|
# All result keys stating with _ansible_ are internal, so remove them from the result before we output anything.
|
||||||
abridged_result = result.copy()
|
abridged_result = strip_internal_keys(result)
|
||||||
for k in abridged_result.keys():
|
|
||||||
if isinstance(k, string_types) and k.startswith('_ansible_'):
|
|
||||||
del abridged_result[k]
|
|
||||||
|
|
||||||
# Remove invocation unless verbosity is turned up or the specific
|
# Remove invocation unless verbosity is turned up or the specific
|
||||||
# callback wants to keep it
|
# callback wants to keep it
|
||||||
|
|
|
@ -69,6 +69,17 @@ def preprocess_vars(a):
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
def strip_internal_keys(dirty):
|
||||||
|
'''
|
||||||
|
All keys stating with _ansible_ are internal, so create a copy of the 'dirty' dict
|
||||||
|
and remove them from the clean one before returning it
|
||||||
|
'''
|
||||||
|
clean = dirty.copy()
|
||||||
|
for k in dirty.keys():
|
||||||
|
if isinstance(k, string_types) and k.startswith('_ansible_'):
|
||||||
|
del clean[k]
|
||||||
|
return clean
|
||||||
|
|
||||||
class VariableManager:
|
class VariableManager:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
Loading…
Reference in a new issue