renderConfig(); die(); } if(isset($_GET['id'])) { $exportJob = ExportJobPeer::retrieveByPK($_GET['id']); if(!$exportJob) { unset($exportJob); } if(isset($_GET['action']) && $_GET['action'] == "restart") { $exportJob->setStatusCode(ExportJob::STATUS_STARTING); $exportJob->setStartTime(time()); $exportJob->setStatus("Starting..."); $exportJob->save(); exec("php exporter/export.php " . $exportJob->getId() . " > /dev/null", $tempOutput, $retVal); if($retVal != 42) { $error = "Failed to run external exporter script. Return value: " . $retVal . "
Error:"; foreach($tempOutput as $output) { $error .= $output . "
"; } } else { // No need to show //$success = "Restarted Export Job"; } } if(isset($_GET['delete'])) { // We want to delete the job! $exportJob->delete(); unset($_GET['id']); unset($exportJob); $success = "Removed Job"; } } if(isset($_GET['request']) && $_GET['request'] == 'status') { // We're our AJAX client wanting status information $result = array(); $exportJob = ExportJobPeer::retrieveByPK($_GET['id']); if(!$exportJob) { $result['error'] = "Invalid job specified."; print(json_encode($result)); exit(); } // Okay, let's populate the status $result['start_time'] = $exportJob->getStartTime(); $result['status_code'] = $exportJob->getStatusCode(); $result['status_text'] = $exportJob->getStatus(); $result['status_change_time'] = $exportJob->getStatusChangeTime(); // Build elapsed time if(!in_array($exportJob->getStatusCode(), array(ExportJob::STATUS_FAILED, ExportJob::STATUS_FINISHED))) { $target = time(); } else { $target = strtotime($result['status_change_time']); } $start = strtotime($result['start_time']); $total = $target - $start; $hours = (int)($total / 3600); $total = $total % 3600; $minutes = (int)($total / 60); $seconds = $total % 60; $result['elapsed_time'] = $hours . " Hours " . $minutes . " Minutes " . $seconds . " Seconds"; print(json_encode($result)); exit(); } if(isset($_GET['request']) && $_GET['request'] == 'fetch') { // We're our AJAX client wanting to get new log data $result = array(); $c = new Criteria(); $c->add(ExportLogEntryPeer::JOB, $_GET['id']); $c->setLimit($_POST['rp']); $c->setOffset(isset($_POST['page']) ? ($_POST['page'] - 1) * $_POST['rp'] : 0); $c->addDescendingOrderByColumn(ExportLogEntryPeer::ID); $entries = $exportJob->getExportLogEntrys($c); foreach($entries as $entry) { $results['rows'][] = array('id' => $entry->getId(), 'cell' => array( $entry->getTime(), $entry->getReadableType($entry->getType()), $entry->getText())); } $c = new Criteria(); $c->add(ExportLogEntryPeer::JOB, $exportJob->getId()); $results['page'] = $_POST['page']; $results['total'] = ExportLogEntryPeer::doCount($c); ?> validateConfig(); } if(empty($error)) { // All is good. Let's create our job. $config = new ExportConfig($engineClass); $engine->buildConfig($config); $exportJob = new ExportJob(); $exportJob->setName($_POST['job_name']); $exportJob->setDescription($_POST['job_description']); $exportJob->setCmd(ExportJob::CMD_START); $exportJob->setConfig(serialize($config)); $exportJob->setStartTime(time()); $exportJob->setStatus("Starting..."); $exportJob->setStatusCode(ExportJob::STATUS_STARTING); $exportJob->save(); // Attempt to execute the external exporter script, fork it, and love it. exec("php exporter/export.php " . $exportJob->getId() . " > /dev/null", $tempOutput, $retVal); if($retVal != 42) { $error = "Failed to run external exporter script. Return value: " . $retVal . "
Error:"; foreach($tempOutput as $output) { $error .= $output . "
"; } } } } print_header("Exporter"); if(isset($exportJob)) { ?> add(ExportJobPeer::END_TIME, null); $exportJobs = ExportJobPeer::doSelect($c); if($exportJobs) { print_window_header("Existing Export Jobs", "100%"); ?> There appears to be existing export jobs. There should only be one running. If there are multiple showing as running, you should cancel them or purge them. Click on a job to view it's progress and it's log.
Name Description Start Time Status Actions
getName();?> getDescription();?> getStartTime();?> getStatus();?> View Job Restart
To begin an export of your configuration, an Export Job must be defined. Configure your export job below. Once created, your export job will begin in the background. You will be able to check on the status of your export and view it's log as it continues running. You are advised to NOT edit anything in Lilac while your export is running.

Job Definition

Choose an Engine to use for your Import Job from Above.
getStats(); if($stats) { $stats = unserialize($stats); } print_window_header("Job Details", "100%"); ?> Job Name: getName();?>
Job Id: getId();?>
getDescription();?>

Start Time: getStartTime();?>

getStatusCode(), array(ExportJob::STATUS_FAILED, ExportJob::STATUS_FINISHED) )) { ?> Elapsed Time: Unknown getStatusCode() == ExportJob::STATUS_FAILED) { ?> Time of Failure: getStatusChangeTime();?> Time When Completed: getStatusChangeTime();?>
Current Status: getStatus();?>

Job Supplemental: