mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2025-12-21 07:10:15 -05:00
Added support to check if objects exist on icinga checks
This commit is contained in:
parent
521ed5eb09
commit
d3862eccdb
1 changed files with 29 additions and 19 deletions
|
|
@ -9,29 +9,31 @@ function New-IcingaCheck()
|
||||||
$Unit = $null,
|
$Unit = $null,
|
||||||
[string]$Minimum = '',
|
[string]$Minimum = '',
|
||||||
[string]$Maximum = '',
|
[string]$Maximum = '',
|
||||||
|
$ObjectExists = -1,
|
||||||
[switch]$NoPerfData
|
[switch]$NoPerfData
|
||||||
);
|
);
|
||||||
|
|
||||||
$Check = New-Object -TypeName PSObject;
|
$Check = New-Object -TypeName PSObject;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'name' -value $Name;
|
$Check | Add-Member -membertype NoteProperty -name 'name' -value $Name;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'verbose' -value 0;
|
$Check | Add-Member -membertype NoteProperty -name 'verbose' -value 0;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'messages' -value @();
|
$Check | Add-Member -membertype NoteProperty -name 'messages' -value @();
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'oks' -value @();
|
$Check | Add-Member -membertype NoteProperty -name 'oks' -value @();
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'warnings' -value @();
|
$Check | Add-Member -membertype NoteProperty -name 'warnings' -value @();
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'criticals' -value @();
|
$Check | Add-Member -membertype NoteProperty -name 'criticals' -value @();
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'unknowns' -value @();
|
$Check | Add-Member -membertype NoteProperty -name 'unknowns' -value @();
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'value' -value $Value;
|
$Check | Add-Member -membertype NoteProperty -name 'value' -value $Value;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'exitcode' -value -1;
|
$Check | Add-Member -membertype NoteProperty -name 'exitcode' -value -1;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'unit' -value $Unit;
|
$Check | Add-Member -membertype NoteProperty -name 'unit' -value $Unit;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'spacing' -value 0;
|
$Check | Add-Member -membertype NoteProperty -name 'spacing' -value 0;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'compiled' -value $FALSE;
|
$Check | Add-Member -membertype NoteProperty -name 'compiled' -value $FALSE;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'perfdata' -value (-Not $NoPerfData);
|
$Check | Add-Member -membertype NoteProperty -name 'perfdata' -value (-Not $NoPerfData);
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'warning' -value '';
|
$Check | Add-Member -membertype NoteProperty -name 'warning' -value '';
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'critical' -value '';
|
$Check | Add-Member -membertype NoteProperty -name 'critical' -value '';
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'minimum' -value $Minimum;
|
$Check | Add-Member -membertype NoteProperty -name 'minimum' -value $Minimum;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'maximum' -value $Maximum;
|
$Check | Add-Member -membertype NoteProperty -name 'maximum' -value $Maximum;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'checks' -value $null;
|
$Check | Add-Member -membertype NoteProperty -name 'objectexists' -value $ObjectExists;
|
||||||
$Check | Add-Member -membertype NoteProperty -name 'completed' -value $FALSE;
|
$Check | Add-Member -membertype NoteProperty -name 'checks' -value $null;
|
||||||
|
$Check | Add-Member -membertype NoteProperty -name 'completed' -value $FALSE;
|
||||||
|
|
||||||
$Check | Add-Member -membertype ScriptMethod -name 'AddSpacing' -value {
|
$Check | Add-Member -membertype ScriptMethod -name 'AddSpacing' -value {
|
||||||
$this.spacing += 1;
|
$this.spacing += 1;
|
||||||
|
|
@ -404,6 +406,14 @@ function New-IcingaCheck()
|
||||||
$Check | Add-Member -membertype ScriptMethod -name 'AddInternalCheckMessage' -value {
|
$Check | Add-Member -membertype ScriptMethod -name 'AddInternalCheckMessage' -value {
|
||||||
param($state, $value, $type);
|
param($state, $value, $type);
|
||||||
|
|
||||||
|
if ($this.objectexists -ne -1 -And $null -eq $this.objectexists) {
|
||||||
|
$this.SetExitCode($IcingaEnums.IcingaExitCode.Unknown);
|
||||||
|
$this.AddMessage([string]::Format(
|
||||||
|
'{0} does not exist', $this.name
|
||||||
|
), $IcingaEnums.IcingaExitCode.Unknown);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$this.SetExitCode($state);
|
$this.SetExitCode($state);
|
||||||
$this.AddMessage([string]::Format(
|
$this.AddMessage([string]::Format(
|
||||||
'{0} {1}{4} is {2} {3}{4}', $this.name, $this.value, $type, $value, $this.unit
|
'{0} {1}{4} is {2} {3}{4}', $this.name, $this.value, $type, $value, $this.unit
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue