From f85f893f810290097c327b20b089e8eed428d26f Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Tue, 12 Nov 2024 14:13:55 +0100 Subject: [PATCH] Deprecate old type-specific schedule downtime commands --- doc/05-Upgrading.md | 9 + .../Object/PropagateHostDowntimeCommand.php | 19 +- .../Object/ScheduleHostDowntimeCommand.php | 32 +-- .../Object/ScheduleServiceDowntimeCommand.php | 184 +----------------- 4 files changed, 23 insertions(+), 221 deletions(-) diff --git a/doc/05-Upgrading.md b/doc/05-Upgrading.md index 007a4c1ab..437e74308 100644 --- a/doc/05-Upgrading.md +++ b/doc/05-Upgrading.md @@ -3,6 +3,15 @@ Specific version upgrades are described below. Please note that version upgrades are incremental. If you are upgrading across multiple versions, make sure to follow the steps for each of them. +## Upgrading to Icinga DB Web v1.2 + +**Deprecations** + +The following classes have been deprecated and will be removed in a future release: +* `\Icinga\Module\Icingadb\Command\Object\PropagateHostDowntimeCommand` +* `\Icinga\Module\Icingadb\Command\Object\ScheduleHostDowntimeCommand` +* `\Icinga\Module\Icingadb\Command\Object\ScheduleServiceDowntimeCommand` + ## Upgrading to Icinga DB Web v1.1 **Breaking Changes** diff --git a/library/Icingadb/Command/Object/PropagateHostDowntimeCommand.php b/library/Icingadb/Command/Object/PropagateHostDowntimeCommand.php index 88964fbaa..49b4c7769 100644 --- a/library/Icingadb/Command/Object/PropagateHostDowntimeCommand.php +++ b/library/Icingadb/Command/Object/PropagateHostDowntimeCommand.php @@ -6,15 +6,12 @@ /** * Schedule and propagate host downtime + * + * @deprecated Use {@see ScheduleDowntimeCommand} instead */ class PropagateHostDowntimeCommand extends ScheduleHostDowntimeCommand { - /** - * Whether the downtime for child hosts are all set to be triggered by this' host downtime - * - * @var bool - */ - protected $triggered = false; + protected $childOption = ScheduleDowntimeCommand::SCHEDULE_CHILDREN; /** * Set whether the downtime for child hosts are all set to be triggered by this' host downtime @@ -25,9 +22,11 @@ class PropagateHostDowntimeCommand extends ScheduleHostDowntimeCommand */ public function setTriggered(bool $triggered = true): self { - $this->triggered = $triggered; - - return $this; + return $this->setChildOption( + $triggered + ? ScheduleDowntimeCommand::TRIGGER_CHILDREN + : ScheduleDowntimeCommand::SCHEDULE_CHILDREN + ); } /** @@ -37,6 +36,6 @@ public function setTriggered(bool $triggered = true): self */ public function getTriggered(): bool { - return $this->triggered; + return $this->getChildOption() === ScheduleDowntimeCommand::TRIGGER_CHILDREN; } } diff --git a/library/Icingadb/Command/Object/ScheduleHostDowntimeCommand.php b/library/Icingadb/Command/Object/ScheduleHostDowntimeCommand.php index 0e4d84fad..a0cb64510 100644 --- a/library/Icingadb/Command/Object/ScheduleHostDowntimeCommand.php +++ b/library/Icingadb/Command/Object/ScheduleHostDowntimeCommand.php @@ -6,37 +6,9 @@ /** * Schedule a host downtime + * + * @deprecated Use {@see ScheduleDowntimeCommand} instead */ class ScheduleHostDowntimeCommand extends ScheduleServiceDowntimeCommand { - /** - * Whether to schedule a downtime for all services associated with a particular host - * - * @var bool - */ - protected $forAllServices = false; - - /** - * Set whether to schedule a downtime for all services associated with a particular host - * - * @param bool $forAllServices - * - * @return $this - */ - public function setForAllServices(bool $forAllServices = true): self - { - $this->forAllServices = $forAllServices; - - return $this; - } - - /** - * Get whether to schedule a downtime for all services associated with a particular host - * - * @return bool - */ - public function getForAllServices(): bool - { - return $this->forAllServices; - } } diff --git a/library/Icingadb/Command/Object/ScheduleServiceDowntimeCommand.php b/library/Icingadb/Command/Object/ScheduleServiceDowntimeCommand.php index 3bad28ef2..05a88d5d0 100644 --- a/library/Icingadb/Command/Object/ScheduleServiceDowntimeCommand.php +++ b/library/Icingadb/Command/Object/ScheduleServiceDowntimeCommand.php @@ -6,189 +6,11 @@ /** * Schedule a service downtime + * + * @deprecated Use {@see ScheduleDowntimeCommand} instead */ -class ScheduleServiceDowntimeCommand extends AddCommentCommand +class ScheduleServiceDowntimeCommand extends ScheduleDowntimeCommand { - /** - * Downtime starts at the exact time specified - * - * If `Downtime::$fixed' is set to false, the time between `Downtime::$start' and `Downtime::$end' at which a - * host or service transitions to a problem state determines the time at which the downtime actually starts. - * The downtime will then last for `Downtime::$duration' seconds. - * - * @var int Unix timestamp - */ - protected $start; - - /** - * Downtime ends at the exact time specified - * - * If `Downtime::$fixed' is set to false, the time between `Downtime::$start' and `Downtime::$end' at which a - * host or service transitions to a problem state determines the time at which the downtime actually starts. - * The downtime will then last for `Downtime::$duration' seconds. - * - * @var int Unix timestamp - */ - protected $end; - - /** - * Whether it's a fixed or flexible downtime - * - * @var bool - */ - protected $fixed = true; - - /** - * ID of the downtime which triggers this downtime - * - * The start of this downtime is triggered by the start of the other scheduled host or service downtime. - * - * @var int|null - */ - protected $triggerId; - - /** - * The duration in seconds the downtime must last if it's a flexible downtime - * - * If `Downtime::$fixed' is set to false, the downtime will last for the duration in seconds specified, even - * if the host or service recovers before the downtime expires. - * - * @var int|null - */ - protected $duration; - - /** - * Set the time when the downtime should start - * - * @param int $start Unix timestamp - * - * @return $this - */ - public function setStart(int $start): self - { - $this->start = $start; - - return $this; - } - - /** - * Get the time when the downtime should start - * - * @return int Unix timestamp - */ - public function getStart(): int - { - if ($this->start === null) { - throw new \LogicException( - 'You are accessing an unset property. Please make sure to set it beforehand.' - ); - } - - return $this->start; - } - - /** - * Set the time when the downtime should end - * - * @param int $end Unix timestamp - * - * @return $this - */ - public function setEnd(int $end): self - { - $this->end = $end; - - return $this; - } - - /** - * Get the time when the downtime should end - * - * @return int Unix timestamp - */ - public function getEnd(): int - { - if ($this->start === null) { - throw new \LogicException( - 'You are accessing an unset property. Please make sure to set it beforehand.' - ); - } - - return $this->end; - } - - /** - * Set whether it's a fixed or flexible downtime - * - * @param boolean $fixed - * - * @return $this - */ - public function setFixed(bool $fixed = true): self - { - $this->fixed = $fixed; - - return $this; - } - - /** - * Is the downtime fixed? - * - * @return boolean - */ - public function getFixed(): bool - { - return $this->fixed; - } - - /** - * Set the ID of the downtime which triggers this downtime - * - * @param int $triggerId - * - * @return $this - */ - public function setTriggerId(int $triggerId): self - { - $this->triggerId = $triggerId; - - return $this; - } - - /** - * Get the ID of the downtime which triggers this downtime - * - * @return int|null - */ - public function getTriggerId() - { - return $this->triggerId; - } - - /** - * Set the duration in seconds the downtime must last if it's a flexible downtime - * - * @param int $duration - * - * @return $this - */ - public function setDuration(int $duration): self - { - $this->duration = $duration; - - return $this; - } - - /** - * Get the duration in seconds the downtime must last if it's a flexible downtime - * - * @return int|null - */ - public function getDuration() - { - return $this->duration; - } - public function getName(): string { return 'ScheduleDowntime';