private function importServiceTemplate($templateData) { $job = $this->getEngine()->getJob(); // check to see if we have a template by that name if (NagiosServiceTemplatePeer::getByName($templateData['template_name'])) { $job->addNotice("Fruity Service Template Importer: Template " . $templateData['template_name'] . " already exists. Aborting it's import."); return true; } $newTemplate = new NagiosServiceTemplate(); $newTemplate->setName($templateData['template_name']); // Check to see if we need the template if (!empty($templateData['use_template_id'])) { $name = $this->getServiceTemplateNameById($templateData['use_template_id'], $this->dbConn); if (!$name) { $job->addNotice("Fruity Service Template Importer: Could not find template with id: " . $templateData['use_template_id'] . ". Aborting it's import."); return false; } else { // Okay, we got the name, does this template exist? $template = NagiosServiceTemplatePeer::getByName($name); if (!$template) { return false; } else { // Create a new inheritance relationship $inheritance = new NagiosServiceTemplateInheritance(); $inheritance->setNagiosServiceTemplateRelatedByTargetTemplate($template); $inheritance->setNagiosServiceTemplateRelatedBySourceTemplate($newTemplate); try { $inheritance->save(); } catch (Exception $e) { $job->addNotice("Fruity Service Template Importer: Cannot add inheritance from " . $template->getName() . " to " . $newTemplate->getName()); } } } } // Okay, start 'er up! foreach ($templateData as $key => $val) { unset($name); if ($key == "service_template_id" || $key == "use_template_id" || $key == "template_name") { continue; } if ($key == "template_description") { $key = "description"; } if ($key == "notification_options_warning") { $key = "notification_on_warning"; } if ($key == "notification_options_unknown") { $key = "notification_on_unknown"; } if ($key == "notification_options_critical") { $key = "notification_on_critical"; } if ($key == "notification_options_recovery") { $key = "notification_on_recovery"; } if ($key == "notification_options_flapping") { $key = "notification_on_flapping"; } if ($key == "stalking_options_warning") { $key = "stalking_on_warning"; } if ($key == "stalking_options_unknown") { $key = "stalking_on_unknown"; } if ($key == "stalking_options_critical") { $key = "stalking_on_critical"; } if ($key == "stalking_options_ok") { $key = "stalking_on_ok"; } if ($key == "max_check_attempts") { $key = "maximum_check_attempts"; } if ($key == "retry_check_interval") { $key = "retry_interval"; } if ($key == "check_command") { $name = $this->getCommandNameById($val); if ($name) { $command = NagiosCommandPeer::getByName($name); if ($command) { $newTemplate->setCheckCommand($command->getId()); } } continue; } if ($key == "check_period") { $name = $this->getTimeperiodNameById($val); if ($name) { $timeperiod = NagiosTimeperiodPeer::getByName($name); if ($timeperiod) { $newTemplate->setCheckPeriod($timeperiod->getId()); } } continue; } if ($key == "event_handler") { $name = $this->getCommandNameById($val); if ($name) { $command = NagiosCommandPeer::getByName($name); if ($command) { $newTemplate->setEventHandler($command->getId()); } } continue; } if ($key == "notification_period") { $name = $this->getTimeperiodNameById($val); if ($name) { $timeperiod = NagiosTimeperiodPeer::getByName($name); if ($timeperiod) { $newTemplate->setNotificationPeriod($timeperiod->getId()); } } continue; } try { $name = NagiosServiceTemplatePeer::translateFieldName($key, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME); } catch (Exception $e) { $job->addNotice("Fruity Service Template Importer: Was unable to store unsupported value: " . $key); } if (!empty($name)) { $method = "set" . $name; $newTemplate->{$method}($val); } } $job->addNotice("Fruity Service Template Importer: Saved service template: " . $newTemplate->getName()); $newTemplate->save(); $this->totalImported++; return true; }
$error = "Must provide template to add to inheritance chain."; } else { $template = NagiosServiceTemplatePeer::retrieveByPK($_POST['servicemanage']['template_add']['template_id']); if (!$template) { $error = "That service template is not found."; } else { // We need to get the count of templates already inherited $templateList = $serviceTemplate->getNagiosServiceTemplateInheritances(); foreach ($templateList as $tempTemplate) { if ($tempTemplate->getId() == $_POST['servicemanage']['template_add']['template_id']) { $error = "That template already exists in the inheritance chain."; } } if (empty($error)) { $newInheritance = new NagiosServiceTemplateInheritance(); $newInheritance->setNagiosServiceTemplateRelatedBySourceTemplate($serviceTemplate); $newInheritance->setNagiosServiceTemplateRelatedByTargetTemplate($template); $newInheritance->setOrder(count($templateList)); try { $newInheritance->save(); $success = "Template added to inheritance chain."; } catch (Exception $e) { $error = $e->getMessage(); } } } } } else { if ($_POST['request'] == 'service_template_modify_checks') { if (isset($modifiedData['max_check_attempts']) && !is_numeric($modifiedData['max_check_attempts']) || isset($modifiedData['max_check_attempts']) && !($modifiedData['max_check_attempts'] >= 1) || isset($modifiedData['normal_check_interval']) && !is_numeric($modifiedData['normal_check_interval']) || isset($modifiedData['normal_check_interval']) && !($modifiedData['normal_check_interval'] >= 1) || isset($modifiedData['retry_interval']) && !is_numeric($modifiedData['retry_interval']) || isset($modifiedData['retry_interval']) && !($modifiedData['retry_interval'] >= 1) || isset($modifiedData['retry_interval']) && !is_numeric($modifiedData['retry_interval']) || isset($modifiedData['first_notification_delay']) && !is_numberic($modifiedData['first_notification_delay']) || isset($modifiedData['freshness_threshold']) && !($modifiedData['freshness_threshold'] >= 0)) { $addError = 1;
function addTemplateInheritance($name) { // First get the template by name $template = NagiosServiceTemplatePeer::getByName($name); if (!$template) { return false; } // Check to see if inheritance already exists $id = $this->getId(); if (!empty($id)) { $c = new Criteria(); $c->add(NagiosServiceTemplateInheritancePeer::SOURCE_TEMPLATE, $this->getId()); $c->add(NagiosServiceTemplateInheritancePeer::TARGET_TEMPLATE, $template->getId()); $relationship = NagiosServiceTemplateInheritancePeer::doSelectOne($c); if ($relationship) { return false; } } // Okay, create new one $relationship = new NagiosServiceTemplateInheritance(); $relationship->setNagiosServiceTemplateRelatedBySourceTemplate($this); $relationship->setNagiosServiceTemplateRelatedByTargetTemplate($template); $relationship->save(); return true; }