Merge branch 'master' of disposed.de:scattport

This commit is contained in:
Eike Foken
2011-09-28 19:34:08 +02:00
2 changed files with 35 additions and 10 deletions

View File

@@ -64,6 +64,8 @@ class Xmlrpc extends MY_Controller {
*/
function _get_job($request) {
$this->load->model('job');
$this->load->model('experiment');
$parameters = $request->output_parameters();
$server = $this->server->getBySecret($parameters[0]);
@@ -79,10 +81,14 @@ class Xmlrpc extends MY_Controller {
'server' => $server->id,
);
$this->job->update($job->id, $update);
// which project does this job belong to?
$experiment = $this->experiment->getById($job->experiment_id);
$response = array(array(
'success' => array('true', 'string'),
'new_job' => array('true', 'string'),
'job_id' => array($job->id, 'string'),
'project_id' => array($experiment['project_id'], 'string'),
'experiment_id' => array($job->experiment_id, 'string'),
), 'struct');
} else {
@@ -132,6 +138,8 @@ class Xmlrpc extends MY_Controller {
*/
function _job_done($request) {
$this->load->model('job');
$this->load->model('experiment');
$parameters = $request->output_parameters();
$server = $this->server->getBySecret($parameters[0]);
@@ -141,6 +149,23 @@ class Xmlrpc extends MY_Controller {
$parameters = $parameters[1];
$job_id = $parameters[0];
$files_uploaded = $parameters[1];
$job = $this->job->getById($job_id);
$experiment = $this->experiment->getById($job['experiment_id']);
$project = $this->project->getById($experiment['project_id']);
if($files_uploaded) {
foreach (glob("/tmp/sp_incoming/" . $job_id . "/*") as $filename) {
$job_dir = FCPATH . 'uploads/' . $experiment['project_id'] . '/' . $experiment['id'] . '/' . $job['id'];
if(!is_dir($job_dir))
mkdir($job_dir);
$pathinfo = pathinfo($filename);
$newpath = FCPATH . 'uploads/' . $experiment['project_id'] . '/' . $experiment['id'] . '/' . $job['id'] . '/' . $pathinfo['basename'];
copy($filename, $newpath);
}
}
$update = array(
'finished_at' => mysql_now(),

View File

@@ -113,16 +113,16 @@ class Job extends CI_Model {
*/
public function getById($job_id) {
$job = $this->db->get_where('jobs', array('id' => $job_id))->row_array();
return array_map(function($var) {
if ($var['started_at'] == '0000-00-00 00:00:00') {
$var['status'] = 'pending';
} else if ($var['finished_at'] == '0000-00-00 00:00:00') {
$var['status'] = 'running';
} else {
$var['status'] = 'complete';
}
return $var;
}, $job);
if ($job['started_at'] == '0000-00-00 00:00:00') {
$job['status'] = 'pending';
} else if ($job['finished_at'] == '0000-00-00 00:00:00') {
$job['status'] = 'running';
} else {
$job['status'] = 'complete';
}
return $job;
}
/**