Skip to content

Commit

Permalink
Merge pull request #208 from Icinga:fix/fix_generic_plugin_threshold_…
Browse files Browse the repository at this point in the history
…conversion

Fix: Plugin threshold conversion and adds % unit handling

Fixes `Convert-IcingaPluginThresholds` which sometimes did not return proper numeric usable values for our internal functions, causing issues on plugin calls. In addition the function now also supports the handling for % units.
  • Loading branch information
LordHepipud authored Feb 23, 2021
2 parents 6f89f19 + e7c33d2 commit 0893325
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
1 change: 1 addition & 0 deletions doc/31-Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Released closed milestones can be found on [GitHub](https://github.com/Icinga/ic
### Bugfixes

* [#206](https://github.com/Icinga/icinga-powershell-framework/pull/206) Fixes background service check daemon for collecting metrics over time which will no longer share data between configured checks which might cause higher CPU load and a possible memory leak
* [#208](https://github.com/Icinga/icinga-powershell-framework/pull/208) Fixes `Convert-IcingaPluginThresholds` which sometimes did not return proper numeric usable values for our internal functions, causing issues on plugin calls. In addition the function now also supports the handling for % units.

## 1.3.1 (2021-02-04)

Expand Down
10 changes: 8 additions & 2 deletions lib/core/tools/Convert-IcingaPluginThresholds.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ function Convert-IcingaPluginThresholds()
$Threshold = $Threshold.Replace(',', '.');

[array]$Content = @();

if ($Threshold.Contains(':')) {
$Content = $Threshold.Split(':');
} else {
Expand Down Expand Up @@ -128,6 +128,10 @@ function Convert-IcingaPluginThresholds()
}
$Value = (ConvertTo-Seconds -Value $ThresholdValue);
$RetValue.Unit = $WorkUnit;
} elseif (($ThresholdValue -Match "(^[\d\.]*) ?(%)")) {
$WorkUnit = '%';
$Value = ([string]$ThresholdValue).Replace(' ', '').Replace('%', '');
$RetValue.Unit = $WorkUnit;
} else {
$Value = $ThresholdValue;
}
Expand All @@ -145,11 +149,13 @@ function Convert-IcingaPluginThresholds()

if ([string]::IsNullOrEmpty($Value) -eq $FALSE -And $Value.Contains(':') -eq $FALSE) {
if ((Test-Numeric $Value)) {
$RetValue.Value = [convert]::ToDecimal($Value);
$RetValue.Value = $Value;
return $RetValue;
}
}

# Always ensure we are using correct digits
$Value = ([string]$Value).Replace(',', '.');
$RetValue.Value = $Value;

return $RetValue;
Expand Down

0 comments on commit 0893325

Please sign in to comment.