mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2025-12-20 23:00:35 -05:00
Adds support to ignore empty check packages
This commit is contained in:
parent
184b3cd28e
commit
082fc18555
3 changed files with 47 additions and 39 deletions
|
|
@ -11,6 +11,10 @@ Released closed milestones can be found on [GitHub](https://github.com/Icinga/ic
|
|||
|
||||
[Issue and PRs](https://github.com/Icinga/icinga-powershell-framework/milestone/10?closed=1)
|
||||
|
||||
### Enhancements
|
||||
|
||||
* [#136](https://github.com/Icinga/icinga-powershell-framework/pull/136) Adds support to ignore empty check packages and return `Ok` instead of `Unknown` if `-IgnoreEmptyPackage` is set on `New-IcingaCheckPackage`
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* [#127](https://github.com/Icinga/icinga-powershell-framework/issues/127) Fixes wrong error message on failed MSSQL connection due to database not reachable by using `-IntegratedSecurity`
|
||||
|
|
|
|||
|
|
@ -10,25 +10,24 @@ The `IcingaCheckPackage` is the first step to take to write more advanced checks
|
|||
|
||||
It will be used like in this example:
|
||||
|
||||
|
||||
```powershell
|
||||
$IcingaPackage = New-IcingaCheckPackage -Name 'My Package' -OperatorAnd;
|
||||
```
|
||||
|
||||
## Arguments
|
||||
|
||||
| Argument | Input | Mandatory | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| Name | String | * | The unique name of each package within a plugin. Will be displayed in the check output. |
|
||||
| OperatorAnd | Switch | | Every added check/package requires to return Ok for this package to be Ok |
|
||||
| OperatorOr | Switch | | One added check/package requires to return Ok for this package to be Ok |
|
||||
| OperatorNone | Switch | | None of added check/package has to return Ok for this package to be Ok |
|
||||
| OperatorMin | Int | | Minimum of `n` added checks/packages requires to return Ok for this package to be Ok |
|
||||
| OperatorMax | Int | | Maximum of `n` added checks/packages requires to return Ok for this package to be Ok |
|
||||
| Checks | Array | | Array of checks to be added to the check package |
|
||||
| Verbose | int | | Defines the level of output detail from 0 lowest to 3 highest detail |
|
||||
| Hidden | Switch | | If set, the check package doesn't generate output |
|
||||
|
||||
| Argument | Input | Mandatory | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| Name | String | * | The unique name of each package within a plugin. Will be displayed in the check output. |
|
||||
| OperatorAnd | Switch | | Every added check/package requires to return Ok for this package to be Ok |
|
||||
| OperatorOr | Switch | | One added check/package requires to return Ok for this package to be Ok |
|
||||
| OperatorNone | Switch | | None of added check/package has to return Ok for this package to be Ok |
|
||||
| OperatorMin | Int | | Minimum of `n` added checks/packages requires to return Ok for this package to be Ok |
|
||||
| OperatorMax | Int | | Maximum of `n` added checks/packages requires to return Ok for this package to be Ok |
|
||||
| Checks | Array | | Array of checks to be added to the check package |
|
||||
| Verbose | int | | Defines the level of output detail from 0 lowest to 3 highest detail |
|
||||
| IgnoreEmptyPackage | Switch | | By default a check package will return `Unknown` in case no checks are assigned. Setting this argument will ignore this and return `Ok` instead
|
||||
| Hidden | Switch | | If set, the check package doesn't generate output |
|
||||
|
||||
### Examples
|
||||
|
||||
|
|
@ -47,4 +46,3 @@ $IcingaPackage = New-IcingaCheckPackage -Name 'My Package' -OperatorAnd;
|
|||
$IcingaPackage.AddCheck($IcingaCheck1);
|
||||
$IcingaPackage.AddCheck($IcingaCheck2);
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -8,33 +8,35 @@ function New-IcingaCheckPackage()
|
|||
[switch]$OperatorAnd,
|
||||
[switch]$OperatorOr,
|
||||
[switch]$OperatorNone,
|
||||
[int]$OperatorMin = -1,
|
||||
[int]$OperatorMax = -1,
|
||||
[array]$Checks = @(),
|
||||
[int]$Verbose = 0,
|
||||
[switch]$Hidden = $FALSE
|
||||
[int]$OperatorMin = -1,
|
||||
[int]$OperatorMax = -1,
|
||||
[array]$Checks = @(),
|
||||
[int]$Verbose = 0,
|
||||
[switch]$IgnoreEmptyPackage = $FALSE,
|
||||
[switch]$Hidden = $FALSE
|
||||
);
|
||||
|
||||
$Check = New-Object -TypeName PSObject;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'name' -Value $Name;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'exitcode' -Value -1;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'verbose' -Value $Verbose;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'hidden' -Value $Hidden;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'checks' -Value $Checks;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opand' -Value $OperatorAnd;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opor' -Value $OperatorOr;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opnone' -Value $OperatorNone;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opmin' -Value $OperatorMin;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opmax' -Value $OperatorMax;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'spacing' -Value 0;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'compiled' -Value $FALSE;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'perfdata' -Value $FALSE;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'checkcommand' -Value '';
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'headermsg' -Value '';
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'checkpackage' -Value $TRUE;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'warningchecks' -Value @();
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'criticalchecks' -Value @();
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'unknownchecks' -Value @();
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'name' -Value $Name;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'exitcode' -Value -1;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'verbose' -Value $Verbose;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'hidden' -Value $Hidden;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'ignoreemptypackage' -Value $IgnoreEmptyPackage;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'checks' -Value $Checks;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opand' -Value $OperatorAnd;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opor' -Value $OperatorOr;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opnone' -Value $OperatorNone;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opmin' -Value $OperatorMin;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'opmax' -Value $OperatorMax;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'spacing' -Value 0;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'compiled' -Value $FALSE;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'perfdata' -Value $FALSE;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'checkcommand' -Value '';
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'headermsg' -Value '';
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'checkpackage' -Value $TRUE;
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'warningchecks' -Value @();
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'criticalchecks' -Value @();
|
||||
$Check | Add-Member -MemberType NoteProperty -Name 'unknownchecks' -Value @();
|
||||
|
||||
$Check | Add-Member -MemberType ScriptMethod -Name 'HasChecks' -Value {
|
||||
if ($this.checks -ne 0) {
|
||||
|
|
@ -154,7 +156,11 @@ function New-IcingaCheckPackage()
|
|||
}
|
||||
}
|
||||
} else {
|
||||
$this.exitcode = $IcingaEnums.IcingaExitCode.Unknown;
|
||||
if ($this.ignoreemptypackage) {
|
||||
$this.exitcode = $IcingaEnums.IcingaExitCode.Ok;
|
||||
} else {
|
||||
$this.exitcode = $IcingaEnums.IcingaExitCode.Unknown;
|
||||
}
|
||||
}
|
||||
|
||||
if ([int]$this.exitcode -eq -1) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue