mirror of
https://github.com/newnius/YAO-portal.git
synced 2025-06-06 07:11:54 +00:00
add stop support
This commit is contained in:
parent
d23fa19649
commit
dbfe0c5bb7
1
ajax.php
1
ajax.php
@ -103,6 +103,7 @@ switch ($action) {
|
||||
$task = new CRObject();
|
||||
$task->set('job', cr_get_GET('job'));
|
||||
$task->set('task', cr_get_GET('task'));
|
||||
$task->set('task', 'node1');
|
||||
$res = task_logs($task);
|
||||
break;
|
||||
|
||||
|
@ -69,6 +69,8 @@ function init_accessMap()
|
||||
/* job */
|
||||
'job.list' => array('root', 'admin', 'developer', 'normal'),
|
||||
'job.submit' => array('root', 'admin', 'developer', 'normal'),
|
||||
'job.stop' => array('root', 'admin', 'developer', 'normal'),
|
||||
'job.stop_others' => array('root', 'admin', 'developer', 'normal'),
|
||||
|
||||
/* system */
|
||||
'system.summary' => array('root', 'admin', 'developer', 'normal'),
|
||||
|
@ -48,8 +48,14 @@ function job_submit(CRObject $job)
|
||||
$job->set('created_by', $job->getInt('created_by'));
|
||||
$data['job'] = json_encode($job);
|
||||
$spider->doPost(YAO_SCHEDULER_ADDR . '?action=job_submit', $data);
|
||||
$res['message'] = $spider->getBody();
|
||||
$msg = json_decode($spider->getBody(), true);
|
||||
|
||||
$res['errno'] = Code::SUCCESS;
|
||||
if ($msg['code'] !== 0) {
|
||||
$res['errno'] = Code::FAIL;
|
||||
$res['msg'] = $msg['error'];
|
||||
return $res;
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
@ -59,21 +65,22 @@ function job_stop(CRObject $job)
|
||||
$res['errno'] = Code::NO_PRIVILEGE;
|
||||
return $res;
|
||||
}
|
||||
$origin = JobManager::get($job);
|
||||
if ($origin === null) {
|
||||
$res['errno'] = Code::RECORD_NOT_EXIST;
|
||||
} else if ($origin['created_by'] !== Session::get('uid') && !AccessController::hasAccess(Session::get('role', 'visitor'), 'job.stop_others')) {
|
||||
$res['errno'] = Code::NO_PRIVILEGE;
|
||||
} else if ($origin['status'] !== '0' && $origin['status'] !== '1') {
|
||||
$res['errno'] = Code::RECORD_REMOVED;
|
||||
} else {
|
||||
$origin['status'] = 4;
|
||||
$res['errno'] = JobManager::update(new CRObject($origin)) ? Code::SUCCESS : Code::UNKNOWN_ERROR;
|
||||
/* TODO: permission check */
|
||||
$spider = new Spider();
|
||||
$data['id'] = $job->get('id', '');
|
||||
$spider->doPost(YAO_SCHEDULER_ADDR . '?action=job_stop', $data);
|
||||
$msg = json_decode($spider->getBody(), true);
|
||||
|
||||
$res['errno'] = Code::SUCCESS;
|
||||
if ($msg['code'] !== 0) {
|
||||
$res['errno'] = Code::FAIL;
|
||||
$res['msg'] = $msg['error'];
|
||||
return $res;
|
||||
}
|
||||
$log = new CRObject();
|
||||
$log->set('scope', Session::get('uid'));
|
||||
$log->set('tag', 'job.stop');
|
||||
$content = array('id' => $job->getInt('id'), 'response' => $res['errno']);
|
||||
$content = array('id' => $job->get('id'), 'response' => $res['errno']);
|
||||
$log->set('content', json_encode($content));
|
||||
CRLogger::log($log);
|
||||
return $res;
|
||||
|
20
modals.php
20
modals.php
@ -105,16 +105,16 @@
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label>Docker Image</label>
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control task-image" maxlength="256"
|
||||
placeholder="eg. yao/tensorflow:1.12" required/>
|
||||
</div>
|
||||
<select class="form-control form-control task-image" required>
|
||||
<option value="quickdeploy/yao-tensorflow:1.12" selected>quickdeploy/yao-tensorflow:1.12</option>
|
||||
<option value="nvidia/cuda:9.0-base">nvidia/cuda:9.0-base</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>CMD</label>
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control task-cmd" maxlength="255"
|
||||
placeholder="Command to bring up task" required/>
|
||||
placeholder="Command to bring up task"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -128,15 +128,15 @@
|
||||
<div class="col-md-2">
|
||||
<label>CPU Number</label>
|
||||
<div class="form-group">
|
||||
<input type="number" class="form-control task-cpu" step="1" min="1"
|
||||
<input type="number" class="form-control task-cpu" step="1" min="1" value="1"
|
||||
placeholder="number of CPU required" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<label>Memory</label>
|
||||
<div class="form-group">
|
||||
<input type="number" class="form-control task-mem" step="512" min="512"
|
||||
placeholder="MB" required/>
|
||||
<input type="number" class="form-control task-mem" step="1024" min="1024"
|
||||
value="4096" placeholder="MB" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
@ -149,8 +149,8 @@
|
||||
<div class="col-md-2">
|
||||
<label>GPU Memory</label>
|
||||
<div class="form-group">
|
||||
<input type="number" class="form-control task-gpu-mem" step="512" min="512"
|
||||
placeholder="MB" required/>
|
||||
<input type="number" class="form-control task-gpu-mem" step="1024" min="1024"
|
||||
value="4096" placeholder="MB" required/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -26,6 +26,13 @@ function register_events_job() {
|
||||
});
|
||||
|
||||
/* TODO validate form */
|
||||
if (name.length === 0) {
|
||||
return true;
|
||||
}
|
||||
if (workspace.length === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$('#modal-job').modal('hide');
|
||||
|
||||
@ -227,14 +234,14 @@ window.jobOperateEvents = {
|
||||
var ajax = $.ajax({
|
||||
url: window.config.BASE_URL + "/service?action=job_stop",
|
||||
type: 'POST',
|
||||
data: {id: row.id}
|
||||
data: {id: row.name}
|
||||
});
|
||||
ajax.done(function (res) {
|
||||
if (res["errno"] !== 0) {
|
||||
$("#modal-msg-content").html(res["msg"]);
|
||||
$("#modal-msg").modal('show');
|
||||
}
|
||||
$('#table-link').bootstrapTable("refresh");
|
||||
$('#table-job').bootstrapTable("refresh");
|
||||
});
|
||||
ajax.fail(function (jqXHR, textStatus) {
|
||||
$("#modal-msg-content").html("Request failed : " + jqXHR.statusText);
|
||||
|
26
ucenter.php
26
ucenter.php
@ -17,7 +17,7 @@ if (Session::get('uid') === null) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$page_type = 'home';
|
||||
$page_type = 'summary';
|
||||
$uid = Session::get('uid');
|
||||
$nickname = Session::get('nickname');
|
||||
|
||||
@ -48,13 +48,9 @@ if (isset($_GET['logs'])) {
|
||||
} elseif (isset($_GET['workspaces'])) {
|
||||
$page_type = 'workspaces';
|
||||
|
||||
} elseif (isset($_GET['home'])) {
|
||||
$page_type = 'home';
|
||||
|
||||
}
|
||||
|
||||
$entries = array(
|
||||
array('home', 'Home'),
|
||||
array('summary', 'Summary'),
|
||||
array('jobs', 'Jobs'),
|
||||
array('workspaces', 'Workspaces'),
|
||||
@ -117,25 +113,7 @@ foreach ($entries as $entry) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if ($page_type === 'home') { ?>
|
||||
<div id="home">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Welcome page</div>
|
||||
<div class="panel-body">
|
||||
Welcome back, <?php echo htmlspecialchars($nickname) ?>.<br/>
|
||||
Now: <?php echo date('H:i:s', time()) ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Notice</div>
|
||||
<div class="panel-body">
|
||||
<h4 class="text-info">Notices</h4>
|
||||
<p>Nothing new here.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php } elseif ($page_type === 'summary') { ?>
|
||||
<?php if ($page_type === 'summary') { ?>
|
||||
<div id="jobs">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Summary</div>
|
||||
|
Loading…
Reference in New Issue
Block a user