From a5ab649f80f088d13d2d09b7a560132e08f39007 Mon Sep 17 00:00:00 2001 From: Alexander Stoll Date: Wed, 24 Jul 2019 10:26:39 +0200 Subject: [PATCH] Expanded upon lib/provider/services to support translated status values in Invoke-IcingaCheckService.psm1 --- lib/plugins/Invoke-IcingaCheckService.psm1 | 4 ++-- lib/provider/enums/Icinga_ProviderEnums.psm1 | 11 +++++++++++ .../services/Icinga_ProviderServices.psm1 | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/lib/plugins/Invoke-IcingaCheckService.psm1 b/lib/plugins/Invoke-IcingaCheckService.psm1 index 71f0a9e..0f62080 100644 --- a/lib/plugins/Invoke-IcingaCheckService.psm1 +++ b/lib/plugins/Invoke-IcingaCheckService.psm1 @@ -13,10 +13,10 @@ function Invoke-IcingaCheckService() $FoundService = Get-IcingaServices -Service $Service; $ServiceName = $FoundService.Values.metadata.ServiceName; $DisplayName = $FoundService.Values.metadata.DisplayName; - # $Status = Get-IcingaServicesStatusTranslation -Status $Status; + $Status = Get-IcingaServicesStatusTranslation -Status $Status; $StatusRaw = $FoundService.Values.configuration.Status.raw; - $IcingaCheck = New-IcingaCheck -Name ([string]::Format('Service "{0} ({1})"', $DisplayName, $ServiceName)) -Value $StatusRaw -ObjectExists $FoundService -ValueTranslation $ProviderEnums.ServiceStatus; + $IcingaCheck = New-IcingaCheck -Name ([string]::Format('Service "{0} ({1})"', $DisplayName, $ServiceName)) -Value $StatusRaw -ObjectExists $FoundService -ValueTranslation $ProviderEnums.ServicesStatus; $IcingaCheck.CritIfNotMatch($Status) | Out-Null; exit (New-IcingaCheckResult -Name "Service $Service" -Check $IcingaCheck -NoPerfData $TRUE -Compile); diff --git a/lib/provider/enums/Icinga_ProviderEnums.psm1 b/lib/provider/enums/Icinga_ProviderEnums.psm1 index 3818cfc..886290c 100644 --- a/lib/provider/enums/Icinga_ProviderEnums.psm1 +++ b/lib/provider/enums/Icinga_ProviderEnums.psm1 @@ -470,6 +470,15 @@ 61= 'VSE'; 62= 'TPF'; } + +<################################################################################################## +################# /lib/provider/Services ########################################################### +##################################################################################################> + +[hashtable]$ServiceStatus = @{ + 'Stopped' = 1; + 'Running' = 4; +} [hashtable]$ProviderEnums = @{ #/lib/provider/bios @@ -493,6 +502,8 @@ WindowsOSProductSuite = $WindowsOSProductSuite; WindowsProductType = $WindowsProductType; WindowsOSType = $WindowsOSType; + #/lib/provider/services + ServiceStatus = $ServiceStatus; } Export-ModuleMember -Variable @('ProviderEnums'); \ No newline at end of file diff --git a/lib/provider/services/Icinga_ProviderServices.psm1 b/lib/provider/services/Icinga_ProviderServices.psm1 index 9dfc1cb..a2f71ab 100644 --- a/lib/provider/services/Icinga_ProviderServices.psm1 +++ b/lib/provider/services/Icinga_ProviderServices.psm1 @@ -62,4 +62,19 @@ function Get-IcingaServices() ); } return $ServiceData; +} + +function Get-IcingaServicesStatusTranslation() +{ + param ( + $Status + ) + + if ($Status -match "^\d+$") { + return $Status + } else { + $Status = $ProviderEnums.ServiceStatus.($Status); + } + + return $Status; } \ No newline at end of file