set_time_limit(0); // Remove time limit if ($webcall) { if (pcntl_fork()) { // Fork process exit(42); // This marks a successful fork, so we should return success to the caller } posix_setsid(); // Make child process session leader } // Okay, we're now in our own execution space. Let's begin // We need to restart Propel to regain access to the DB Propel::init(LILAC_FS_ROOT . "includes/lilac-conf.php"); if (isset($argv[1]) && is_numeric($argv[1])) { $autodiscoveryJob = AutodiscoveryJobPeer::retrieveByPK($argv[1]); if (!$autodiscoveryJob) { print "Job with id: " . $argv[1] . " not found.\n"; exit(20); } $autodiscoveryJob->setStartTime(time()); $autodiscoveryJob->clearLog(); $autodiscoveryJob->save(); // Okay, let's get the AutodiscoveryConfig $config = $autodiscoveryJob->getConfig(); $config = unserialize($config); $engineClass = $config->getEngineClass(); if (!class_exists($engineClass) || !is_subclass_of($engineClass, "AutodiscoveryEngine")) { $autodiscoveryJob->addError("Autodiscovery Engine of type " . $engineClass . " not found."); exit(30); }
$config = unserialize($autodiscoveryJob->getConfig()); $defaultTemplateId = $config->getVar("default_template"); if (!empty($defaultTemplateId)) { $defaultTemplate = NagiosHostTemplatePeer::retrieveByPK($defaultTemplateId); } if (empty($defaultTemplate)) { $defaultTemplate = null; } AutodiscoveryMatchMaker::match($device, $defaultTemplate); $success = "Recalculated Matching Templates."; } } if (isset($_GET['request']) && $_GET['request'] == 'status') { // We're our AJAX client wanting status information $result = array(); $autodiscoveryJob = AutodiscoveryJobPeer::retrieveByPK($_GET['id']); if (!$autodiscoveryJob) { $result['error'] = "Invalid job specified."; print json_encode($result); exit; } // Okay, let's populate the status $result['start_time'] = $autodiscoveryJob->getStartTime(); $result['status_code'] = $autodiscoveryJob->getStatusCode(); $result['status_text'] = $autodiscoveryJob->getStatus(); $result['status_change_time'] = $autodiscoveryJob->getStatusChangeTime(); // Build elapsed time if (!in_array($autodiscoveryJob->getStatusCode(), array(AutoDiscoveryJob::STATUS_FAILED, AutoDiscoveryJob::STATUS_FINISHED))) { $target = time(); } else { $target = strtotime($result['status_change_time']);