monitoring/commands: Support toggling instance features

refs #6593
This commit is contained in:
Eric Lippmann 2014-09-12 16:43:18 +02:00
parent 4d784c6097
commit 3a9774e6e5
2 changed files with 113 additions and 4 deletions

View File

@ -3,6 +3,7 @@
namespace Icinga\Module\Monitoring\Command\Renderer; namespace Icinga\Module\Monitoring\Command\Renderer;
use Icinga\Module\Monitoring\Command\Instance\DisableNotificationsExpireCommand; use Icinga\Module\Monitoring\Command\Instance\DisableNotificationsExpireCommand;
use Icinga\Module\Monitoring\Command\Instance\ToggleInstanceFeatureCommand;
use Icinga\Module\Monitoring\Command\Object\AcknowledgeProblemCommand; use Icinga\Module\Monitoring\Command\Object\AcknowledgeProblemCommand;
use Icinga\Module\Monitoring\Command\Object\AddCommentCommand; use Icinga\Module\Monitoring\Command\Object\AddCommentCommand;
use Icinga\Module\Monitoring\Command\Object\DeleteCommentCommand; use Icinga\Module\Monitoring\Command\Object\DeleteCommentCommand;
@ -36,8 +37,8 @@ class IcingaCommandFileCommandRenderer implements IcingaCommandRendererInterface
/** /**
* Render a command * Render a command
* *
* @param IcingaCommand $command * @param IcingaCommand $command
* @param int|null $now * @param int|null $now
* *
* @return string * @return string
*/ */
@ -391,9 +392,115 @@ class IcingaCommandFileCommandRenderer implements IcingaCommandRendererInterface
public function renderDisableNotificationsExpire(DisableNotificationsExpireCommand $command) public function renderDisableNotificationsExpire(DisableNotificationsExpireCommand $command)
{ {
return sprintf( return sprintf(
'%s;%u', '%s;%u;%u',
'DISABLE_NOTIFICATIONS_EXPIRE_TIME', 'DISABLE_NOTIFICATIONS_EXPIRE_TIME',
time(),
$command->getExpireTime() $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;
}
} }

View File

@ -5,4 +5,6 @@ namespace Icinga\Module\Monitoring\Command\Renderer;
/** /**
* Interface for Icinga command renderer * Interface for Icinga command renderer
*/ */
interface IcingaCommandRendererInterface {} interface IcingaCommandRendererInterface
{
}