From 7d6b9016e4574f5a17c9bd0045dfc78ca14e1258 Mon Sep 17 00:00:00 2001 From: Lord Hepipud Date: Sat, 5 Oct 2019 22:01:15 +0200 Subject: [PATCH] Added support for check output stored differently on daemon execution --- lib/icinga/exception/Exit-IcingaThrowException.psm1 | 6 ++++-- lib/icinga/plugin/Write-IcingaPluginOutput.psm1 | 4 ++++ lib/icinga/plugin/Write-IcingaPluginPerfData.psm1 | 8 ++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/icinga/exception/Exit-IcingaThrowException.psm1 b/lib/icinga/exception/Exit-IcingaThrowException.psm1 index 2e2ae8f..b7a1304 100644 --- a/lib/icinga/exception/Exit-IcingaThrowException.psm1 +++ b/lib/icinga/exception/Exit-IcingaThrowException.psm1 @@ -70,6 +70,8 @@ function Exit-IcingaThrowException() $ExceptionTypeString ); - Write-Host $OutputMessage; - exit $IcingaEnums.IcingaExitCode.Unknown; + if ($global:IcingaDaemonData.FrameworkRunningAsDaemon -eq $FALSE) { + Write-Host $OutputMessage; + exit $IcingaEnums.IcingaExitCode.Unknown; + } } diff --git a/lib/icinga/plugin/Write-IcingaPluginOutput.psm1 b/lib/icinga/plugin/Write-IcingaPluginOutput.psm1 index e698671..78b396c 100644 --- a/lib/icinga/plugin/Write-IcingaPluginOutput.psm1 +++ b/lib/icinga/plugin/Write-IcingaPluginOutput.psm1 @@ -4,5 +4,9 @@ function Write-IcingaPluginOutput() $Output ); + if ($global:IcingaDaemonData.FrameworkRunningAsDaemon -eq $FALSE) { Write-Host $Output; + } else { + $IcingaThreadContent['Scheduler']['PluginCache'] += $Output; + } } diff --git a/lib/icinga/plugin/Write-IcingaPluginPerfData.psm1 b/lib/icinga/plugin/Write-IcingaPluginPerfData.psm1 index 4cc86cf..bdc474e 100644 --- a/lib/icinga/plugin/Write-IcingaPluginPerfData.psm1 +++ b/lib/icinga/plugin/Write-IcingaPluginPerfData.psm1 @@ -6,8 +6,13 @@ function Write-IcingaPluginPerfData() ); $CheckResultCache = Get-IcingaCacheData -Space 'sc_daemon' -CacheStore 'checkresult' -KeyName $CheckCommand; + + if ($global:IcingaDaemonData.FrameworkRunningAsDaemon -eq $FALSE) { [string]$PerfDataOutput = (Get-IcingaPluginPerfDataContent -PerfData $PerformanceData -CheckResultCache $CheckResultCache); Write-Host ([string]::Format('| {0}', $PerfDataOutput)); + } else { + [void](Get-IcingaPluginPerfDataContent -PerfData $PerformanceData -CheckResultCache $CheckResultCache -AsObject $TRUE); + } } function Get-IcingaPluginPerfDataContent() @@ -40,6 +45,9 @@ function Get-IcingaPluginPerfDataContent() $compiledPerfData = (New-IcingaPerformanceDataEntry $data); + if ($AsObject) { + $global:IcingaThreadContent['Scheduler']['PluginPerfData'] += $compiledPerfData; + } $PerfDataOutput += $compiledPerfData; } }