|
|
@@ -22,7 +22,6 @@
|
|
|
from jobbrowser.views import format_counter_name
|
|
|
from filebrowser.views import location_to_url
|
|
|
from desktop.views import commonheader, commonfooter
|
|
|
-
|
|
|
from django.template.defaultfilters import urlencode
|
|
|
from django.utils.translation import ugettext as _
|
|
|
%>
|
|
|
@@ -107,7 +106,7 @@ ${ comps.menubar() }
|
|
|
<div class="span2">
|
|
|
<div class="sidebar-nav" style="padding-top: 0">
|
|
|
<ul class="nav nav-list">
|
|
|
- <li class="nav-header">${_('Job ID')}</li>
|
|
|
+ <li class="nav-header">${_('App ID')}</li>
|
|
|
<li class="white hellipsify">${job.jobId_short}</li>
|
|
|
<li class="nav-header">${_('User')}</li>
|
|
|
<li class="white">${job.user}</li>
|
|
|
@@ -115,12 +114,8 @@ ${ comps.menubar() }
|
|
|
<li class="white" id="jobStatus"> </li>
|
|
|
<li class="nav-header">${_('Logs')}</li>
|
|
|
<li><a href="${job.trackingUrl }" target="_blank"><i class="fa fa-tasks"></i> ${_('Logs')}</a></li>
|
|
|
- % if not job.is_retired:
|
|
|
- <li class="nav-header">${_('Maps')}</li>
|
|
|
- <li class="white" id="jobMaps"> </li>
|
|
|
- <li class="nav-header">${_('Reduces')}</li>
|
|
|
- <li class="white" id="jobReduces"> </li>
|
|
|
- % endif
|
|
|
+ <li class="nav-header">${_('Progress')}</li>
|
|
|
+ <li class="white">${job.progress}%</li>
|
|
|
<li class="nav-header">${_('Duration')}</li>
|
|
|
<li class="white">${job.durationFormatted}</li>
|
|
|
<li class="nav-header killJob">${_('Actions')}</li>
|
|
|
@@ -132,9 +127,75 @@ ${ comps.menubar() }
|
|
|
<div class="card card-small">
|
|
|
<h1 class="card-heading simple">${_(job.name)}</h1>
|
|
|
<div class="card-body">
|
|
|
- <p>
|
|
|
- <a href="${job.trackingUrl}" id="tracking-link" target="_blank">${_('Go to spark job list at %s' % job.trackingUrl)}</a>
|
|
|
- </p>
|
|
|
+ <ul class="nav nav-tabs">
|
|
|
+ <li class="active"><a href="#metadata" data-toggle="tab">${_('Metadata')}</a></li>
|
|
|
+ % if job.scrapedData.get('metrics'):
|
|
|
+ <li><a href="#metrics" data-toggle="tab">${_('Metrics')}</a></li>
|
|
|
+ % endif
|
|
|
+ </ul>
|
|
|
+ <div class="tab-content">
|
|
|
+ <div class="tab-pane active" id="metadata">
|
|
|
+ <table class="table table-condensed">
|
|
|
+ <thead>
|
|
|
+ <th>${_('Name')}</th>
|
|
|
+ <th>${_('Value')}</th>
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ <tr>
|
|
|
+ <td>${_('Jobs')}</td>
|
|
|
+ <td><a href="${job.trackingUrl}">${job.trackingUrl}</a></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>${_('Host')}</td>
|
|
|
+ <td><a href="http://${job.amHostHttpAddress}">http://${job.amHostHttpAddress}</a></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>${_('Queue Name')}</td>
|
|
|
+ <td>${job.queueName}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>${_('Started')}</td>
|
|
|
+ <td>${job.startTimeFormatted}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>${_('Finished')}</td>
|
|
|
+ <td>${job.finishTimeFormatted}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>${_('Pre-empted Resource VCores')}</td>
|
|
|
+ <td>${job.preemptedResourceVCores}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>${_('VCore seconds')}</td>
|
|
|
+ <td>${job.vcoreSeconds}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>${_('Memory seconds')}</td>
|
|
|
+ <td>${job.memorySeconds}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>${_('Diagnostics')}</td>
|
|
|
+ <td>${job.diagnostics}</td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ <div class="tab-pane" id="metrics">
|
|
|
+ <table class="table table-condensed">
|
|
|
+ <thead>
|
|
|
+ <th>${_('Metric')}</th>
|
|
|
+ <th>${_('Value')}</th>
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ % for metric in job.scrapedData.get('metrics', []):
|
|
|
+ <tr>
|
|
|
+ <td>${_(metric['header'])}</td>
|
|
|
+ <td>${metric['value']}</td>
|
|
|
+ </tr>
|
|
|
+ % endfor
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -191,6 +252,7 @@ ${ comps.menubar() }
|
|
|
<h1 class="card-heading simple">${_(job.name)}</h1>
|
|
|
<div class="card-body">
|
|
|
<p>
|
|
|
+
|
|
|
<ul class="nav nav-tabs">
|
|
|
% if job.is_mr2:
|
|
|
<li class="active"><a href="#attempts" data-toggle="tab">${_('Attempts')}</a></li>
|