Skip to content

Commit

Permalink
Improve performance of safe_log().
Browse files Browse the repository at this point in the history
This patch addresses a minor performance regression in a recent change
to this function.  This change ensures that the deep copy is only done
if we really need to.  Previously, the deep copy was being done for all
messages that included a 'method', not just messages with a method that
contain an argument to be sanitized.

Change-Id: I190c5963ecaf70b0aea4e12a2fdc19deb5c1fea2
  • Loading branch information
russellb authored and vishvananda committed Mar 28, 2012
1 parent 785518d commit ada63db
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions nova/rpc/common.py
Expand Up @@ -127,7 +127,12 @@ def consume_in_thread(self):

def _safe_log(log_func, msg, msg_data):
"""Sanitizes the msg_data field before logging."""
has_method = 'method' in msg_data
SANITIZE = {
'set_admin_password': ('new_pass',),
'run_instance': ('admin_password',),
}

has_method = 'method' in msg_data and msg_data['method'] in SANITIZE
has_context_token = '_context_auth_token' in msg_data
has_token = 'auth_token' in msg_data

Expand All @@ -137,10 +142,6 @@ def _safe_log(log_func, msg, msg_data):
msg_data = copy.deepcopy(msg_data)

if has_method:
SANITIZE = {
'set_admin_password': ('new_pass',),
'run_instance': ('admin_password',),
}
method = msg_data['method']
if method in SANITIZE:
args_to_sanitize = SANITIZE[method]
Expand Down

0 comments on commit ada63db

Please sign in to comment.