Exemple #1
0
 /** convertXmlREsults */
 public function convertXmlREsults($xml)
 {
     /** @var Remoteprocessing_JobModel $jobModel */
     $jobModel = MidasLoader::loadmodel('Job', 'remoteprocessing');
     /** @var ItemModel $itemModel */
     $itemModel = MidasLoader::loadmodel('Item');
     $xml = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
     if (!$xml) {
         return;
     }
     $return = array();
     $return['job'] = $jobModel->load((int) $xml->attributes()->id[0]);
     $return['params'] = JsonComponent::decode((string) $xml->JobParameters);
     $return['process'] = array();
     $i = 1;
     foreach ($xml->Process as $process) {
         $tmp = array();
         $tmp['status'] = (string) $process->attributes()->status[0];
         $tmp['command'] = trim((string) $process->Command);
         $tmp['stderr'] = trim((string) $process->Error);
         $tmp['stdout'] = trim((string) $process->Output);
         $tmp['xmlStdout'] = simplexml_load_string($tmp['stdout'], 'SimpleXMLElement', LIBXML_NOCDATA);
         $tmp['time'] = (double) trim(str_replace('s', '', (string) $process->ExecutionTime));
         // convert in milliseconds
         $tmp['output'] = array();
         $tmp['parameters'] = array();
         foreach ($return['params']['parametersList'] as $key => $parameter) {
             $tmp['parameters'][$key] = trim($return['params']['optionMatrix'][$i][$key]);
         }
         if (isset($return['params']['outputKeys'][$i])) {
             foreach ($return['params']['outputKeys'][$i] as $itemId) {
                 $tmp['output'][] = $itemModel->load($itemId);
             }
         }
         $return['process'][] = $tmp;
         ++$i;
     }
     return $return;
 }