summaryrefslogtreecommitdiff
path: root/keystoneclient/session.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-12 04:37:43 +0000
committerGerrit Code Review <review@openstack.org>2016-02-12 04:37:43 +0000
commit9fa98872cc7b4390bdefb5ae1ced0ef7c383061c (patch)
treef7d1e743ad6e38b25a899ca6d2564bafe3491d5d /keystoneclient/session.py
parentaa1798d3926dd9637b18da21839a9608200d5289 (diff)
parent96fbfeab973cf61cd5ba129056cf4e6634d805b8 (diff)
downloadpython-keystoneclient-9fa98872cc7b4390bdefb5ae1ced0ef7c383061c.tar.gz
Merge "Handle exception on UnicodeDecodError in logging of request"
Diffstat (limited to 'keystoneclient/session.py')
-rw-r--r--keystoneclient/session.py13
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):