Merge "safe_log Sanitize Passwords in List of Dicts"

This commit is contained in:
Jenkins 2014-12-23 23:27:05 +00:00 committed by Gerrit Code Review
commit 84f18e8167
1 changed files with 2 additions and 16 deletions

View File

@ -27,6 +27,7 @@ from oslo import messaging
from oslo.messaging._i18n import _
from oslo.messaging import _utils as utils
from oslo.serialization import jsonutils
from oslo.utils import strutils
LOG = logging.getLogger(__name__)
@ -70,8 +71,6 @@ _MESSAGE_KEY = 'oslo.message'
_REMOTE_POSTFIX = '_Remote'
_SANITIZE = ['_context_auth_token', 'auth_token', 'new_pass']
class RPCException(Exception):
msg_fmt = _("An unknown RPC related exception occurred.")
@ -162,22 +161,9 @@ class Connection(object):
raise NotImplementedError()
def _fix_passwords(d):
"""Sanitizes the password fields in the dictionary."""
for k in six.iterkeys(d):
if k.lower().find('password') != -1:
d[k] = '<SANITIZED>'
elif k.lower() in _SANITIZE:
d[k] = '<SANITIZED>'
elif isinstance(d[k], dict):
_fix_passwords(d[k])
return d
def _safe_log(log_func, msg, msg_data):
"""Sanitizes the msg_data field before logging."""
return log_func(msg, _fix_passwords(copy.deepcopy(msg_data)))
return log_func(msg, strutils.mask_password(six.text_type(msg_data)))
def serialize_remote_exception(failure_info, log_failure=True):