예제 #1
0
 /**
  * Enter description here...
  *
  * @param NagiosEscalation $escalation
  * @param unknown_type $type
  * @param unknown_type $targetObj
  * @param unknown_type $subObj
  */
 private function _exportEscalation($escalation, $type, $targetObj, $subObj = null)
 {
     global $lilac;
     $fp = $this->getOutputFile();
     if ($type == "host") {
         $host = $targetObj;
         fputs($fp, "define hostescalation {\n");
         fputs($fp, "\thost_name\t" . $host->getName() . "\n");
     } else {
         if ($type == 'service') {
             $host = $subObj;
             $service = $targetObj;
             fputs($fp, "define serviceescalation {\n");
             fputs($fp, "\thost_name\t" . $host->getName() . "\n");
             fputs($fp, "\tservice_description\t" . $service->getDescription() . "\n");
         } else {
             if ($type == "hostgroup") {
                 $hostgroup = $targetObj;
                 fputs($fp, "define hostescalation {\n");
                 fputs($fp, "\thostgroup_name\t" . $hostgroup->getName() . "\n");
             }
         }
     }
     // Get contacts
     $contacts = $escalation->getNagiosEscalationContacts();
     if (count($contacts)) {
         fputs($fp, "\tcontacts\t");
         $first = true;
         foreach ($contacts as $membership) {
             $contact = $membership->getNagiosContact();
             if (!$first) {
                 fputs($fp, ",");
             } else {
                 $first = false;
             }
             fputs($fp, $contact->getName());
         }
         fputs($fp, "\n");
     }
     // Get contact groups
     $contactGroups = $escalation->getNagiosEscalationContactgroups();
     if (count($contactGroups)) {
         fputs($fp, "\tcontact_groups\t");
         $first = true;
         foreach ($contactGroups as $membership) {
             $contactGroup = $membership->getNagiosContactGroup();
             if (!$first) {
                 fputs($fp, ",");
             } else {
                 $first = false;
             }
             fputs($fp, $contactGroup->getName());
         }
         fputs($fp, "\n");
     }
     if ($escalation->getEscalationPeriod()) {
         fputs($fp, "\tescalation_period\t");
         $timePeriod = NagiosTimeperiodPeer::retrieveByPK($escalation->getEscalationPeriod());
         fputs($fp, $timePeriod->getName() . "\n");
     }
     if ($escalation->getFirstNotification()) {
         fputs($fp, "\tfirst_notification\t" . $escalation->getFirstNotification() . "\n");
     }
     if ($escalation->getLastNotification()) {
         fputs($fp, "\tlast_notification\t" . $escalation->getLastNotification() . "\n");
     }
     if ($escalation->getNotificationInterval()) {
         fputs($fp, "\tnotification_interval\t" . $escalation->getNotificationInterval() . "\n");
     }
     if ($escalation->getEscalationOptionsUp() != null || $escalation->getEscalationOptionsDown() != null || $escalation->getEscalationOptionsUnreachable() != null || $escalation->getEscalationOptionsOk() != null || $escalation->getEscalationOptionsWarning() != null || $escalation->getEscalationOptionsUnknown() != null || $escalation->getEscalationOptionsCritical() != null) {
         fputs($fp, "\tescalation_options\t");
         if ($escalation->getEscalationOptionsUp()) {
             fputs($fp, "r");
             if ($escalation->getEscalationOptionsDown() || $escalation->getEscalationOptionsUnreachable() || $escalation->getEscalationOptionsOk() || $escalation->getEscalationOptionsWarning() || $escalation->getEscalationOptionsUnknown() || $escalation->getEscalationOptionsCritical()) {
                 fputs($fp, ",");
             }
         }
         if ($escalation->getEscalationOptionsDown()) {
             fputs($fp, "d");
             if ($escalation->getEscalationOptionsUnreachable() || $escalation->getEscalationOptionsOk() || $escalation->getEscalationOptionsWarning() || $escalation->getEscalationOptionsUnknown() || $escalation->getEscalationOptionsCritical()) {
                 fputs($fp, ",");
             }
         }
         if ($escalation->getEscalationOptionsUnreachable()) {
             fputs($fp, "u");
             if ($escalation->getEscalationOptionsOk() || $escalation->getEscalationOptionsWarning() || $escalation->getEscalationOptionsUnknown() || $escalation->getEscalationOptionsCritical()) {
                 fputs($fp, ",");
             }
         }
         if ($escalation->getEscalationOptionsOk()) {
             fputs($fp, "o");
             if ($escalation->getEscalationOptionsWarning() || $escalation->getEscalationOptionsUnknown() || $escalation->getEscalationOptionsCritical()) {
                 fputs($fp, ",");
             }
         }
         if ($escalation->getEscalationOptionsWarning()) {
             fputs($fp, "w");
             if ($escalation->getEscalationOptionsUnknown() || $escalation->getEscalationOptionsCritical()) {
                 fputs($fp, ",");
             }
         }
         if ($escalation->getEscalationOptionsUnknown()) {
             fputs($fp, "u");
             if ($escalation->getEscalationOptionsCritical()) {
                 fputs($fp, ",");
             }
         }
         if ($escalation->getEscalationOptionsCritical()) {
             fputs($fp, "c");
         }
         fputs($fp, "\n");
     }
     fputs($fp, "}\n");
     fputs($fp, "\n");
 }