From 438bd869859abf910fec0b70bebf9925230b5942 Mon Sep 17 00:00:00 2001 From: Lord Hepipud Date: Mon, 24 Jul 2023 17:37:41 +0200 Subject: [PATCH] Improves error/exception handling --- lib/icinga/exception/Exit-IcingaThrowCritical.psm1 | 11 ++++++++--- lib/icinga/exception/Exit-IcingaThrowException.psm1 | 11 +++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/icinga/exception/Exit-IcingaThrowCritical.psm1 b/lib/icinga/exception/Exit-IcingaThrowCritical.psm1 index 33ff956..c3e2fcb 100644 --- a/lib/icinga/exception/Exit-IcingaThrowCritical.psm1 +++ b/lib/icinga/exception/Exit-IcingaThrowCritical.psm1 @@ -25,8 +25,13 @@ function Exit-IcingaThrowCritical() Set-IcingaInternalPluginExitCode -ExitCode $IcingaEnums.IcingaExitCode.Critical; Set-IcingaInternalPluginException -PluginException $OutputMessage; - if ($Global:Icinga.Protected.RunAsDaemon -eq $FALSE -And $Global:Icinga.Protected.JEAContext -eq $FALSE) { - Write-IcingaConsolePlain $OutputMessage; - exit $IcingaEnums.IcingaExitCode.Critical; + if ($Global:Icinga.Protected.RunAsDaemon -eq $TRUE -Or $Global:Icinga.Protected.JEAContext -eq $TRUE) { + throw $OutputMessage; + + # Just in case we don't end - shouldn't happen anyway + return; } + + Write-IcingaConsolePlain $OutputMessage; + exit $IcingaEnums.IcingaExitCode.Critical; } diff --git a/lib/icinga/exception/Exit-IcingaThrowException.psm1 b/lib/icinga/exception/Exit-IcingaThrowException.psm1 index e4e203d..90c81b7 100644 --- a/lib/icinga/exception/Exit-IcingaThrowException.psm1 +++ b/lib/icinga/exception/Exit-IcingaThrowException.psm1 @@ -110,10 +110,13 @@ function Exit-IcingaThrowException() Set-IcingaInternalPluginExitCode -ExitCode $IcingaEnums.IcingaExitCode.Unknown; Set-IcingaInternalPluginException -PluginException $OutputMessage; - if ($Global:Icinga.Protected.RunAsDaemon -eq $FALSE -And $Global:Icinga.Protected.JEAContext -eq $FALSE) { - Write-IcingaConsolePlain $OutputMessage; - exit $IcingaEnums.IcingaExitCode.Unknown; - } else { + if ($Global:Icinga.Protected.RunAsDaemon -eq $TRUE -Or $Global:Icinga.Protected.JEAContext -eq $TRUE) { throw $OutputMessage; + + # Just in case we don't end - shouldn't happen anyway + return; } + + Write-IcingaConsolePlain $OutputMessage; + exit $IcingaEnums.IcingaExitCode.Unknown; }