Handle log message interpolation by the logger
According to OpenStack Guideline[1], logged string message should be interpolated by the logger. Also, upgraded hacking requirement, to enable H904 check. [1]: http://docs.openstack.org/developer/oslo.i18n/guidelines.html#adding-variables-to-log-messages Co-Authored-By: jiansong <jian.song@easystack.cn> Change-Id: I3f020b6bcb1b9bf6d18a3b4f738c13cccd1bbff8 Closes-Bug: #1596829
This commit is contained in:
parent
4139774157
commit
ccceffa7f5
1
tox.ini
1
tox.ini
@ -57,6 +57,7 @@ commands =
|
||||
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
||||
|
||||
[flake8]
|
||||
enable-extensions = H106,H203,H904
|
||||
ignore = H202,H405,H501
|
||||
show-source = True
|
||||
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,releasenotes
|
||||
|
@ -39,7 +39,7 @@ from oslo_utils import importutils
|
||||
from troveclient.apiclient import exceptions
|
||||
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class HTTPClient(object):
|
||||
@ -111,19 +111,19 @@ class HTTPClient(object):
|
||||
header = "-H '%s: %s'" % (element, kwargs['headers'][element])
|
||||
string_parts.append(header)
|
||||
|
||||
_logger.debug("REQ: %s" % " ".join(string_parts))
|
||||
LOG.debug("REQ: %s", " ".join(string_parts))
|
||||
if 'data' in kwargs:
|
||||
_logger.debug("REQ BODY: %s\n" % (kwargs['data']))
|
||||
LOG.debug("REQ BODY: %s\n", kwargs['data'])
|
||||
|
||||
def _http_log_resp(self, resp):
|
||||
if not self.debug:
|
||||
return
|
||||
_logger.debug(
|
||||
LOG.debug(
|
||||
"RESP: [%s] %s\n",
|
||||
resp.status_code,
|
||||
resp.headers)
|
||||
if resp._content_consumed:
|
||||
_logger.debug(
|
||||
LOG.debug(
|
||||
"RESP BODY: %s\n",
|
||||
resp.text)
|
||||
|
||||
@ -176,7 +176,7 @@ class HTTPClient(object):
|
||||
self._http_log_resp(resp)
|
||||
|
||||
if resp.status_code >= 400:
|
||||
_logger.debug(
|
||||
LOG.debug(
|
||||
"Request returned failure status: %s",
|
||||
resp.status_code)
|
||||
raise exceptions.from_response(resp, method, url)
|
||||
|
@ -24,7 +24,7 @@ from troveclient._i18n import _
|
||||
from troveclient import exceptions
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
_discovered_plugins = {}
|
||||
@ -40,8 +40,8 @@ def discover_auth_systems():
|
||||
try:
|
||||
auth_plugin = ep.load()
|
||||
except (ImportError, pkg_resources.UnknownExtra, AttributeError) as e:
|
||||
logger.debug(_("ERROR: Cannot load auth plugin %s") % ep.name)
|
||||
logger.debug(e, exc_info=1)
|
||||
LOG.debug(_("ERROR: Cannot load auth plugin %s"), ep.name)
|
||||
LOG.debug(e, exc_info=1)
|
||||
else:
|
||||
_discovered_plugins[ep.name] = auth_plugin
|
||||
|
||||
|
@ -119,11 +119,11 @@ class HTTPClient(TroveClientMixin):
|
||||
self.auth_system = auth_system
|
||||
self.auth_plugin = auth_plugin
|
||||
|
||||
self._logger = logging.getLogger(__name__)
|
||||
if self.http_log_debug and not self._logger.handlers:
|
||||
self.LOG = logging.getLogger(__name__)
|
||||
if self.http_log_debug and not self.LOG.handlers:
|
||||
ch = logging.StreamHandler()
|
||||
self._logger.setLevel(logging.DEBUG)
|
||||
self._logger.addHandler(ch)
|
||||
self.LOG.setLevel(logging.DEBUG)
|
||||
self.LOG.addHandler(ch)
|
||||
if hasattr(requests, 'logging'):
|
||||
requests.logging.getLogger(requests.__name__).addHandler(ch)
|
||||
|
||||
@ -144,12 +144,12 @@ class HTTPClient(TroveClientMixin):
|
||||
|
||||
if 'data' in kwargs:
|
||||
string_parts.append(" -d '%s'" % (kwargs['data']))
|
||||
self._logger.debug("\nREQ: %s\n" % "".join(string_parts))
|
||||
self.LOG.debug("\nREQ: %s\n", "".join(string_parts))
|
||||
|
||||
def http_log_resp(self, resp):
|
||||
if not self.http_log_debug:
|
||||
return
|
||||
self._logger.debug(
|
||||
self.LOG.debug(
|
||||
"RESP: [%s] %s\nRESP BODY: %s\n",
|
||||
resp.status_code,
|
||||
resp.headers,
|
||||
@ -211,7 +211,7 @@ class HTTPClient(TroveClientMixin):
|
||||
except exceptions.Unauthorized:
|
||||
if auth_attempts > 0:
|
||||
raise
|
||||
self._logger.debug("Unauthorized, reauthenticating.")
|
||||
self.LOG.debug("Unauthorized, reauthenticating.")
|
||||
self.management_url = self.auth_token = None
|
||||
# First reauth. Discount this attempt.
|
||||
attempts -= 1
|
||||
@ -226,12 +226,12 @@ class HTTPClient(TroveClientMixin):
|
||||
raise
|
||||
except requests.exceptions.ConnectionError as e:
|
||||
# Catch a connection refused from requests.request
|
||||
self._logger.debug("Connection refused: %s" % e)
|
||||
self.LOG.debug("Connection refused: %s", e)
|
||||
msg = 'Unable to establish connection: %s' % e
|
||||
raise exceptions.ConnectionRefused(msg)
|
||||
self._logger.debug(
|
||||
"Failed attempt(%s of %s), retrying in %s seconds" %
|
||||
(attempts, self.retries, backoff))
|
||||
self.LOG.debug(
|
||||
"Failed attempt(%s of %s), retrying in %s seconds",
|
||||
attempts, self.retries, backoff)
|
||||
sleep_lib.sleep(backoff)
|
||||
backoff *= 2
|
||||
|
||||
@ -303,7 +303,7 @@ class HTTPClient(TroveClientMixin):
|
||||
# GET ...:5001/v2.0/tokens/#####/endpoints
|
||||
url = '/'.join([url, 'tokens', '%s?belongsTo=%s'
|
||||
% (self.proxy_token, self.proxy_tenant_id)])
|
||||
self._logger.debug("Using Endpoint URL: %s" % url)
|
||||
self.LOG.debug("Using Endpoint URL: %s", url)
|
||||
resp, body = self.request(url, "GET",
|
||||
headers={'X-Auth-Token': self.auth_token})
|
||||
return self._extract_service_catalog(url, resp, body,
|
||||
|
@ -29,7 +29,7 @@ from troveclient.compat import auth
|
||||
from troveclient.compat import exceptions
|
||||
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
LOG = logging.getLogger(__name__)
|
||||
RDC_PP = os.environ.get("RDC_PP", "False") == "True"
|
||||
|
||||
|
||||
@ -39,8 +39,8 @@ expected_errors = (400, 401, 403, 404, 408, 409, 413, 422, 500, 501)
|
||||
def log_to_streamhandler(stream=None):
|
||||
stream = stream or sys.stderr
|
||||
ch = logging.StreamHandler(stream)
|
||||
_logger.setLevel(logging.DEBUG)
|
||||
_logger.addHandler(ch)
|
||||
LOG.setLevel(logging.DEBUG)
|
||||
LOG.addHandler(ch)
|
||||
|
||||
|
||||
if 'REDDWARFCLIENT_DEBUG' in os.environ and os.environ['REDDWARFCLIENT_DEBUG']:
|
||||
@ -105,7 +105,7 @@ class TroveHTTPClient(httplib2.Http):
|
||||
self.pretty_log(args, kwargs, resp, body)
|
||||
|
||||
def simple_log(self, args, kwargs, resp, body):
|
||||
if not _logger.isEnabledFor(logging.DEBUG):
|
||||
if not LOG.isEnabledFor(logging.DEBUG):
|
||||
return
|
||||
|
||||
string_parts = ['curl -i']
|
||||
@ -119,13 +119,13 @@ class TroveHTTPClient(httplib2.Http):
|
||||
header = ' -H "%s: %s"' % (element, kwargs['headers'][element])
|
||||
string_parts.append(header)
|
||||
|
||||
_logger.debug("REQ: %s\n" % "".join(string_parts))
|
||||
LOG.debug("REQ: %s\n", "".join(string_parts))
|
||||
if 'body' in kwargs:
|
||||
_logger.debug("REQ BODY: %s\n" % (kwargs['body']))
|
||||
_logger.debug("RESP:%s %s\n", resp, body)
|
||||
LOG.debug("REQ BODY: %s\n", kwargs['body'])
|
||||
LOG.debug("RESP:%s %s\n", resp, body)
|
||||
|
||||
def pretty_log(self, args, kwargs, resp, body):
|
||||
if not _logger.isEnabledFor(logging.DEBUG):
|
||||
if not LOG.isEnabledFor(logging.DEBUG):
|
||||
return
|
||||
|
||||
string_parts = ['curl -i']
|
||||
@ -140,24 +140,24 @@ class TroveHTTPClient(httplib2.Http):
|
||||
string_parts.append(header)
|
||||
|
||||
curl_cmd = "".join(string_parts)
|
||||
_logger.debug("REQUEST:")
|
||||
LOG.debug("REQUEST:")
|
||||
if 'body' in kwargs:
|
||||
_logger.debug("%s -d '%s'" % (curl_cmd, kwargs['body']))
|
||||
LOG.debug("%s -d '%s'", curl_cmd, kwargs['body'])
|
||||
try:
|
||||
req_body = json.dumps(json.loads(kwargs['body']),
|
||||
sort_keys=True, indent=4)
|
||||
except Exception:
|
||||
req_body = kwargs['body']
|
||||
_logger.debug("BODY: %s\n" % (req_body))
|
||||
LOG.debug("BODY: %s\n", req_body)
|
||||
else:
|
||||
_logger.debug(curl_cmd)
|
||||
LOG.debug(curl_cmd)
|
||||
|
||||
try:
|
||||
resp_body = json.dumps(json.loads(body), sort_keys=True, indent=4)
|
||||
except Exception:
|
||||
resp_body = body
|
||||
_logger.debug("RESPONSE HEADERS: %s" % resp)
|
||||
_logger.debug("RESPONSE BODY : %s" % resp_body)
|
||||
LOG.debug("RESPONSE HEADERS: %s", resp)
|
||||
LOG.debug("RESPONSE BODY : %s", resp_body)
|
||||
|
||||
def request(self, *args, **kwargs):
|
||||
kwargs.setdefault('headers', kwargs.get('headers', {}))
|
||||
|
@ -51,7 +51,7 @@ DEFAULT_OS_DATABASE_API_VERSION = "1.0"
|
||||
DEFAULT_TROVE_ENDPOINT_TYPE = 'publicURL'
|
||||
DEFAULT_TROVE_SERVICE_TYPE = 'database'
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
LOG = logging.getLogger(__name__)
|
||||
osprofiler_profiler = importutils.try_import("osprofiler.profiler")
|
||||
|
||||
|
||||
@ -751,7 +751,7 @@ def main():
|
||||
print(_("... terminating trove client"), file=sys.stderr)
|
||||
sys.exit(130)
|
||||
except Exception as e:
|
||||
logger.debug(e, exc_info=1)
|
||||
LOG.debug(e, exc_info=1)
|
||||
message = six.text_type(e)
|
||||
if not isinstance(message, six.string_types):
|
||||
message = str(message)
|
||||
|
Loading…
x
Reference in New Issue
Block a user