Add run_metadata to upstream_run.html
This commit is contained in:
parent
d3073994d6
commit
6b1728b5c5
3
stackviz/static/css/upstream_run.css
Normal file
3
stackviz/static/css/upstream_run.css
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.highlight {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
@ -18,22 +18,67 @@
|
|||||||
|
|
||||||
window.addEventListener('load', function() {
|
window.addEventListener('load', function() {
|
||||||
|
|
||||||
|
|
||||||
//default panel display
|
//default panel display
|
||||||
$("#runs-panel").hide();
|
$("#runs-panel").hide();
|
||||||
$("#gerrit-panel").show();
|
$("#gerrit-panel").show();
|
||||||
|
$("#run-metadata-panel").hide();
|
||||||
|
|
||||||
|
//dict containing all run_metadata objects, keyed by run_id
|
||||||
|
var RUN_METADATA = {};
|
||||||
|
|
||||||
|
//sets the run metdata of the associated run in the proper div
|
||||||
|
function show_run_metadata(id) {
|
||||||
|
$("#run-metadata-table").html("<thead><th>Key</th><th>Value</th></thead>");
|
||||||
|
var meta = RUN_METADATA[id];
|
||||||
|
for (var i in meta) {
|
||||||
|
var obj = meta[i];
|
||||||
|
var row = $("<tr><td>" + obj['key'] + "</td>" +
|
||||||
|
"<td>" + obj['value'] + "</td></tr>");
|
||||||
|
$("#run-metadata-table").append(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//run_metadata will be queried from subunit2sql when given run_id
|
||||||
|
function get_run_metadata(request, run_id) {
|
||||||
|
$.getJSON((request),function(metadata) {
|
||||||
|
RUN_METADATA[run_id]=metadata;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Takes a list of runs and creates a pretty div for each
|
//Takes a list of runs and creates a pretty div for each
|
||||||
function display_runs(data) {
|
function display_runs(data) {
|
||||||
$("#runs-panel").show();
|
$("#runs-panel").show();
|
||||||
|
$("#runs-panel").append("<ul id=\"runs-list\"></ul>");
|
||||||
|
|
||||||
for (var i in data) {
|
for (var i in data) {
|
||||||
var run_obj = data[i]
|
var run_obj = data[i];
|
||||||
var div = $("<div class=\"span12\" id=\"run-div-" + i + "\"></div>");
|
//get run_metadata
|
||||||
$(div.append("<a href=" + run_obj['artifacts'] + " target=\"_blank\">" + run_obj['artifacts'] + "\n</a>"));
|
var request = 'upstream_api_run_id_' + run_obj['id'] + '.json';
|
||||||
$("#runs-panel").append(div);
|
get_run_metadata(request, run_obj['id']);
|
||||||
|
|
||||||
|
var li = $("<li class =\"run-li\" id=\"run-li-" + i + "\" value=\"" + run_obj['id'] + "\"></li>");
|
||||||
|
//on mouseover, show the run_metadata for this run object (li)
|
||||||
|
$(li).hover(
|
||||||
|
function () {
|
||||||
|
$(this).addClass("highlight");
|
||||||
|
show_run_metadata($(this).attr("value"));
|
||||||
|
},
|
||||||
|
function () {
|
||||||
|
$(this).removeClass("highlight");
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
$(li.append("<a href=" + run_obj['artifacts'] + " target=\"_blank\">" + run_obj['artifacts'] + "\n</a>"));
|
||||||
|
$("#runs-list").append(li);
|
||||||
$("#runs-panel-heading").html("Displaying " + i + " Runs");
|
$("#runs-panel-heading").html("Displaying " + i + " Runs");
|
||||||
}
|
}
|
||||||
|
$("#run-metadata-panel").show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$('#gerrit-id').keypress(function (e) {
|
$('#gerrit-id').keypress(function (e) {
|
||||||
if (e.which == 13) {
|
if (e.which == 13) {
|
||||||
$( "#gerrit-id-button" ).click();
|
$( "#gerrit-id-button" ).click();
|
||||||
@ -41,6 +86,8 @@ window.addEventListener('load', function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//click triggers the api call that returns the run data
|
||||||
$('#gerrit-id-button').click(function() {
|
$('#gerrit-id-button').click(function() {
|
||||||
var request = 'upstream_api_changeid_'+$("#gerrit-id").val()+'.json';
|
var request = 'upstream_api_changeid_'+$("#gerrit-id").val()+'.json';
|
||||||
$("#runs-panel").append("<a href=\"https://review.openstack.org/" + $("#gerrit-id").val() +
|
$("#runs-panel").append("<a href=\"https://review.openstack.org/" + $("#gerrit-id").val() +
|
||||||
|
@ -3,7 +3,10 @@
|
|||||||
|
|
||||||
{% block title %}Upstream Run Metadata{% endblock %}
|
{% block title %}Upstream Run Metadata{% endblock %}
|
||||||
|
|
||||||
{% block head-extra %}<script src="{% static 'js/upstream_run.js' %}"></script>{% endblock %}
|
{% block head-extra %}
|
||||||
|
<script src="{% static 'js/upstream_run.js' %}"></script>
|
||||||
|
<script src="{% static 'css/upstream_run.css' %}"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
|
|
||||||
@ -17,7 +20,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-6">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel panel-heading" id="runs-panel-heading">Analyze Run</div>
|
<div class="panel panel-heading" id="runs-panel-heading">Analyze Run</div>
|
||||||
<div class="panel panel-body">
|
<div class="panel panel-body">
|
||||||
@ -29,6 +32,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="panel panel-default" id="run-metadata-panel">
|
||||||
|
<div class="panel panel-heading">Run Metadata</div>
|
||||||
|
<div class="panel panel-body">
|
||||||
|
<div class="table-responsive" id="run-metadata-table-div">
|
||||||
|
<table class="table table-bordered table-hover table-striped" id="run-metadata-table"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,4 +11,20 @@
|
|||||||
<!-- /.col-lg-12 -->
|
<!-- /.col-lg-12 -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel panel-heading" id="runs-panel-heading">Compare Tests</div>
|
||||||
|
<div class="panel panel-body">
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<div id="test-1" class="span6">Test</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<div id="test-avg" class="span6">Avg</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -31,10 +31,7 @@ def _get_runs(change_id):
|
|||||||
|
|
||||||
engine = create_engine('mysql://query:query@logstash.openstack.org' +
|
engine = create_engine('mysql://query:query@logstash.openstack.org' +
|
||||||
':3306/subunit2sql')
|
':3306/subunit2sql')
|
||||||
|
|
||||||
Session = sessionmaker(bind=engine)
|
Session = sessionmaker(bind=engine)
|
||||||
|
|
||||||
# create a Session
|
|
||||||
session = Session()
|
session = Session()
|
||||||
|
|
||||||
list_of_runs = api.get_runs_by_key_value(key="build_change",
|
list_of_runs = api.get_runs_by_key_value(key="build_change",
|
||||||
@ -47,8 +44,33 @@ def _get_runs(change_id):
|
|||||||
|
|
||||||
return ret_list
|
return ret_list
|
||||||
|
|
||||||
|
def _get_metadata(run_id):
|
||||||
|
"""Returns a dict of run_metadata objects associated with a run_id
|
||||||
|
|
||||||
|
:param run_id:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
engine = create_engine('mysql://query:query@logstash.openstack.org' +
|
||||||
|
':3306/subunit2sql')
|
||||||
|
Session = sessionmaker(bind=engine)
|
||||||
|
session = Session()
|
||||||
|
|
||||||
|
metadata = api.get_run_metadata(run_id,session=session)
|
||||||
|
ret_list = []
|
||||||
|
|
||||||
|
for meta in metadata:
|
||||||
|
ret_list.append(meta.to_dict())
|
||||||
|
|
||||||
|
return ret_list
|
||||||
|
|
||||||
|
|
||||||
class GerritURLEndpoint(Endpoint):
|
class GerritURLEndpoint(Endpoint):
|
||||||
|
|
||||||
def get(self, request, change_id):
|
def get(self, request, change_id):
|
||||||
return _get_runs(change_id)
|
return _get_runs(change_id)
|
||||||
|
|
||||||
|
class RunMetadataEndpoint(Endpoint):
|
||||||
|
|
||||||
|
def get(self, request, run_id):
|
||||||
|
return _get_metadata(run_id)
|
||||||
|
@ -19,6 +19,7 @@ from run import RunView
|
|||||||
from test import TestView
|
from test import TestView
|
||||||
|
|
||||||
from api import GerritURLEndpoint
|
from api import GerritURLEndpoint
|
||||||
|
from api import RunMetadataEndpoint
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^run.html$',
|
url(r'^run.html$',
|
||||||
@ -31,5 +32,9 @@ urlpatterns = patterns('',
|
|||||||
|
|
||||||
url(r'^api_changeid_(?P<change_id>\d+).json$',
|
url(r'^api_changeid_(?P<change_id>\d+).json$',
|
||||||
GerritURLEndpoint.as_view(),
|
GerritURLEndpoint.as_view(),
|
||||||
name='gerrit_url')
|
name='gerrit_url'),
|
||||||
|
|
||||||
|
url(r'^api_run_id_(?P<run_id>[a-zA-Z0-9!$* \t\r\n\-]+).json$',
|
||||||
|
RunMetadataEndpoint.as_view(),
|
||||||
|
name='run_metadata_url')
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user