mirror of
https://github.com/newnius/YAO-portal.git
synced 2025-06-07 15:41:56 +00:00
update
This commit is contained in:
parent
929ab65321
commit
0e0c5a6f1e
12
ajax.php
12
ajax.php
@ -101,9 +101,15 @@ switch ($action) {
|
|||||||
|
|
||||||
case 'job_predict_req':
|
case 'job_predict_req':
|
||||||
$job = new CRObject();
|
$job = new CRObject();
|
||||||
$job->set('name', cr_get_POST('name'));
|
$job->set('name', cr_get_POST('name', '') . '-' . time() . Random::randomInt(1000, 9999));
|
||||||
$job->set('cmd', cr_get_POST('cmd'));
|
$job->set('virtual_cluster', cr_get_POST('cluster'));
|
||||||
$res = job_predict_req($job);
|
$job->set('workspace', cr_get_POST('workspace'));
|
||||||
|
$job->set('priority', cr_get_POST('priority'));
|
||||||
|
$job->set('run_before', cr_get_POST('run_before'));
|
||||||
|
$job->set('locality', cr_get_POST('locality'));
|
||||||
|
$job->set('tasks', cr_get_POST('tasks'));
|
||||||
|
$role = cr_get_GET('role');
|
||||||
|
$res = job_predict_req($job, $role);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'summary_get':
|
case 'summary_get':
|
||||||
|
@ -147,7 +147,7 @@ function job_status(CRObject $job)
|
|||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
function job_predict_req(CRObject $job)
|
function job_predict_req(CRObject $job, $role)
|
||||||
{
|
{
|
||||||
if (!AccessController::hasAccess(Session::get('role', 'visitor'), 'job.list')) {
|
if (!AccessController::hasAccess(Session::get('role', 'visitor'), 'job.list')) {
|
||||||
$res['errno'] = Code::NO_PRIVILEGE;
|
$res['errno'] = Code::NO_PRIVILEGE;
|
||||||
@ -155,7 +155,25 @@ function job_predict_req(CRObject $job)
|
|||||||
}
|
}
|
||||||
|
|
||||||
$spider = new Spider();
|
$spider = new Spider();
|
||||||
$spider->doGet(YAO_SCHEDULER_ADDR . '?action=job_predict_req&name=' . $job->get('name') . '&cmd=' . $job->get('cmd'));
|
$tasks = json_decode($job->get('tasks'), true);
|
||||||
|
foreach ($tasks as $i => $task) {
|
||||||
|
$task['cpu_number'] = intval($task['cpu_number']);
|
||||||
|
$task['memory'] = intval($task['memory']);
|
||||||
|
$task['gpu_number'] = intval($task['gpu_number']);
|
||||||
|
$task['gpu_memory'] = intval($task['gpu_memory']);
|
||||||
|
$task['is_ps'] = $task['is_ps'] == 1;
|
||||||
|
$tasks[$i] = $task;
|
||||||
|
}
|
||||||
|
$job->set('tasks', $tasks);
|
||||||
|
$job->set('workspace', $job->get('workspace'));
|
||||||
|
$job->set('group', $job->get('virtual_cluster'));
|
||||||
|
$job->set('priority', $job->getInt('priority'));
|
||||||
|
$job->set('locality', $job->getInt('locality'));
|
||||||
|
$job->set('run_before', $job->getInt('run_before'));
|
||||||
|
$job->set('created_by', $job->getInt('created_by'));
|
||||||
|
$data['job'] = json_encode($job);
|
||||||
|
|
||||||
|
$spider->doPost(YAO_SCHEDULER_ADDR . '?action=job_predict_req&role=' . $role, $data);
|
||||||
$msg = json_decode($spider->getBody(), true);
|
$msg = json_decode($spider->getBody(), true);
|
||||||
|
|
||||||
if ($msg === NULL) {
|
if ($msg === NULL) {
|
||||||
@ -172,8 +190,8 @@ function job_predict_req(CRObject $job)
|
|||||||
|
|
||||||
$res['cpu'] = $msg['cpu'];
|
$res['cpu'] = $msg['cpu'];
|
||||||
$res['mem'] = $msg['mem'];
|
$res['mem'] = $msg['mem'];
|
||||||
$res['gpu'] = $msg['gpu'];
|
$res['gpu_util'] = $msg['gpu_util'];
|
||||||
$res['gmem'] = $msg['gmem'];
|
$res['gpu_mem'] = $msg['gpu_mem'];
|
||||||
$res['bw'] = $msg['bw'];
|
$res['bw'] = $msg['bw'];
|
||||||
$res['errno'] = Code::SUCCESS;
|
$res['errno'] = Code::SUCCESS;
|
||||||
return $res;
|
return $res;
|
||||||
|
@ -34,17 +34,50 @@ function register_events_job() {
|
|||||||
|
|
||||||
$("#form-job-predict-req").click(function (e) {
|
$("#form-job-predict-req").click(function (e) {
|
||||||
var name = $('#form-job-name').val();
|
var name = $('#form-job-name').val();
|
||||||
var cmd = '';
|
var workspace = $('#form-job-workspace').val();
|
||||||
|
var cluster = $('#form-job-cluster').val();
|
||||||
|
var priority = $('#form-job-priority').val();
|
||||||
|
var run_before = $('#form-job-run-before').val();
|
||||||
|
var locality = $('#form-job-locality').val();
|
||||||
|
if (run_before.length !== 0) {
|
||||||
|
run_before = moment(run_before).unix();
|
||||||
|
}
|
||||||
|
var tasks = [];
|
||||||
$('#form-job-tasks').find('.row').each(function () {
|
$('#form-job-tasks').find('.row').each(function () {
|
||||||
cmd = $(this).find('.task-cmd').eq(0).val();
|
var task = {};
|
||||||
|
task['name'] = $(this).find('.task-name').eq(0).val();
|
||||||
|
task['image'] = $(this).find('.task-image').eq(0).val();
|
||||||
|
task['cmd'] = $(this).find('.task-cmd').eq(0).val();
|
||||||
|
task['cpu_number'] = $(this).find('.task-cpu').eq(0).val();
|
||||||
|
task['memory'] = $(this).find('.task-mem').eq(0).val();
|
||||||
|
task['gpu_number'] = $(this).find('.task-gpu-num').eq(0).val();
|
||||||
|
task['gpu_memory'] = $(this).find('.task-gpu-mem').eq(0).val();
|
||||||
|
task['is_ps'] = $(this).find('.task-is-ps').eq(0).val();
|
||||||
|
task['gpu_model'] = $(this).find('.task-gpu-model').eq(0).val();
|
||||||
|
tasks.push(task);
|
||||||
|
});
|
||||||
|
|
||||||
|
/* TODO validate form */
|
||||||
|
if (name.length === 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
$.each(tasks, function (i, task) {
|
||||||
|
if (task['name'].length === 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var ajax = $.ajax({
|
var ajax = $.ajax({
|
||||||
url: "service?action=job_predict_req",
|
url: "service?action=job_predict_req&role=PS",
|
||||||
type: 'GET',
|
type: 'POST',
|
||||||
data: {
|
data: {
|
||||||
name: name,
|
name: name,
|
||||||
cmd: cmd
|
workspace: workspace,
|
||||||
|
cluster: cluster,
|
||||||
|
priority: priority,
|
||||||
|
run_before: run_before,
|
||||||
|
locality: locality,
|
||||||
|
tasks: JSON.stringify(tasks)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ajax.done(function (res) {
|
ajax.done(function (res) {
|
||||||
@ -55,9 +88,9 @@ function register_events_job() {
|
|||||||
console.log(res);
|
console.log(res);
|
||||||
|
|
||||||
$('#form-job-tasks').find('.row').each(function () {
|
$('#form-job-tasks').find('.row').each(function () {
|
||||||
$(this).find('.task-cpu').eq(0).val(4);
|
$(this).find('.task-cpu').eq(0).val(res['cpu']);
|
||||||
$(this).find('.task-mem').eq(0).val(8192);
|
$(this).find('.task-mem').eq(0).val(res['mem']);
|
||||||
$(this).find('.task-gpu-mem').eq(0).val(8192);
|
$(this).find('.task-gpu-mem').eq(0).val(res['gpu_mem']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user