148 lines
7.3 KiB
HTML
148 lines
7.3 KiB
HTML
{% extends "base_AdminLTE.html"%}
|
|
{% block title %}Docklet | Batch Job{% endblock %}
|
|
|
|
{% block panel_title %}Batch Job{% endblock %}
|
|
|
|
{% block css_src %}
|
|
<link href="//cdn.bootcss.com/datatables/1.10.11/css/dataTables.bootstrap.min.css" rel="stylesheet">
|
|
<link href="//cdn.bootcss.com/datatables/1.10.11/css/jquery.dataTables_themeroller.css" rel="stylesheet">
|
|
<link href="/static/dist/css/modalconfig.css" rel="stylesheet">
|
|
|
|
{% endblock %}
|
|
|
|
{% block panel_list %}
|
|
<ol class="breadcrumb">
|
|
<li>
|
|
<a href="/dashboard/"><i class="fa fa-dashboard"></i>Home</a>
|
|
</li>
|
|
<li class="active">
|
|
<strong>Batch Job</strong>
|
|
</li>
|
|
</ol>
|
|
{% endblock %}
|
|
{% block content %}
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="box box-info">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title">Batch Job List</h3>
|
|
|
|
<div class="box-tools pull-right">
|
|
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
|
|
</button>
|
|
<button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
|
|
</div>
|
|
</div>
|
|
<div class="box-body">
|
|
|
|
<p>
|
|
<a href="/batch_job/create/"><button type="button" class="btn btn-primary btn-sm"><i class="fa fa-plus"></i> Create Batch Job</button></a>
|
|
</p>
|
|
{% for master in masterips %}
|
|
{% for job_info in job_list[master.split('@')[0]] %}
|
|
<div class="modal inmodal" id='OutputModal_{{ master.split('@')[1] }}_{{ job_info['job_id'] }}' tabindex="-1" role="dialog" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content animated fadeIn">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
|
<h4 class="modal-title">Job:{{ job_info['job_name'] }}({{ job_info['job_id'] }}) Stdout and Stderr of tasks</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<table width="100%" cellspacing="0" class="table table-bordered table-striped table-hover table-output">
|
|
<thead>
|
|
<tr>
|
|
<th>Task ID</th>
|
|
<th>Vnode ID</th>
|
|
<th>Stdout</th>
|
|
<th>Stderr</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for taskid in job_info['tasks'] %}
|
|
{% for vnodeid in range(job_info['tasks_vnodeCount'][taskid]) %}
|
|
<tr>
|
|
<td>{{ taskid }}</td>
|
|
<td>{{ vnodeid }}</td>
|
|
<td><a class="btn btn-info btn-xs" href='/batch_job/output/{{ master.split('@')[0] }}/{{ job_info["job_id"] }}/{{ taskid }}/{{ vnodeid }}/stdout/' target="_blank">Stdout</a></td>
|
|
<td><a class="btn btn-info btn-xs" href='/batch_job/output/{{ master.split('@')[0] }}/{{ job_info["job_id"] }}/{{ taskid }}/{{ vnodeid }}/stderr/' target="_blank">Stderr</a></td>
|
|
</tr>
|
|
{% endfor %}
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-white" data-dismiss="modal">Close</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
{% endfor %}
|
|
<div class="table">
|
|
<table width="100%" cellspacing="0" style="margin: 0 auto;" class="table table-striped table-bordered table-hover table-batch">
|
|
<thead>
|
|
<tr>
|
|
<th>Location</th>
|
|
<th>ID</th>
|
|
<th>Name</th>
|
|
<th>Status</th>
|
|
<th>Operations</th>
|
|
<th>Create Time</th>
|
|
<th>End Time</th>
|
|
<th>billing</th>
|
|
<th>Stdout and Stderr</th>
|
|
<th>Detailed Info</th>
|
|
</tr>
|
|
<thead>
|
|
<tbody>
|
|
{% for master in masterips %}
|
|
{% for job_info in job_list[master.split('@')[0]] %}
|
|
<tr>
|
|
<td>{{ master.split('@')[1] }}</td>
|
|
<td>{{ job_info['job_id'] }}</td>
|
|
<td>{{ job_info['job_name'] }}</td>
|
|
<td>
|
|
{{ job_info['status'] }}
|
|
</td>
|
|
{% if job_info['status'] == 'done' or job_info['status'] == 'failed' or job_info['status'] == 'stopping' or job_info['status'] == 'stopped'%}
|
|
<td><button type="button" class="btn btn-xs btn-default"> Stop </button></td>
|
|
{% else %}
|
|
<td><a href="/batch_job/{{master.split("@")[0]}}/stop/{{ job_info['job_id'] }}/"><button type="button" class="btn btn-xs btn-danger"> Stop </button></a></td>
|
|
{% endif %}
|
|
<td>{{ job_info['create_time'] }}</td>
|
|
<td>{{ job_info['end_time'] }}</td>
|
|
<td>{{ job_info['billing'] }} <img src='/static/img/bean.png' /></td>
|
|
<td><a role="button" class="btn btn-info btn-xs" id='{{ master }}_{{ job_info['job_id'] }}_output' data-toggle="modal" data-target='#OutputModal_{{ master.split('@')[1] }}_{{ job_info['job_id'] }}'>Get Output</a></td>
|
|
<td><a href="/batch_job/{{master.split("@")[0]}}/info/{{ job_info['job_id'] }}/"><button type="button" class="btn btn-xs btn-info"> Info </button></a></td>
|
|
</tr>
|
|
{% endfor %}
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|
|
{% block script_src %}
|
|
<script src="//cdn.bootcss.com/datatables/1.10.11/js/jquery.dataTables.min.js"></script>
|
|
<script src="//cdn.bootcss.com/datatables/1.10.11/js/dataTables.bootstrap.min.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
$(".table-batch").DataTable({"scrollX":true,"order":[[ 5, "desc" ]]});
|
|
$(".table-output").DataTable({
|
|
"lengthChange":false});
|
|
});
|
|
function sendAdd(){
|
|
document.getElementById("addForm").submit();
|
|
}
|
|
function sendDel(){
|
|
document.getElementById("delForm").submit();
|
|
}
|
|
</script>
|
|
{% endblock %}
|