Merge "Fix osprofiler support in horizon"
This commit is contained in:
@@ -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
|
||||
|
@@ -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]})
|
||||
|
||||
|
Reference in New Issue
Block a user