diff --git a/ajax.php b/ajax.php index 220a7ac..7166aa1 100644 --- a/ajax.php +++ b/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; diff --git a/init.inc.php b/init.inc.php index 608639a..2c14bfc 100644 --- a/init.inc.php +++ b/init.inc.php @@ -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'), diff --git a/job.logic.php b/job.logic.php index 539bf9d..807cb96 100644 --- a/job.logic.php +++ b/job.logic.php @@ -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; diff --git a/modals.php b/modals.php index 1e3766b..4dd902c 100755 --- a/modals.php +++ b/modals.php @@ -105,16 +105,16 @@
Nothing new here.
-