getName(); if (! method_exists($this, $renderMethod)) { die($renderMethod); } if ($now === null) { $now = time(); } return sprintf('[%u] %s', $now, $this->escape($this->$renderMethod($command))); } public function renderAddComment(AddCommentCommand $command) { $object = $command->getObject(); if ($command->getObject()->getType() === $command::TYPE_HOST) { /** @var \Icinga\Module\Monitoring\Object\Host $object */ $commandString = sprintf( 'ADD_HOST_COMMENT;%s', $object->getName() ); } else { /** @var \Icinga\Module\Monitoring\Object\Service $object */ $commandString = sprintf( 'ADD_SVC_COMMENT;%s;%s', $object->getHost()->getName(), $object->getName() ); } return sprintf( '%s;%u;%s;%s', $commandString, $command->getPersistent(), $command->getAuthor(), $command->getComment() ); } public function renderSendCustomNotification(SendCustomNotificationCommand $command) { $object = $command->getObject(); if ($command->getObject()->getType() === $command::TYPE_HOST) { /** @var \Icinga\Module\Monitoring\Object\Host $object */ $commandString = sprintf( 'SEND_CUSTOM_HOST_NOTIFICATION;%s', $object->getName() ); } else { /** @var \Icinga\Module\Monitoring\Object\Service $object */ $commandString = sprintf( 'SEND_CUSTOM_SVC_NOTIFICATION;%s;%s', $object->getHost()->getName(), $object->getName() ); } $options = 0; // 0 for no options if ($command->getBroadcast() === true) { $options |= 1; } if ($command->getForced() === true) { $options |= 2; } return sprintf( '%s;%u;%s;%s', $commandString, $options, $command->getAuthor(), $command->getComment() ); } public function renderProcessCheckResult(ProcessCheckResultCommand $command) { $object = $command->getObject(); if ($command->getObject()->getType() === $command::TYPE_HOST) { /** @var \Icinga\Module\Monitoring\Object\Host $object */ $commandString = sprintf( 'PROCESS_HOST_CHECK_RESULT;%s', $object->getName() ); } else { /** @var \Icinga\Module\Monitoring\Object\Service $object */ $commandString = sprintf( 'PROCESS_SERVICE_CHECK_RESULT;%s;%s', $object->getHost()->getName(), $object->getName() ); } $output = $command->getOutput(); if ($command->getPerformanceData() !== null) { $output .= '|' . $command->getPerformanceData(); } return sprintf( '%s;%u;%s', $commandString, $command->getStatus(), $output ); } public function renderScheduleCheck(ScheduleServiceCheckCommand $command) { $object = $command->getObject(); if ($command->getObject()->getType() === $command::TYPE_HOST) { /** @var \Icinga\Module\Monitoring\Object\Host $object */ /** @var \Icinga\Module\Monitoring\Command\Object\ScheduleHostCheckCommand $command */ if ($command->getOfAllServices() === true) { if ($command->getForced() === true) { $commandName = 'SCHEDULE_FORCED_HOST_SVC_CHECKS'; } else { $commandName = 'SCHEDULE_HOST_SVC_CHECKS'; } } else { if ($command->getForced() === true) { $commandName = 'SCHEDULE_FORCED_HOST_CHECK'; } else { $commandName = 'SCHEDULE_HOST_CHECK'; } } $commandString = sprintf( '%s;%s', $commandName, $object->getName() ); } else { /** @var \Icinga\Module\Monitoring\Object\Service $object */ $commandString = sprintf( '%s;%s;%s', $command->getForced() === true ? 'SCHEDULE_FORCED_SVC_CHECK' : 'SCHEDULE_SVC_CHECK', $object->getHost()->getName(), $object->getName() ); } return sprintf( '%s;%u', $commandString, $command->getCheckTime() ); } public function renderScheduleDowntime(ScheduleServiceDowntimeCommand $command) { $object = $command->getObject(); if ($command->getObject()->getType() === $command::TYPE_HOST) { /** @var \Icinga\Module\Monitoring\Object\Host $object */ /** @var \Icinga\Module\Monitoring\Command\Object\ScheduleHostDowntimeCommand $command */ if ($command instanceof PropagateHostDowntimeCommand) { /** @var \Icinga\Module\Monitoring\Command\Object\PropagateHostDowntimeCommand $command */ $commandName = $command->getTriggered() === true ? 'SCHEDULE_AND_PROPAGATE_TRIGGERED_HOST_DOWNTIME' : 'SCHEDULE_AND_PROPAGATE_HOST_DOWNTIME'; } elseif ($command->getForAllServices() === true) { $commandName = 'SCHEDULE_HOST_SVC_DOWNTIME'; } else { $commandName = 'SCHEDULE_HOST_DOWNTIME'; } $commandString = sprintf( '%s;%s', $commandName, $object->getName() ); } else { /** @var \Icinga\Module\Monitoring\Object\Service $object */ $commandString = sprintf( '%s;%s;%s', 'SCHEDULE_SVC_DOWNTIME', $object->getHost()->getName(), $object->getName() ); } return sprintf( '%s;%u;%u;%u;%u;%u;%s;%s', $commandString, $command->getStart(), $command->getEnd(), $command->getFixed(), $command->getTriggerId(), $command->getDuration(), $command->getAuthor(), $command->getComment() ); } public function renderAcknowledgeProblem(AcknowledgeProblemCommand $command) { $object = $command->getObject(); if ($command->getObject()->getType() === $command::TYPE_HOST) { /** @var \Icinga\Module\Monitoring\Object\Host $object */ $commandString = sprintf( '%s;%s', $command->getExpireTime() !== null ? 'ACKNOWLEDGE_HOST_PROBLEM_EXPIRE' : 'ACKNOWLEDGE_HOST_PROBLEM', $object->getName() ); } else { /** @var \Icinga\Module\Monitoring\Object\Service $object */ $commandString = sprintf( '%s;%s;%s', $command->getExpireTime() !== null ? 'ACKNOWLEDGE_SVC_PROBLEM_EXPIRE' : 'ACKNOWLEDGE_SVC_PROBLEM', $object->getHost()->getName(), $object->getName() ); } $commandString = sprintf( '%s;%u;%u;%u', $commandString, $command->getSticky() ? 2 : 0, $command->getNotify(), $command->getPersistent() ); if ($command->getExpireTime() !== null) { $commandString = sprintf( '%s;%u', $commandString, $command->getExpireTime() ); } return sprintf( '%s;%s;%s', $commandString, $command->getAuthor(), $command->getComment() ); } public function renderToggleObjectFeature(ToggleObjectFeatureCommand $command) { if ($command->getEnabled() === true) { $commandPrefix = 'ENABLE'; } else { $commandPrefix = 'DISABLE'; } switch ($command->getFeature()) { case ToggleObjectFeatureCommand::FEATURE_ACTIVE_CHECKS: $commandFormat = sprintf('%s_%%s_CHECK', $commandPrefix); break; case ToggleObjectFeatureCommand::FEATURE_PASSIVE_CHECKS: $commandFormat = sprintf('%s_PASSIVE_%%s_CHECKS', $commandPrefix); break; case ToggleObjectFeatureCommand::FEATURE_OBSESSING: if ($command->getEnabled() === true) { $commandPrefix = 'START'; } else { $commandPrefix = 'STOP'; } $commandFormat = sprintf('%s_OBSESSING_OVER_%%s', $commandPrefix); break; case ToggleObjectFeatureCommand::FEATURE_NOTIFICATIONS: $commandFormat = sprintf('%s_%%s_NOTIFICATIONS', $commandPrefix); break; case ToggleObjectFeatureCommand::FEATURE_EVENT_HANDLER: $commandFormat = sprintf('%s_%%s_EVENT_HANDLER', $commandPrefix); break; case ToggleObjectFeatureCommand::FEATURE_FLAP_DETECTION: $commandFormat = sprintf('%s_%%s_FLAP_DETECTION', $commandPrefix); break; default: throw new InvalidArgumentException($command->getFeature()); } $object = $command->getObject(); if ($object->getType() === ToggleObjectFeatureCommand::TYPE_HOST) { /** @var \Icinga\Module\Monitoring\Object\Host $object */ $commandString = sprintf( $commandFormat . ';%s', 'HOST', $object->getName() ); } else { /** @var \Icinga\Module\Monitoring\Object\Service $object */ $commandString = sprintf( $commandFormat . ';%s;%s', 'SVC', $object->getHost()->getName(), $object->getName() ); } return $commandString; } public function renderDeleteComment(DeleteCommentCommand $command) { return sprintf( '%s;%u', $command->getIsService() ? 'DEL_SVC_COMMENT' : 'DEL_HOST_COMMENT', $command->getCommentId() ); } public function renderDeleteDowntime(DeleteDowntimeCommand $command) { return sprintf( '%s;%u', $command->getIsService() ? 'DEL_SVC_DOWNTIME' : 'DEL_HOST_DOWNTIME', $command->getDowntimeId() ); } public function renderRemoveAcknowledgement(RemoveAcknowledgementCommand $command) { $object = $command->getObject(); if ($command->getObject()->getType() === $command::TYPE_HOST) { /** @var \Icinga\Module\Monitoring\Object\Host $object */ $commandString = sprintf( '%s;%s', 'REMOVE_HOST_ACKNOWLEDGEMENT', $object->getName() ); } else { /** @var \Icinga\Module\Monitoring\Object\Service $object */ $commandString = sprintf( '%s;%s;%s', 'REMOVE_SVC_ACKNOWLEDGEMENT', $object->getHost()->getName(), $object->getName() ); } return $commandString; } public function renderDisableNotificationsExpire(DisableNotificationsExpireCommand $command) { return sprintf( '%s;%u;%u', 'DISABLE_NOTIFICATIONS_EXPIRE_TIME', time(), $command->getExpireTime() ); } public function renderToggleInstanceFeature(ToggleInstanceFeatureCommand $command) { switch ($command->getFeature()) { case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_HOST_CHECKS: case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_SERVICE_CHECKS: case ToggleInstanceFeatureCommand::FEATURE_HOST_OBSESSING: case ToggleInstanceFeatureCommand::FEATURE_SERVICE_OBSESSING: case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_HOST_CHECKS: case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_SERVICE_CHECKS: if ($command->getEnabled() === true) { $commandPrefix = 'START'; } else { $commandPrefix = 'STOP'; } break; case ToggleInstanceFeatureCommand::FEATURE_EVENT_HANDLERS: case ToggleInstanceFeatureCommand::FEATURE_FLAP_DETECTION: case ToggleInstanceFeatureCommand::FEATURE_NOTIFICATIONS: case ToggleInstanceFeatureCommand::FEATURE_PERFORMANCE_DATA: if ($command->getEnabled() === true) { $commandPrefix = 'ENABLE'; } else { $commandPrefix = 'DISABLE'; } break; default: throw new InvalidArgumentException($command->getFeature()); } switch ($command->getFeature()) { case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_HOST_CHECKS: $commandString = sprintf( '%s_%s', $commandPrefix, 'EXECUTING_HOST_CHECKS' ); break; case ToggleInstanceFeatureCommand::FEATURE_ACTIVE_SERVICE_CHECKS: $commandString = sprintf( '%s_%s', $commandPrefix, 'EXECUTING_SVC_CHECKS' ); break; case ToggleInstanceFeatureCommand::FEATURE_EVENT_HANDLERS: $commandString = sprintf( '%s_%s', $commandPrefix, 'EVENT_HANDLERS' ); break; case ToggleInstanceFeatureCommand::FEATURE_FLAP_DETECTION: $commandString = sprintf( '%s_%s', $commandPrefix, 'FLAP_DETECTION' ); break; case ToggleInstanceFeatureCommand::FEATURE_NOTIFICATIONS: $commandString = sprintf( '%s_%s', $commandPrefix, 'NOTIFICATIONS' ); break; case ToggleInstanceFeatureCommand::FEATURE_HOST_OBSESSING: $commandString = sprintf( '%s_%s', $commandPrefix, 'OBSESSING_OVER_HOST_CHECKS' ); break; case ToggleInstanceFeatureCommand::FEATURE_SERVICE_OBSESSING: $commandString = sprintf( '%s_%s', $commandPrefix, 'OBSESSING_OVER_SVC_CHECKS' ); break; case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_HOST_CHECKS: $commandString = sprintf( '%s_%s', $commandPrefix, 'ACCEPTING_PASSIVE_HOST_CHECKS' ); break; case ToggleInstanceFeatureCommand::FEATURE_PASSIVE_SERVICE_CHECKS: $commandString = sprintf( '%s_%s', $commandPrefix, 'ACCEPTING_PASSIVE_SVC_CHECKS' ); break; case ToggleInstanceFeatureCommand::FEATURE_PERFORMANCE_DATA: $commandString = sprintf( '%s_%s', $commandPrefix, 'PERFORMANCE_DATA' ); break; default: throw new InvalidArgumentException($command->getFeature()); } return $commandString; } }