From 41787d91bfe2f1a51e796ce3c8cea9a2a5faa058 Mon Sep 17 00:00:00 2001 From: Sukhwinder Dhillon Date: Mon, 25 Mar 2024 14:20:04 +0100 Subject: [PATCH] Macro: Don't break ui if undefined macro given $object can be an instance of stdClass and cannot call getName(). The name must then be retrieved manually. --- .../monitoring/library/Monitoring/Object/Macro.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/monitoring/library/Monitoring/Object/Macro.php b/modules/monitoring/library/Monitoring/Object/Macro.php index 18a18558b..eed52b59b 100644 --- a/modules/monitoring/library/Monitoring/Object/Macro.php +++ b/modules/monitoring/library/Monitoring/Object/Macro.php @@ -69,9 +69,17 @@ class Macro try { $value = $object->$macro; } catch (Exception $e) { - $objectName = $object->getName(); - if ($object instanceof Service) { - $objectName = $object->getHost()->getName() . '!' . $objectName; + if ($object instanceof MonitoredObject) { + $objectName = $object instanceof Service + ? $object->getHost()->getName() . '!' . $object->getName() + : $object->getName(); + } else { + $host = 'host_name'; + $service = 'service_description'; + + $objectName = isset($object->$service) + ? $object->$service . '!' . $object->$host + : $object->$host; } $value = null;