From 479d964841052e1a085c037aa632bc6c2b8a5c7c Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Sun, 30 Jul 2023 20:54:39 +0200 Subject: [PATCH] BasketSnapshotFieldResolver: provide fixOptional... ...DatalistReference() --- .../Automation/BasketSnapshotFieldResolver.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/library/Director/DirectorObject/Automation/BasketSnapshotFieldResolver.php b/library/Director/DirectorObject/Automation/BasketSnapshotFieldResolver.php index f80b2702..e565f77b 100644 --- a/library/Director/DirectorObject/Automation/BasketSnapshotFieldResolver.php +++ b/library/Director/DirectorObject/Automation/BasketSnapshotFieldResolver.php @@ -4,8 +4,10 @@ namespace Icinga\Module\Director\DirectorObject\Automation; use Icinga\Module\Director\Db; use Icinga\Module\Director\Objects\DirectorDatafield; +use Icinga\Module\Director\Objects\DirectorDatalist; use Icinga\Module\Director\Objects\IcingaObject; use InvalidArgumentException; +use stdClass; class BasketSnapshotFieldResolver { @@ -141,6 +143,22 @@ class BasketSnapshotFieldResolver } } + public static function fixOptionalDatalistReference(stdClass $plain, Db $db) + { + if (isset($plain->settings->datalist_uuid)) { + unset($plain->settings->datalist); + return; + } + if (isset($plain->settings->datalist)) { + // Just try to load the list, final import will fail if missing + // No modification in case we do not find the list, + if ($list = DirectorDatalist::loadOptional($plain->settings->datalist, $db)) { + unset($plain->settings->datalist); + $plain->settings->datalist_id = $list->get('id'); + } + } + } + protected function getNextNewId(): int { return $this->nextNewId++;