monitoring/commands: Move toggle instance feature commands into a single command

refs #6593
This commit is contained in:
Eric Lippmann 2014-09-11 17:10:20 +02:00
parent 5757a6f34b
commit 1247fdcad4
11 changed files with 123 additions and 252 deletions

View File

@ -1,22 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable active host checks on an Icinga instance
*/
class ToggleActiveHostChecks extends ToggleFeature
{
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
return $this->enable === true ? 'START_EXECUTING_HOST_CHECKS' : 'STOP_EXECUTING_HOST_CHECKS';
}
}

View File

@ -1,22 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable active service checks on an Icinga instance
*/
class ToggleActiveServiceChecks extends ToggleFeature
{
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
return $this->enable === true ? 'START_EXECUTING_SVC_CHECKS' : 'STOP_EXECUTING_SVC_CHECKS';
}
}

View File

@ -1,22 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable host and service event handlers on an Icinga instance
*/
class ToggleEventHandlers extends ToggleFeature
{
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
return $this->enable === true ? 'ENABLE_EVENT_HANDLERS' : 'DISABLE_EVENT_HANDLERS';
}
}

View File

@ -1,22 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable host and service flap detection on an Icinga instance
*/
class ToggleFlapDetection extends ToggleFeature
{
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
return $this->enable === true ? 'ENABLE_FLAP_DETECTION' : 'DISABLE_FLAP_DETECTION';
}
}

View File

@ -0,0 +1,123 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\IcingaCommand;
/**
* Enable or disable a feature of an Icinga instance
*/
class ToggleInstanceFeatureCommand extends IcingaCommand
{
/**
* Feature for enabling or disabling active host checks on an Icinga instance
*/
const FEATURE_ACTIVE_HOST_CHECKS = 'active_host_checks_enabled';
/**
* Feature for enabling or disabling active service checks on an Icinga instance
*/
const FEATURE_ACTIVE_SERVICE_CHECKS = 'active_service_checks_enabled';
/**
* Feature for enabling or disabling host and service event handlers on an Icinga instance
*/
const FEATURE_EVENT_HANDLERS = 'event_handlers_enabled';
/**
* Feature for enabling or disabling host and service flap detection on an Icinga instance
*/
const FEATURE_FLAP_DETECTION = 'flap_detection_enabled';
/**
* Feature for enabling or disabling host and service notifications on an Icinga instance
*/
const FEATURE_NOTIFICATIONS = 'notifications_enabled';
/**
* Feature for enabling or disabling processing of host checks via the OCHP command on an Icinga instance
*/
const FEATURE_HOST_OBSESSING = 'obsess_over_hosts';
/**
* Feature for enabling or disabling processing of service checks via the OCHP command on an Icinga instance
*/
const FEATURE_SERVICE_OBSESSING = 'obsess_over_services';
/**
* Feature for enabling or disabling passive host checks on an Icinga instance
*/
const FEATURE_PASSIVE_HOST_CHECKS = 'passive_host_checks_enabled';
/**
* Feature for enabling or disabling passive service checks on an Icinga instance
*/
const FEATURE_PASSIVE_SERVICE_CHECKS = 'passive_service_checks_enabled';
/**
* Feature for enabling or disabling the processing of host and service performance data on an Icinga instance
*/
const FEATURE_PERFORMANCE_DATA = 'process_performance_data';
/**
* Feature that is to be enabled or disabled
*
* @var string
*/
protected $feature;
/**
* Whether the feature should be enabled or disabled
*
* @var bool
*/
protected $enabled;
/**
* Set the feature that is to be enabled or disabled
*
* @param string $feature
*
* @return $this
*/
public function setFeature($feature)
{
$this->feature = (string) $feature;
return $this;
}
/**
* Get the feature that is to be enabled or disabled
*
* @return string
*/
public function getFeature()
{
return $this->feature;
}
/**
* Set whether the feature should be enabled or disabled
*
* @param bool $enabled
*
* @return $this
*/
public function setEnabled($enabled = true)
{
$this->enabled = (bool) $enabled;
return $this;
}
/**
* Get whether the feature should be enabled or disabled
*
* @return bool
*/
public function getEnabled()
{
return $this->enabled;
}
}

View File

@ -1,54 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable host and service notifications on an Icinga instance
*/
class ToggleNotifications extends ToggleFeature
{
/**
* The time when notifications should be re-enabled after disabling
*
* @var int|null Unix timestamp
*/
protected $expireTime;
/**
* Disable notifications with optional expire time
*
* @param int|null $expireTime The Unix timestamp when notifications should be re-enabled after disabling
*
* @return $this
*/
public function disable($expireTime = null)
{
$this->expireTime = $expireTime !== null ? (int) $expireTime : null;
return parent::disable();
}
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
if ($this->enable === true) {
return 'ENABLE_NOTIFICATIONS';
}
if ($this->expireTime !== null) {
return sprintf(
'%s;%u;%u',
'DISABLE_NOTIFICATIONS_EXPIRE_TIME',
time(), // Schedule time. According to the Icinga documentation schedule time has no effect currently
// and should be set to the current timestamp.
$this->expireTime
);
}
return 'DISABLE_NOTIFICATIONS';
}
}

View File

@ -1,22 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable processing of host checks via the OCHP command on an Icinga instance
*/
class ToggleObsessingOverHostChecks extends ToggleFeature
{
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
return $this->enable === true ? 'START_OBSESSING_OVER_HOST_CHECKS' : 'STOP_OBSESSING_OVER_HOST_CHECKS';
}
}

View File

@ -1,22 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable processing of service checks via the OCHP command on an Icinga instance
*/
class ToggleObsessingOverServiceChecks extends ToggleFeature
{
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
return $this->enable === true ? 'START_OBSESSING_OVER_SVC_CHECKS' : 'STOP_OBSESSING_OVER_SVC_CHECKS';
}
}

View File

@ -1,22 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable passive host checks on an Icinga instance
*/
class TogglePassiveHostChecks extends ToggleFeature
{
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
return $this->enable === true ? 'ENABLE_PASSIVE_HOST_CHECKS' : 'DISABLE_PASSIVE_HOST_CHECKS';
}
}

View File

@ -1,22 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable passive service checks on an Icinga instance
*/
class TogglePassiveServiceChecks extends ToggleFeature
{
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
return $this->enable === true ? 'ENABLE_PASSIVE_SVC_CHECKS' : 'DISABLE_PASSIVE_SVC_CHECKS';
}
}

View File

@ -1,22 +0,0 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Icinga\Module\Monitoring\Command\Instance;
use Icinga\Module\Monitoring\Command\Common\ToggleFeature;
/**
* Enable/disable the processing of host and service performance data on an Icinga instance
*/
class TogglePerformanceData extends ToggleFeature
{
/**
* (non-PHPDoc)
* @see \Icinga\Module\Monitoring\Command\IcingaCommand::getCommandString() For the method documentation.
*/
public function getCommandString()
{
return $this->enable === true ? 'ENABLE_PERFORMANCE_DATA' : 'DISABLE_PERFORMANCE_DATA';
}
}