Merge "Fix osprofiler support in horizon"

This commit is contained in:
Zuul
2019-02-08 10:55:51 +00:00
committed by Gerrit Code Review
2 changed files with 15 additions and 5 deletions

View File

@@ -19,6 +19,7 @@ from django.core.cache import caches
from django.core.cache.utils import make_template_fragment_key from django.core.cache.utils import make_template_fragment_key
from django.dispatch import receiver from django.dispatch import receiver
from django import template from django import template
import six
register = template.Library() register = template.Library()
@@ -112,8 +113,14 @@ def angular_templates(context):
result.extend(finder.find(relative_path, True)) result.extend(finder.find(relative_path, True))
path = result[-1] path = result[-1]
try: try:
with open(path) as template_file: if six.PY3:
angular_templates[template_static_path] = template_file.read() with open(path, encoding='utf-8') as template_file:
angular_templates[template_static_path] = template_file.\
read()
else:
with open(path) as template_file:
angular_templates[template_static_path] = template_file.\
read()
except (OSError, IOError): except (OSError, IOError):
# Failed to read template, leave the template dictionary blank # Failed to read template, leave the template dictionary blank
# If the caller is using this dictionary to pre-populate a cache # If the caller is using this dictionary to pre-populate a cache

View File

@@ -22,6 +22,7 @@ from osprofiler.drivers.base import get_driver as profiler_get_driver
from osprofiler import notifier from osprofiler import notifier
from osprofiler import profiler from osprofiler import profiler
from osprofiler import web from osprofiler import web
import six
from six.moves.urllib.parse import urlparse from six.moves.urllib.parse import urlparse
@@ -78,9 +79,8 @@ def _get_engine(request):
def list_traces(request): def list_traces(request):
engine = _get_engine(request) engine = _get_engine(request)
query = {"info.user_id": request.user.id} fields = ['base_id', 'timestamp', 'info.request.path', 'info']
fields = ['base_id', 'timestamp', 'info.request.path'] traces = engine.list_traces(fields)
traces = engine.list_traces(query, fields)
return [{'id': trace['base_id'], return [{'id': trace['base_id'],
'timestamp': trace['timestamp'], 'timestamp': trace['timestamp'],
'origin': trace['info']['request']['path']} for trace in traces] 'origin': trace['info']['request']['path']} for trace in traces]
@@ -118,6 +118,9 @@ def update_trace_headers(keys, **kwargs):
trace_info.update(kwargs) trace_info.update(kwargs)
p = profiler.get() p = profiler.get()
trace_data = utils.signed_pack(trace_info, p.hmac_key) trace_data = utils.signed_pack(trace_info, p.hmac_key)
if six.PY3:
trace_data = [key.decode() if isinstance(key, six.binary_type)
else key for key in trace_data]
return json.dumps({web.X_TRACE_INFO: trace_data[0], return json.dumps({web.X_TRACE_INFO: trace_data[0],
web.X_TRACE_HMAC: trace_data[1]}) web.X_TRACE_HMAC: trace_data[1]})