summaryrefslogtreecommitdiff
path: root/web-app/static/index.html
blob: a6c57ec3b77fa6d4a4347d72ba4d15ff4ee7a2c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<html>
<head>
  <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
  <META HTTP-EQUIV="EXPIRES" CONTENT="0">
  <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

  <link href='http://fonts.googleapis.com/css?family=Merriweather+Sans:200,700' rel='stylesheet' type='text/css'>
  <link href='http://code.jquery.com/ui/1.11.4/themes/overcast/jquery-ui.css' rel='stylesheet' type='text/css'>
  <link href='http://cdn.datatables.net/1.10.7/css/jquery.dataTables.css' rel='stylesheet' type='text/css'>


  <script type='text/javascript' src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
  <script type='text/javascript' src="http://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script> 
  <script type="text/javascript" src="https://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>
  <script type='text/javascript' src="http://canvasjs.com/assets/script/canvasjs.min.js"></script>

  <style>
   h1,h2,h3 { font-family: "Merriweather Sans", Arial, serif; font-weight: 700; }
   BODY { font-family: "Merriweather Sans", Arial, serif; font-weight: 200; font-size: 90%; }
   TABLE { font-size: 90%; }
  </style>

<script type="text/javascript" src="util.js"></script>
<script type="text/javascript" src="chart.js"></script>
<script type="text/javascript">

// global
var test_annotations_data;

$(function() {
   var params = parse_query(window.location.search);
   var param_show_failed_jobs = params["show_failed_jobs"];
   if (param_show_failed_jobs == undefined) { 
      show_job_failures = false;
   } else {
      show_job_failures = true;
   }

   // generate a summary table of all the runs
   var table1 = $('#summary_table').DataTable( {
        "paging" : false,
        "searching" : false,
        "info" : false,
        "autowidth" : false,
        "ajax": { "dataSrc" : "", "url" : "/results/tempest/summary" },
        "columns": [
            { "title" : "Branch", "data" : "Branch" },
            { "title" : "OS Distro / Version", "data" : "OS_Name" },
            { "title" : "Device", "data" : "Device" },
            { "title" : "# Of Test Runs", "data" : "Number_Of_Runs" },
            { "title" : "Average Passing (%)", "data" : "Average_Pct_Passing" },
            { "title" : "Average Failing (%)", "data" : "Average_Pct_Failing" },
            { "title" : "Average Skipped (%)", "data" : "Average_Pct_Skipped" }
        ],
        "order": [[2, 'desc']]
   });

   // get the set of categorization data, the job annotation data and generate charts using the combinations
   $.getJSON("/env", function(config_data) {
      var test_annotations_url = "http://" + config_data['StaticLogsServer'] + "/test-annotations.json";
      $.getJSON(test_annotations_url, function(annotations_data) {
	 // store annotations data globally -- just retrieving it in this nest of callbacks
	 // to make sure it is available before generating the charts
	 test_annotations_data = annotations_data;
         $.getJSON("/results/all-categorization", function(categorization_data) {
            categorization_data['Branch'].forEach(function(value, index) {
               var branch = value['n.name'];
               categorization_data['Device'].forEach(function(value, index) {
                  var device = value['n.name'];
                  categorization_data['OS'].forEach(function(value, index) {
                     var distro = value['n.distro'];
                     var version = value['n.version'];
                     var div_name = branch.replace("/", "-") + "-" + device + "-" + distro + "-" + version;
            
                     $("<div>", {
                        'id': div_name,
                        css: { "height": "450px", "width": "90%" }
                     }).appendTo($("#chartContainer"));
                     $("<br>").appendTo($("#chartContainer"));

                     // generate a chart for the combination
                     create_chart(div_name, branch, device, distro, version, 60, show_job_failures, handle_chart_click);
		  });
               });
            });
         });
      });
   });
});

function handle_chart_click(job, series) {
   window.location.href = "detail.html?job=" + job;
}

</script>


</head>
<body>
<h1><img style="vertical-align: middle; width: 150px" src="http://www.linaro.org/app/images/linaro-logo-web.png"/>
Openstack CI</h1>

<p>
Linaro runs Openstack Tempest on arm64 on a nighty schedule.  For more information on the hardware and test methodology, see <a href="https://wiki.linaro.org/OpenStack/OpenstackTempestCI">https://wiki.linaro.org/OpenStack/OpenstackTempestCI</a>.
</p>

<h2>Summary</h2>

<table id="summary_table" class="display" cellspacing="0" width="90%"></table>

<br/><br/>

<h2>Detailed Results</h2>

<p>In the charts below, you can click on the data series labels in the chart legends to show/hide the series.</p>
<div id="chartContainer"></div>
</body>
</html>