openstack-health/app/views/test.html

123 lines
5.1 KiB
HTML

<header class="bs-header">
<div class="container">
<h1 class="page-header">{{ testCtrl.testShortName }}</h1>
<crumb-menu show-resolution="true" show-period="true">
<li>Test: {{testCtrl.testShortName }}</li>
</crumb-menu>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-lg-12">
<loading-indicator></loading-indicator>
<fresh-check></fresh-check>
</div>
</div>
<div class=row>
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Run Time</h3>
</div>
<div class="panel-body">
<chart-scatter data="testCtrl.timeData" width="100%" height="450" force-y="[0]" ></chart-scatter>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Passes and Failures</h3>
</div>
<div class="panel-body">
<chart-stack-area data="testCtrl.statusData" width="100%" height="450"></chart-stack-area>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Total Test Status Counts</h3>
</div>
<table class="table table-hover default-cols">
<thead>
<tr>
<th>Status</th>
<th>Count</th>
<th>Percentage</th>
</tr>
</thead>
<tbody>
<tr>
<td>Successes</td>
<td>{{testCtrl.totalCounts.passes}}</td>
<td>{{testCtrl.totalCounts.passPercent|number:2}}%</td>
</tr>
<tr>
<td>Failures</td>
<td>{{testCtrl.totalCounts.fails}}</td>
<td>{{testCtrl.totalCounts.failPercent|number:2}}%</td>
</tr>
<tr>
<td>Skips</td>
<td>{{testCtrl.totalCounts.skips}}</td>
<td>{{testCtrl.totalCounts.skipPercent|number:2}}%</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Recent Failures</h3>
</div>
<div class="table-responsive">
<table table-sort data="testCtrl.recentRuns"
class="table table-hover default-cols">
<thead>
<tr>
<th sort-field="job_name">Job Name</th>
<th sort-field="provider">Node Provider</th>
<th sort-default sort-field="run_at">Run At</th>
<th sort-field="artifacts">Link</th>
<th sort-field="bugs">Likely Bugs</th>
</tr>
</thead>
<tbody>
<tr table-ref="table" ng-repeat="run in table.dataSorted">
<td><a ui-sref="job({ jobName: run.job_name })">{{ run.job_name }}</a></td>
<td><a ui-sref="groupedRuns({ runMetadataKey: 'node_provider', name: run.provider })">{{ run.provider }}</a></td>
<td class="nowrap">{{ run.run_at | date:'M/d/yyyy HH:mm' }}</td>
<td>
<a target="_blank" href="{{ run.artifacts }}">
{{ run.artifacts }}
<fa name="external-link"></fa>
</a>
</td>
<td>
<span ng-if="!!value.bugs">
<a ng-repeat="bug in value.bugs"
href="https://launchpad.net/bugs/{{bug}}"
uib-tooltip="Launchpad Bugs: {{bug}}"
target="_blank">{{bug}} <fa name="external-link"></fa>
</a>
</span>
<span ng-if="!value.bugs">-</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>