From 9ca81ab7729d2b2995497433f3891b5d34022b1d Mon Sep 17 00:00:00 2001 From: Karsten Heiken Date: Wed, 28 Sep 2011 19:18:20 +0200 Subject: [PATCH] Handle the upload of results --- application/controllers/xmlrpc.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/application/controllers/xmlrpc.php b/application/controllers/xmlrpc.php index dfaf765..c1f58b2 100644 --- a/application/controllers/xmlrpc.php +++ b/application/controllers/xmlrpc.php @@ -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(),