From 045f4ec941fc355a2438b46f07b97cd9cfc28c1d Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Tue, 7 Mar 2023 17:52:59 +0100 Subject: [PATCH] ObjectImporter, BasketDiff: fallback for baskets... ...with UUID, and no matching entry. Will adjust UUIDs for matching objects --- library/Director/Data/ObjectImporter.php | 6 ++++-- library/Director/DirectorObject/Automation/BasketDiff.php | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/library/Director/Data/ObjectImporter.php b/library/Director/Data/ObjectImporter.php index 57ec3953..231ad1c4 100644 --- a/library/Director/Data/ObjectImporter.php +++ b/library/Director/Data/ObjectImporter.php @@ -120,8 +120,10 @@ class ObjectImporter */ protected function loadExistingObject(string $implementation, stdClass $plain): ?DbObject { - if (isset($plain->uuid)) { - return $implementation::loadWithUniqueId(Uuid::fromString($plain->uuid), $this->db); + if (isset($plain->uuid) + && $instance = $implementation::loadWithUniqueId(Uuid::fromString($plain->uuid), $this->db) + ) { + return $instance; } if ($implementation === IcingaService::class) { diff --git a/library/Director/DirectorObject/Automation/BasketDiff.php b/library/Director/DirectorObject/Automation/BasketDiff.php index 8d64e93b..825de27d 100644 --- a/library/Director/DirectorObject/Automation/BasketDiff.php +++ b/library/Director/DirectorObject/Automation/BasketDiff.php @@ -97,8 +97,8 @@ class BasketDiff public function getCurrentInstance(string $type, string $key, ?UuidInterface $uuid = null) { - if ($uuid) { - return BasketSnapshot::instanceByUuid($type, $uuid, $this->db); + if ($uuid && $instance = BasketSnapshot::instanceByUuid($type, $uuid, $this->db)) { + return $instance; } else { return BasketSnapshot::instanceByIdentifier($type, $key, $this->db); }