diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-02-12 04:37:43 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-02-12 04:37:43 +0000 |
commit | 9fa98872cc7b4390bdefb5ae1ced0ef7c383061c (patch) | |
tree | f7d1e743ad6e38b25a899ca6d2564bafe3491d5d /keystoneclient/session.py | |
parent | aa1798d3926dd9637b18da21839a9608200d5289 (diff) | |
parent | 96fbfeab973cf61cd5ba129056cf4e6634d805b8 (diff) | |
download | python-keystoneclient-9fa98872cc7b4390bdefb5ae1ced0ef7c383061c.tar.gz |
Merge "Handle exception on UnicodeDecodError in logging of request"
Diffstat (limited to 'keystoneclient/session.py')
-rw-r--r-- | keystoneclient/session.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/keystoneclient/session.py b/keystoneclient/session.py index 0011c35..1e08213 100644 --- a/keystoneclient/session.py +++ b/keystoneclient/session.py @@ -22,6 +22,7 @@ import warnings from debtcollector import removals from oslo_config import cfg from oslo_serialization import jsonutils +from oslo_utils import encodeutils from oslo_utils import importutils from oslo_utils import strutils from positional import positional @@ -198,10 +199,18 @@ class Session(object): for header in six.iteritems(headers): string_parts.append('-H "%s: %s"' % self._process_header(header)) + if data: string_parts.append("-d '%s'" % data) - - logger.debug(' '.join(string_parts)) + try: + logger.debug(' '.join(string_parts)) + except UnicodeDecodeError: + logger.debug("Replaced characters that could not be decoded" + " in log output, original caused UnicodeDecodeError") + string_parts = [ + encodeutils.safe_decode( + part, errors='replace') for part in string_parts] + logger.debug(' '.join(string_parts)) def _http_log_response(self, response, logger): if not logger.isEnabledFor(logging.DEBUG): |