From 8cae29a79a5f737a9073773d1a7a3542cc919d91 Mon Sep 17 00:00:00 2001 From: Crited Date: Wed, 24 Jul 2019 10:26:39 +0200 Subject: [PATCH 1/2] 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 From 802f5b3205731da067fc46cc1a2bb79064fc51db Mon Sep 17 00:00:00 2001 From: Crited Date: Wed, 24 Jul 2019 11:44:33 +0200 Subject: [PATCH 2/2] Splitt into ConvertTo-ServiceStatusCode, to fit project structure, changed Free Space to Used Space --- lib/plugins/Invoke-IcingaCheckService.psm1 | 2 +- ... => Invoke-IcingaCheckUsedPartitionSpace.psm1} | 4 ++-- .../services/ConvertTo-ServiceStatusCode.psm1 | 14 ++++++++++++++ .../services/Icinga_ProviderServices.psm1 | 15 --------------- 4 files changed, 17 insertions(+), 18 deletions(-) rename lib/plugins/{Invoke-IcingaCheckFreePartition.psm1 => Invoke-IcingaCheckUsedPartitionSpace.psm1} (88%) create mode 100644 lib/provider/services/ConvertTo-ServiceStatusCode.psm1 diff --git a/lib/plugins/Invoke-IcingaCheckService.psm1 b/lib/plugins/Invoke-IcingaCheckService.psm1 index 0f62080..2479f5c 100644 --- a/lib/plugins/Invoke-IcingaCheckService.psm1 +++ b/lib/plugins/Invoke-IcingaCheckService.psm1 @@ -13,7 +13,7 @@ function Invoke-IcingaCheckService() $FoundService = Get-IcingaServices -Service $Service; $ServiceName = $FoundService.Values.metadata.ServiceName; $DisplayName = $FoundService.Values.metadata.DisplayName; - $Status = Get-IcingaServicesStatusTranslation -Status $Status; + $Status = ConvertTo-ServiceStatusCode -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.ServicesStatus; diff --git a/lib/plugins/Invoke-IcingaCheckFreePartition.psm1 b/lib/plugins/Invoke-IcingaCheckUsedPartitionSpace.psm1 similarity index 88% rename from lib/plugins/Invoke-IcingaCheckFreePartition.psm1 rename to lib/plugins/Invoke-IcingaCheckUsedPartitionSpace.psm1 index bab94fa..6fa57f8 100644 --- a/lib/plugins/Invoke-IcingaCheckFreePartition.psm1 +++ b/lib/plugins/Invoke-IcingaCheckUsedPartitionSpace.psm1 @@ -1,7 +1,7 @@ Import-IcingaLib core\perfcounter; Import-IcingaLib icinga\plugin; -function Invoke-IcingaCheckFreePartition() +function Invoke-IcingaCheckUsedPartitionSpace() { param( $Warning, @@ -33,7 +33,7 @@ function Invoke-IcingaCheckFreePartition() } } - $IcingaCheck = New-IcingaCheck -Name ([string]::Format('Partition {0}', $Letter)) -Value $DiskFree.([string]::Format($Letter))."Free Space" -Unit '%'; + $IcingaCheck = New-IcingaCheck -Name ([string]::Format('Partition {0}', $Letter)) -Value (100-($DiskFree.([string]::Format($Letter))."Free Space")) -Unit '%'; $IcingaCheck.WarnOutOfRange($Warning).CritOutOfRange($Critical) | Out-Null; $DiskPackage.AddCheck($IcingaCheck); } diff --git a/lib/provider/services/ConvertTo-ServiceStatusCode.psm1 b/lib/provider/services/ConvertTo-ServiceStatusCode.psm1 new file mode 100644 index 0000000..1e4772f --- /dev/null +++ b/lib/provider/services/ConvertTo-ServiceStatusCode.psm1 @@ -0,0 +1,14 @@ +function ConvertTo-ServiceStatusCode() +{ + param ( + $Status + ) + + if ($Status -match "^\d+$") { + return $Status + } else { + $Status = $ProviderEnums.ServiceStatus.($Status); + } + + return $Status; +} \ No newline at end of file diff --git a/lib/provider/services/Icinga_ProviderServices.psm1 b/lib/provider/services/Icinga_ProviderServices.psm1 index a2f71ab..8774868 100644 --- a/lib/provider/services/Icinga_ProviderServices.psm1 +++ b/lib/provider/services/Icinga_ProviderServices.psm1 @@ -63,18 +63,3 @@ 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