Merge "Fixed request logging"

This commit is contained in:
Zuul
2025-02-28 19:05:03 +00:00
committed by Gerrit Code Review
3 changed files with 33 additions and 0 deletions

View File

@@ -172,6 +172,7 @@ class SessionClient(adapter.LegacyJsonAdapter):
def __init__(self, *args, **kwargs):
apiver = kwargs.pop('api_version', None) or api_versions.APIVersion()
self.http_log_debug = kwargs.pop('http_log_debug', False)
if not isinstance(apiver, api_versions.APIVersion):
apiver = api_versions.APIVersion(str(apiver))
if apiver.ver_minor != 0:
@@ -182,6 +183,8 @@ class SessionClient(adapter.LegacyJsonAdapter):
def request(self, *args, **kwargs):
kwargs.setdefault('authenticated', False)
if self.http_log_debug:
kwargs.setdefault('logger', self._logger)
# Note(tpatil): The standard call raises errors from
# keystoneauth, here we need to raise the cinderclient errors.
@@ -718,6 +721,7 @@ def _construct_http_client(username=None, password=None, project_id=None,
region_name=region_name,
retries=retries,
api_version=api_version,
http_log_debug=http_log_debug,
**kwargs)
else:
# FIXME(jamielennox): username and password are now optional. Need

View File

@@ -246,6 +246,28 @@ class ClientTest(utils.TestCase):
# is not getting called.
self.assertFalse(mock_from_resp.called)
@mock.patch('keystoneauth1.adapter.LegacyJsonAdapter.request',
return_value=(mock.Mock(), mock.Mock()))
@ddt.data(True, False, None)
def test_http_log_debug_request(self, http_log_debug, mock_request):
args_req = (mock.sentinel.url, mock.sentinel.OP)
kwargs_req = {'raise_exc': False}
kwargs_expect = {'authenticated': False}
kwargs_expect.update(kwargs_req)
kwargs = {'api_version': '3.0'}
if isinstance(http_log_debug, bool):
kwargs['http_log_debug'] = http_log_debug
if http_log_debug:
kwargs_expect['logger'] = mock.ANY
cs = cinderclient.client.SessionClient(self, **kwargs)
res = cs.request(*args_req, **kwargs_req)
mock_request.assert_called_once_with(*args_req, **kwargs_expect)
self.assertEqual(mock_request.return_value, res)
class ClientTestSensitiveInfo(utils.TestCase):
def test_req_does_not_log_sensitive_info(self):

View File

@@ -0,0 +1,7 @@
---
fixes:
- |
`Bug #2035372
<https://bugs.launchpad.net/python-cinderclient/+bug/2035372>`_: Fixed
not honoring ``http_log_debug`` parameter in ``cinderclient.client.Client``
when also providing a session.