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 |