From 49a148056c86a5ef047a3004a7a0190349adef2b Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Tue, 7 Jul 2015 12:05:07 -0700 Subject: [PATCH] Ensure that we're dealing with byte str when we print or log messages --- lib/ansible/utils/display.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/lib/ansible/utils/display.py b/lib/ansible/utils/display.py index ab3a06a5ed3..a9a4f8bb50a 100644 --- a/lib/ansible/utils/display.py +++ b/lib/ansible/utils/display.py @@ -28,6 +28,7 @@ import sys from ansible import constants as C from ansible.errors import AnsibleError from ansible.utils.color import stringc +from ansible.utils.unicode import to_bytes class Display: @@ -70,25 +71,21 @@ class Display: if color: msg2 = stringc(msg, color) if not log_only: + b_msg2 = to_bytes(msg2) if not stderr: - try: - print(msg2) - except UnicodeEncodeError: - print(msg2.encode('utf-8')) + print(b_msg2) else: - try: - print(msg2, file=sys.stderr) - except UnicodeEncodeError: - print(msg2.encode('utf-8'), file=sys.stderr) + print(b_msg2, file=sys.stderr) if C.DEFAULT_LOG_PATH != '': while msg.startswith("\n"): msg = msg.replace("\n","") + b_msg = to_bytes(msg) # FIXME: logger stuff needs to be implemented #if not screen_only: # if color == 'red': - # logger.error(msg) + # logger.error(b_msg) # else: - # logger.info(msg) + # logger.info(b_msg) def vv(self, msg, host=None): return self.verbose(msg, host=host, caplevel=1)