mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-06-08 16:00:11 +02:00
Since Icinga 2.11.0 the schedule-downtime API supports the all_services parameter. So far we've always sent a separate request for scheduling service downtimes. As of Icinga 2.13.0, these service downtimes are automatically removed when the host downtimes are removed. Of course, this doesn't work if we don't use the all_services parameter but send a separate request. With this commit we set this parameter if the transport is API and Icinga is equal to or greater than 2.11.0. In addition, if child_options and all_services were previously set, a request was sent per host and service. This is now also only a single request if an API command transport is requested or only API command transports are configured.
76 lines
1.8 KiB
PHP
76 lines
1.8 KiB
PHP
<?php
|
|
/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */
|
|
|
|
namespace Icinga\Module\Monitoring\Command\Object;
|
|
|
|
/**
|
|
* Schedule a host downtime
|
|
*/
|
|
class ScheduleHostDowntimeCommand extends ScheduleServiceDowntimeCommand
|
|
{
|
|
/**
|
|
* (non-PHPDoc)
|
|
* @see \Icinga\Module\Monitoring\Command\Object\ObjectCommand::$allowedObjects For the property documentation.
|
|
*/
|
|
protected $allowedObjects = array(
|
|
self::TYPE_HOST
|
|
);
|
|
|
|
/**
|
|
* Whether to schedule a downtime for all services associated with a particular host
|
|
*
|
|
* @var bool
|
|
*/
|
|
protected $forAllServices = false;
|
|
|
|
/** @var bool Whether to send the all_services API parameter */
|
|
protected $forAllServicesNative;
|
|
|
|
/**
|
|
* Set whether to schedule a downtime for all services associated with a particular host
|
|
*
|
|
* @param bool $forAllServices
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setForAllServices($forAllServices = true)
|
|
{
|
|
$this->forAllServices = (bool) $forAllServices;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get whether to schedule a downtime for all services associated with a particular host
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getForAllServices()
|
|
{
|
|
return $this->forAllServices;
|
|
}
|
|
|
|
/**
|
|
* Get whether to send the all_services API parameter
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function isForAllServicesNative()
|
|
{
|
|
return $this->forAllServicesNative;
|
|
}
|
|
|
|
/**
|
|
* Get whether to send the all_services API parameter
|
|
*
|
|
* @param bool $forAllServicesNative
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setForAllServicesNative($forAllServicesNative = true)
|
|
{
|
|
$this->forAllServicesNative = (bool) $forAllServicesNative;
|
|
|
|
return $this;
|
|
}
|
|
}
|