diff --git a/glanceclient/common/http.py b/glanceclient/common/http.py index 2bc6257..015328d 100644 --- a/glanceclient/common/http.py +++ b/glanceclient/common/http.py @@ -150,7 +150,7 @@ class HTTPClient(object): curl.append('-d \'%s\'' % kwargs['body']) curl.append('%s%s' % (self.endpoint, url)) - LOG.debug(strutils.safe_encode(' '.join(curl))) + LOG.debug(strutils.safe_encode(' '.join(curl), errors='ignore')) @staticmethod def log_http_response(resp, body=None): diff --git a/tests/test_http.py b/tests/test_http.py index 9310812..8dabdba 100644 --- a/tests/test_http.py +++ b/tests/test_http.py @@ -337,6 +337,16 @@ class TestClient(testtools.TestCase): 'timeout': 600.0} self.assertEqual(expected, actual) + def test_log_curl_request_with_non_ascii_char(self): + try: + headers = {'header1': 'value1\xa5\xa6'} + http_client_object = http.HTTPClient(self.endpoint) + http_client_object.log_curl_request('GET', + 'http://www.example.com/\xa5', + {'headers': headers}) + except UnicodeDecodeError as e: + self.fail("Unexpected UnicodeDecodeError exception '%s'" % e) + class TestHostResolutionError(testtools.TestCase):