Fixes perfdata not written for unprocessed checks

This commit is contained in:
Lord Hepipud 2021-05-29 11:20:10 +02:00
parent 0a28e25ab0
commit 8c48ed570b

View file

@ -80,6 +80,12 @@ function New-IcingaCheck()
) )
} }
$IcingaCheck | Add-Member -MemberType ScriptMethod -Force -Name '__CreateDefaultThresholdObject' -Value {
[hashtable]$ThresholdArguments = $this.__GetBaseThresholdArguments();
$ThresholdObject = Compare-IcingaPluginThresholds @ThresholdArguments;
$this.__SetCheckState($ThresholdObject, $IcingaEnums.IcingaExitCode.Ok);
}
# Override shared function # Override shared function
$IcingaCheck | Add-Member -MemberType ScriptMethod -Force -Name '__SetCheckOutput' -Value { $IcingaCheck | Add-Member -MemberType ScriptMethod -Force -Name '__SetCheckOutput' -Value {
param ($PluginOutput); param ($PluginOutput);
@ -88,15 +94,13 @@ function New-IcingaCheck()
return; return;
} }
if ($null -eq $this.__ThresholdObject) {
$this.__CreateDefaultThresholdObject();
}
$PluginThresholds = ''; $PluginThresholds = '';
$TimeSpan = ''; $TimeSpan = '';
if ($null -ne $this.__ThresholdObject) {
$PluginThresholds = $this.__ThresholdObject.FullMessage; $PluginThresholds = $this.__ThresholdObject.FullMessage;
} elseif ($null -ne $this.Value) {
# In case we simply added a value to a check and not did anything with it, output the raw value properly formatted like anything else
$PluginThresholds = (ConvertTo-IcingaPluginOutputTranslation -Translation $this.Translation -Value (Convert-IcingaPluginValueToString -Unit $this.Unit -Value $this.Value));
}
if ([string]::IsNullOrEmpty($PluginOutput) -eq $FALSE) { if ([string]::IsNullOrEmpty($PluginOutput) -eq $FALSE) {
$PluginThresholds = $PluginOutput; $PluginThresholds = $PluginOutput;