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.dispatch import receiver
from django import template
import six
register = template.Library()
@@ -112,8 +113,14 @@ def angular_templates(context):
result.extend(finder.find(relative_path, True))
path = result[-1]
try:
with open(path) as template_file:
angular_templates[template_static_path] = template_file.read()
if six.PY3:
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):
# Failed to read template, leave the template dictionary blank
# 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 profiler
from osprofiler import web
import six
from six.moves.urllib.parse import urlparse
@@ -78,9 +79,8 @@ def _get_engine(request):
def list_traces(request):
engine = _get_engine(request)
query = {"info.user_id": request.user.id}
fields = ['base_id', 'timestamp', 'info.request.path']
traces = engine.list_traces(query, fields)
fields = ['base_id', 'timestamp', 'info.request.path', 'info']
traces = engine.list_traces(fields)
return [{'id': trace['base_id'],
'timestamp': trace['timestamp'],
'origin': trace['info']['request']['path']} for trace in traces]
@@ -118,6 +118,9 @@ def update_trace_headers(keys, **kwargs):
trace_info.update(kwargs)
p = profiler.get()
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],
web.X_TRACE_HMAC: trace_data[1]})