mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-08 14:22:46 +00:00
Fixes #4958 Truncate printed stdout if it contains non-printable characters
This commit is contained in:
@@ -38,6 +38,7 @@ import ansible.inventory
|
|||||||
from ansible import utils
|
from ansible import utils
|
||||||
from ansible.utils import template
|
from ansible.utils import template
|
||||||
from ansible.utils import check_conditional
|
from ansible.utils import check_conditional
|
||||||
|
from ansible.utils import string_functions
|
||||||
from ansible import errors
|
from ansible import errors
|
||||||
from ansible import module_common
|
from ansible import module_common
|
||||||
import poller
|
import poller
|
||||||
@@ -742,6 +743,12 @@ class Runner(object):
|
|||||||
self.callbacks.on_unreachable(host, result.result)
|
self.callbacks.on_unreachable(host, result.result)
|
||||||
else:
|
else:
|
||||||
data = result.result
|
data = result.result
|
||||||
|
|
||||||
|
# https://github.com/ansible/ansible/issues/4958
|
||||||
|
if "stdout" in data and sys.stdout.isatty():
|
||||||
|
if not string_functions.isprintable(data['stdout']):
|
||||||
|
data['stdout'] = ''
|
||||||
|
|
||||||
if 'item' in inject:
|
if 'item' in inject:
|
||||||
result.result['item'] = inject['item']
|
result.result['item'] = inject['item']
|
||||||
|
|
||||||
|
|||||||
7
lib/ansible/utils/string_functions.py
Normal file
7
lib/ansible/utils/string_functions.py
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
def isprintable(instring):
|
||||||
|
#http://stackoverflow.com/a/3637294
|
||||||
|
import string
|
||||||
|
printset = set(string.printable)
|
||||||
|
isprintable = set(instring).issubset(printset)
|
||||||
|
return isprintable
|
||||||
|
|
||||||
Reference in New Issue
Block a user