Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package monitoring-plugins-nwc_health for 
openSUSE:Factory checked in at 2021-03-05 13:49:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/monitoring-plugins-nwc_health (Old)
 and      /work/SRC/openSUSE:Factory/.monitoring-plugins-nwc_health.new.2378 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "monitoring-plugins-nwc_health"

Fri Mar  5 13:49:15 2021 rev:10 rq:876952 version:8.3.1.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/monitoring-plugins-nwc_health/monitoring-plugins-nwc_health.changes
      2021-01-19 16:04:09.523557513 +0100
+++ 
/work/SRC/openSUSE:Factory/.monitoring-plugins-nwc_health.new.2378/monitoring-plugins-nwc_health.changes
    2021-03-05 13:51:31.543966826 +0100
@@ -1,0 +2,20 @@
+Wed Mar  3 07:31:25 UTC 2021 - Martin Hauke <mar...@gmx.de>
+
+- Update to version 8.3.1.1
+  * bugfix in interface-stack-status (triggered when --name did
+    not match)
+
+-------------------------------------------------------------------
+Sat Feb 13 13:52:40 UTC 2021 - Martin Hauke <mar...@gmx.de>
+
+- Update to version 8.3.1
+  * add mode license-status for cisco
+  * split Bluecat in AddressManager and DnsDhcpServer
+  * do not use cpmCPUMemoryHCCommitted, except if you want mem
+    usage > 100%
+  * check the memory of all members in a cisco stack only if
+    there are > 1 members
+  * check the memory of all members in a cisco stack
+  * bugfix in Bluecat jvm
+
+-------------------------------------------------------------------

Old:
----
  check_nwc_health-8.1.tar.gz

New:
----
  check_nwc_health-8.3.1.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ monitoring-plugins-nwc_health.spec ++++++
--- /var/tmp/diff_new_pack.QX5xSa/_old  2021-03-05 13:51:32.059967322 +0100
+++ /var/tmp/diff_new_pack.QX5xSa/_new  2021-03-05 13:51:32.063967326 +0100
@@ -19,7 +19,7 @@
 
 %define         realname check_nwc_health
 Name:           monitoring-plugins-nwc_health
-Version:        8.1
+Version:        8.3.1.1
 Release:        0
 Summary:        This plugin checks the health of network components and 
interfaces
 # https://github.com/lausser/check_nwc_health

++++++ check_nwc_health-8.1.tar.gz -> check_nwc_health-8.3.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/check_nwc_health-8.1/ChangeLog 
new/check_nwc_health-8.3.1.1/ChangeLog
--- old/check_nwc_health-8.1/ChangeLog  2021-01-18 21:21:42.786666600 +0100
+++ new/check_nwc_health-8.3.1.1/ChangeLog      2021-03-02 21:19:13.227187600 
+0100
@@ -1,3 +1,17 @@
+* 2021-03-02 8.3.1.1
+  bugfix in interface-stack-status (triggered when --name did not match)
+* 2021-02-12 8.3.1
+  add mode license-status for cisco
+* 2021-02-08 8.3
+  split Bluecat in AddressManager and DnsDhcpServer
+* 2021-01-28 8.2.0.2
+  do not use cpmCPUMemoryHCCommitted, except if you want mem usage > 100%
+* 2021-01-27 8.2.0.1
+  check the memory of all members in a cisco stack only if there are > 1 
members
+* 2021-01-22 8.2
+  check the memory of all members in a cisco stack
+* 2021-01-18 8.1.0.1
+  bugfix in Bluecat jvm
 * 2021-01-18 8.1
   add Bluecat Address Manager
 * 2021-01-13 8.0.0.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOPROCESSMIB.pm
 
new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOPROCESSMIB.pm
--- 
old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOPROCESSMIB.pm
       2021-01-18 21:21:43.294172400 +0100
+++ 
new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOPROCESSMIB.pm
   2021-03-02 21:19:13.760167300 +0100
@@ -5,7 +5,13 @@
   name => 'CISCO-PROCESS-MIB',
 };
 
+$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'CISCO-PROCESS-MIB'} =
+    '1.3.6.1.4.1.9.9.109';
+
 $Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'CISCO-PROCESS-MIB'} 
= {
+  'ciscoProcessMIB' => '1.3.6.1.4.1.9.9.109',
+  'ciscoProcessMIBObjects' => '1.3.6.1.4.1.9.9.109.1',
+  'cpmCPU' => '1.3.6.1.4.1.9.9.109.1.1',
   'cpmCPUTotalTable' => '1.3.6.1.4.1.9.9.109.1.1.1',
   'cpmCPUTotalEntry' => '1.3.6.1.4.1.9.9.109.1.1.1.1',
   'cpmCPUTotalIndex' => '1.3.6.1.4.1.9.9.109.1.1.1.1.1',
@@ -17,11 +23,205 @@
   'cpmCPUTotal1minRev' => '1.3.6.1.4.1.9.9.109.1.1.1.1.7',
   'cpmCPUTotal5minRev' => '1.3.6.1.4.1.9.9.109.1.1.1.1.8',
   'cpmCPUMonInterval' => '1.3.6.1.4.1.9.9.109.1.1.1.1.9',
-  'cpmCPUTotalMonIntervalDefinition' => '1.3.6.1.4.1.9.9.109.1.1.1.1.10',
-  'cpmCPUInterruptMonIntervalDefinition' => '1.3.6.1.4.1.9.9.109.1.1.1.1.11',
+  'cpmCPUTotalMonIntervalValue' => '1.3.6.1.4.1.9.9.109.1.1.1.1.10',
+  'cpmCPUInterruptMonIntervalValue' => '1.3.6.1.4.1.9.9.109.1.1.1.1.11',
+  'cpmCPUMemoryUsed' => '1.3.6.1.4.1.9.9.109.1.1.1.1.12',
+  'cpmCPUMemoryFree' => '1.3.6.1.4.1.9.9.109.1.1.1.1.13',
+  'cpmCPUMemoryKernelReserved' => '1.3.6.1.4.1.9.9.109.1.1.1.1.14',
+  'cpmCPUMemoryLowest' => '1.3.6.1.4.1.9.9.109.1.1.1.1.15',
+  'cpmCPUMemoryUsedOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.16',
+  'cpmCPUMemoryHCUsed' => '1.3.6.1.4.1.9.9.109.1.1.1.1.17',
+  'cpmCPUMemoryFreeOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.18',
+  'cpmCPUMemoryHCFree' => '1.3.6.1.4.1.9.9.109.1.1.1.1.19',
+  'cpmCPUMemoryKernelReservedOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.20',
+  'cpmCPUMemoryHCKernelReserved' => '1.3.6.1.4.1.9.9.109.1.1.1.1.21',
+  'cpmCPUMemoryLowestOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.22',
+  'cpmCPUMemoryHCLowest' => '1.3.6.1.4.1.9.9.109.1.1.1.1.23',
+  'cpmCPULoadAvg1min' => '1.3.6.1.4.1.9.9.109.1.1.1.1.24',
+  'cpmCPULoadAvg5min' => '1.3.6.1.4.1.9.9.109.1.1.1.1.25',
+  'cpmCPULoadAvg15min' => '1.3.6.1.4.1.9.9.109.1.1.1.1.26',
+  'cpmCPUMemoryCommitted' => '1.3.6.1.4.1.9.9.109.1.1.1.1.27',
+  'cpmCPUMemoryCommittedOvrflw' => '1.3.6.1.4.1.9.9.109.1.1.1.1.28',
+  'cpmCPUMemoryHCCommitted' => '1.3.6.1.4.1.9.9.109.1.1.1.1.29',
+  'cpmCoreTable' => '1.3.6.1.4.1.9.9.109.1.1.2',
+  'cpmCoreEntry' => '1.3.6.1.4.1.9.9.109.1.1.2.1',
+  'cpmCoreIndex' => '1.3.6.1.4.1.9.9.109.1.1.2.1.1',
+  'cpmCorePhysicalIndex' => '1.3.6.1.4.1.9.9.109.1.1.2.1.2',
+  'cpmCore5sec' => '1.3.6.1.4.1.9.9.109.1.1.2.1.3',
+  'cpmCore1min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.4',
+  'cpmCore5min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.5',
+  'cpmCoreLoadAvg1min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.6',
+  'cpmCoreLoadAvg5min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.7',
+  'cpmCoreLoadAvg15min' => '1.3.6.1.4.1.9.9.109.1.1.2.1.8',
+  'cpmProcess' => '1.3.6.1.4.1.9.9.109.1.2',
+  'cpmProcessTable' => '1.3.6.1.4.1.9.9.109.1.2.1',
+  'cpmProcessEntry' => '1.3.6.1.4.1.9.9.109.1.2.1.1',
+  'cpmProcessPID' => '1.3.6.1.4.1.9.9.109.1.2.1.1.1',
+  'cpmProcessName' => '1.3.6.1.4.1.9.9.109.1.2.1.1.2',
+  'cpmProcessuSecs' => '1.3.6.1.4.1.9.9.109.1.2.1.1.4',
+  'cpmProcessTimeCreated' => '1.3.6.1.4.1.9.9.109.1.2.1.1.5',
+  'cpmProcessAverageUSecs' => '1.3.6.1.4.1.9.9.109.1.2.1.1.6',
+  'cpmProcessExtTable' => '1.3.6.1.4.1.9.9.109.1.2.2',
+  'cpmProcessExtEntry' => '1.3.6.1.4.1.9.9.109.1.2.2.1',
+  'cpmProcExtMemAllocated' => '1.3.6.1.4.1.9.9.109.1.2.2.1.1',
+  'cpmProcExtMemFreed' => '1.3.6.1.4.1.9.9.109.1.2.2.1.2',
+  'cpmProcExtInvoked' => '1.3.6.1.4.1.9.9.109.1.2.2.1.3',
+  'cpmProcExtRuntime' => '1.3.6.1.4.1.9.9.109.1.2.2.1.4',
+  'cpmProcExtUtil5Sec' => '1.3.6.1.4.1.9.9.109.1.2.2.1.5',
+  'cpmProcExtUtil1Min' => '1.3.6.1.4.1.9.9.109.1.2.2.1.6',
+  'cpmProcExtUtil5Min' => '1.3.6.1.4.1.9.9.109.1.2.2.1.7',
+  'cpmProcExtPriority' => '1.3.6.1.4.1.9.9.109.1.2.2.1.8',
+  'cpmProcExtPriorityDefinition' => 'CISCO-PROCESS-MIB::cpmProcExtPriority',
+  'cpmProcessExtRevTable' => '1.3.6.1.4.1.9.9.109.1.2.3',
+  'cpmProcessExtRevEntry' => '1.3.6.1.4.1.9.9.109.1.2.3.1',
+  'cpmProcExtMemAllocatedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.1',
+  'cpmProcExtMemFreedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.2',
+  'cpmProcExtInvokedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.3',
+  'cpmProcExtRuntimeRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.4',
+  'cpmProcExtUtil5SecRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.5',
+  'cpmProcExtUtil1MinRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.6',
+  'cpmProcExtUtil5MinRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.7',
+  'cpmProcExtPriorityRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.8',
+  'cpmProcExtPriorityRevDefinition' => 
'CISCO-PROCESS-MIB::cpmProcExtPriorityRev',
+  'cpmProcessType' => '1.3.6.1.4.1.9.9.109.1.2.3.1.9',
+  'cpmProcessTypeDefinition' => 'CISCO-PROCESS-MIB::cpmProcessType',
+  'cpmProcessRespawn' => '1.3.6.1.4.1.9.9.109.1.2.3.1.10',
+  'cpmProcessRespawnCount' => '1.3.6.1.4.1.9.9.109.1.2.3.1.11',
+  'cpmProcessRespawnAfterLastPatch' => '1.3.6.1.4.1.9.9.109.1.2.3.1.12',
+  'cpmProcessMemoryCore' => '1.3.6.1.4.1.9.9.109.1.2.3.1.13',
+  'cpmProcessMemoryCoreDefinition' => 
'CISCO-PROCESS-MIB::cpmProcessMemoryCore',
+  'cpmProcessLastRestartUser' => '1.3.6.1.4.1.9.9.109.1.2.3.1.14',
+  'cpmProcessTextSegmentSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.15',
+  'cpmProcessDataSegmentSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.16',
+  'cpmProcessStackSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.17',
+  'cpmProcessDynamicMemorySize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.18',
+  'cpmProcExtMemAllocatedRevOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.19',
+  'cpmProcExtHCMemAllocatedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.20',
+  'cpmProcExtMemFreedRevOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.21',
+  'cpmProcExtHCMemFreedRev' => '1.3.6.1.4.1.9.9.109.1.2.3.1.22',
+  'cpmProcessTextSegmentSizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.23',
+  'cpmProcessHCTextSegmentSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.24',
+  'cpmProcessDataSegmentSizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.25',
+  'cpmProcessHCDataSegmentSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.26',
+  'cpmProcessStackSizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.27',
+  'cpmProcessHCStackSize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.28',
+  'cpmProcessDynamicMemorySizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.2.3.1.29',
+  'cpmProcessHCDynamicMemorySize' => '1.3.6.1.4.1.9.9.109.1.2.3.1.30',
+  'cpmCPUThresholdTable' => '1.3.6.1.4.1.9.9.109.1.2.4',
+  'cpmCPUThresholdEntry' => '1.3.6.1.4.1.9.9.109.1.2.4.1',
+  'cpmCPUThresholdClass' => '1.3.6.1.4.1.9.9.109.1.2.4.1.1',
+  'cpmCPUThresholdClassDefinition' => 
'CISCO-PROCESS-MIB::cpmCPUThresholdClass',
+  'cpmCPURisingThresholdValue' => '1.3.6.1.4.1.9.9.109.1.2.4.1.2',
+  'cpmCPURisingThresholdPeriod' => '1.3.6.1.4.1.9.9.109.1.2.4.1.3',
+  'cpmCPUFallingThresholdValue' => '1.3.6.1.4.1.9.9.109.1.2.4.1.4',
+  'cpmCPUFallingThresholdPeriod' => '1.3.6.1.4.1.9.9.109.1.2.4.1.5',
+  'cpmCPUThresholdEntryStatus' => '1.3.6.1.4.1.9.9.109.1.2.4.1.6',
+  'cpmCPUHistory' => '1.3.6.1.4.1.9.9.109.1.2.5',
+  'cpmCPUHistoryThreshold' => '1.3.6.1.4.1.9.9.109.1.2.5.1',
+  'cpmCPUHistorySize' => '1.3.6.1.4.1.9.9.109.1.2.5.2',
+  'cpmCPUHistoryTable' => '1.3.6.1.4.1.9.9.109.1.2.5.3',
+  'cpmCPUHistoryEntry' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1',
+  'cpmCPUHistoryReportId' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.1',
+  'cpmCPUHistoryReportSize' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.2',
+  'cpmCPUHistoryTotalUtil' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.3',
+  'cpmCPUHistoryInterruptUtil' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.4',
+  'cpmCPUHistoryCreatedTime' => '1.3.6.1.4.1.9.9.109.1.2.5.3.1.5',
+  'cpmCPUProcessHistoryTable' => '1.3.6.1.4.1.9.9.109.1.2.5.4',
+  'cpmCPUProcessHistoryEntry' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1',
+  'cpmCPUProcessHistoryIndex' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.1',
+  'cpmCPUHistoryProcId' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.2',
+  'cpmCPUHistoryProcName' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.3',
+  'cpmCPUHistoryProcCreated' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.4',
+  'cpmCPUHistoryProcUtil' => '1.3.6.1.4.1.9.9.109.1.2.5.4.1.5',
+  'cpmThread' => '1.3.6.1.4.1.9.9.109.1.3',
+  'cpmThreadTable' => '1.3.6.1.4.1.9.9.109.1.3.1',
+  'cpmThreadEntry' => '1.3.6.1.4.1.9.9.109.1.3.1.1',
+  'cpmThreadID' => '1.3.6.1.4.1.9.9.109.1.3.1.1.1',
+  'cpmThreadName' => '1.3.6.1.4.1.9.9.109.1.3.1.1.2',
+  'cpmThreadPriority' => '1.3.6.1.4.1.9.9.109.1.3.1.1.3',
+  'cpmThreadState' => '1.3.6.1.4.1.9.9.109.1.3.1.1.4',
+  'cpmThreadStateDefinition' => 'CISCO-PROCESS-MIB::cpmThreadState',
+  'cpmThreadBlockingProcess' => '1.3.6.1.4.1.9.9.109.1.3.1.1.5',
+  'cpmThreadCpuUtilization' => '1.3.6.1.4.1.9.9.109.1.3.1.1.6',
+  'cpmThreadStackSize' => '1.3.6.1.4.1.9.9.109.1.3.1.1.7',
+  'cpmThreadStackSizeOvrflw' => '1.3.6.1.4.1.9.9.109.1.3.1.1.8',
+  'cpmThreadHCStackSize' => '1.3.6.1.4.1.9.9.109.1.3.1.1.9',
+  'cpmVirtualProcess' => '1.3.6.1.4.1.9.9.109.1.4',
+  'cpmVirtualProcessTable' => '1.3.6.1.4.1.9.9.109.1.4.1',
+  'cpmVirtualProcessEntry' => '1.3.6.1.4.1.9.9.109.1.4.1.1',
+  'cpmVirtualProcessID' => '1.3.6.1.4.1.9.9.109.1.4.1.1.1',
+  'cpmVirtualProcessName' => '1.3.6.1.4.1.9.9.109.1.4.1.1.2',
+  'cpmVirtualProcessUtil5Sec' => '1.3.6.1.4.1.9.9.109.1.4.1.1.3',
+  'cpmVirtualProcessUtil1Min' => '1.3.6.1.4.1.9.9.109.1.4.1.1.4',
+  'cpmVirtualProcessUtil5Min' => '1.3.6.1.4.1.9.9.109.1.4.1.1.5',
+  'cpmVirtualProcessMemAllocated' => '1.3.6.1.4.1.9.9.109.1.4.1.1.6',
+  'cpmVirtualProcessMemFreed' => '1.3.6.1.4.1.9.9.109.1.4.1.1.7',
+  'cpmVirtualProcessInvokeCount' => '1.3.6.1.4.1.9.9.109.1.4.1.1.8',
+  'cpmVirtualProcessRuntime' => '1.3.6.1.4.1.9.9.109.1.4.1.1.9',
+  'cpmVirtualProcessMemAllocatedOvrflw' => '1.3.6.1.4.1.9.9.109.1.4.1.1.10',
+  'cpmVirtualProcessHCMemAllocated' => '1.3.6.1.4.1.9.9.109.1.4.1.1.11',
+  'cpmVirtualProcessMemFreedOvrflw' => '1.3.6.1.4.1.9.9.109.1.4.1.1.12',
+  'cpmVirtualProcessHCMemFreed' => '1.3.6.1.4.1.9.9.109.1.4.1.1.13',
+  'ciscoProcessMIBNotifPrefix' => '1.3.6.1.4.1.9.9.109.2',
+  'ciscoProcessMIBNotifs' => '1.3.6.1.4.1.9.9.109.2.0',
+  'ciscoProcessMIBConformance' => '1.3.6.1.4.1.9.9.109.3',
+  'cpmCompliances' => '1.3.6.1.4.1.9.9.109.3.1',
+  'cpmGroups' => '1.3.6.1.4.1.9.9.109.3.2',
 };
 
-
-1;
-
-__END__
+$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'CISCO-PROCESS-MIB'} = 
{
+  'cpmThreadState' => {
+    '1' => 'other',
+    '2' => 'dead',
+    '3' => 'running',
+    '4' => 'ready',
+    '5' => 'stopped',
+    '6' => 'send',
+    '7' => 'receive',
+    '8' => 'reply',
+    '9' => 'stack',
+    '10' => 'waitpage',
+    '11' => 'sigsuspend',
+    '12' => 'sigwaitinfo',
+    '13' => 'nanosleep',
+    '14' => 'mutex',
+    '15' => 'condvar',
+    '16' => 'join',
+    '17' => 'intr',
+    '18' => 'sem',
+  },
+  'cpmProcExtPriority' => {
+    '1' => 'critical',
+    '2' => 'high',
+    '3' => 'normal',
+    '4' => 'low',
+    '5' => 'notAssigned',
+  },
+  'cpmProcExtPriorityRev' => {
+    '1' => 'critical',
+    '2' => 'high',
+    '3' => 'normal',
+    '4' => 'low',
+    '5' => 'notAssigned',
+  },
+  'cpmProcessType' => {
+    '1' => 'other',
+    '2' => 'posix',
+    '3' => 'ios',
+  },
+  'cpmProcessMemoryCore' => {
+    '1' => 'other',
+    '2' => 'mainmem',
+    '3' => 'mainmemSharedmem',
+    '4' => 'mainmemText',
+    '5' => 'mainmemTextSharedmem',
+    '6' => 'sharedmem',
+    '7' => 'sparse',
+    '8' => 'off',
+  },
+  'cpmCPUThresholdClass' => {
+    '1' => 'total',
+    '2' => 'interrupt',
+    '3' => 'process',
+  },
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm
 
new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm
--- 
old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm
  2021-03-02 21:19:13.819163700 +0100
@@ -0,0 +1,97 @@
+package Monitoring::GLPlugin::SNMP::MibsAndOids::CISCOSMARTLICMIB;
+
+$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'CISCO-SMART-LIC-MIB'} = {
+  url => '',
+  name => 'CISCO-SMART-LIC-MIB',
+};
+
+$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'CISCO-SMART-LIC-MIB'} =
+    '1.3.6.1.4.1.9.9.831';
+
+$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'CISCO-SMART-LIC-MIB'}
 = {
+  'ciscoSmartLicMIB' => '1.3.6.1.4.1.9.9.831',
+  'ciscoSlaMIBObjects' => '1.3.6.1.4.1.9.9.831.0',
+  'ciscoSlaInstanceId' => '1.3.6.1.4.1.9.9.831.0.1',
+  'ciscoSlaSUDIInfo' => '1.3.6.1.4.1.9.9.831.0.2',
+  'ciscoSlaVersion' => '1.3.6.1.4.1.9.9.831.0.3',
+  'ciscoSlaEnabled' => '1.3.6.1.4.1.9.9.831.0.4',
+  'ciscoSlaEnabledDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue',
+  'ciscoSlaEntitlementInfo' => '1.3.6.1.4.1.9.9.831.0.5',
+  'ciscoSlaEntitlementInfoTable' => '1.3.6.1.4.1.9.9.831.0.5.1',
+  'ciscoSlaEntitlementInfoEntry' => '1.3.6.1.4.1.9.9.831.0.5.1.1',
+  'ciscoSlaEntitlementInfoIndex' => '1.3.6.1.4.1.9.9.831.0.5.1.1.1',
+  'ciscoSlaEntitlementRequestCount' => '1.3.6.1.4.1.9.9.831.0.5.1.1.2',
+  'ciscoSlaEntitlementTag' => '1.3.6.1.4.1.9.9.831.0.5.1.1.3',
+  'ciscoSlaEntitlementVersion' => '1.3.6.1.4.1.9.9.831.0.5.1.1.4',
+  'ciscoSlaEntitlementEnforceMode' => '1.3.6.1.4.1.9.9.831.0.5.1.1.5',
+  'ciscoSlaEntitlementEnforceModeDefinition' => 
'CISCO-SMART-LIC-MIB::ciscoSlaEntitlementEnforceMode',
+  'ciscoSlaEntitlementDescription' => '1.3.6.1.4.1.9.9.831.0.5.1.1.6',
+  'ciscoSlaEntitlementFeatureName' => '1.3.6.1.4.1.9.9.831.0.5.1.1.7',
+  'ciscoSlaRegistrationStatusInfo' => '1.3.6.1.4.1.9.9.831.0.6',
+  'ciscoSlaRegistrationStatusInfoTable' => '1.3.6.1.4.1.9.9.831.0.6',
+  'ciscoSlaRegistrationStatusInfoEntry' => '1.3.6.1.4.1.9.9.831.0.6',
+  'ciscoSlaRegistrationStatus' => '1.3.6.1.4.1.9.9.831.0.6.1',
+  'ciscoSlaRegistrationStatusDefinition' => 
'CISCO-SMART-LIC-MIB::ciscoSlaRegistrationStatus',
+  'ciscoSlaVirtualAccount' => '1.3.6.1.4.1.9.9.831.0.6.2',
+  'ciscoSlaNextCertificateExpireTime' => '1.3.6.1.4.1.9.9.831.0.6.3',
+  'ciscoSlaEnterpriseAccountName' => '1.3.6.1.4.1.9.9.831.0.6.4',
+  'ciscoSlaRegisterTime' => '1.3.6.1.4.1.9.9.831.0.6.5',
+  'ciscoSlaRegisterInitTime' => '1.3.6.1.4.1.9.9.831.0.6.5.1',
+  'ciscoSlaRegisterSuccess' => '1.3.6.1.4.1.9.9.831.0.6.5.2',
+  'ciscoSlaRegisterSuccessDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue',
+  'ciscoSlaRegisterFailureReason' => '1.3.6.1.4.1.9.9.831.0.6.5.3',
+  'ciscoSlaRegisterNextRetryTime' => '1.3.6.1.4.1.9.9.831.0.6.5.4',
+  'ciscoSlaRenewTime' => '1.3.6.1.4.1.9.9.831.0.6.6',
+  'ciscoSlaRenewInitTime' => '1.3.6.1.4.1.9.9.831.0.6.6.1',
+  'ciscoSlaRenewSuccess' => '1.3.6.1.4.1.9.9.831.0.6.6.2',
+  'ciscoSlaRenewSuccessDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue',
+  'ciscoSlaRenewFailureReason' => '1.3.6.1.4.1.9.9.831.0.6.6.3',
+  'ciscoSlaRenewNextRetryTime' => '1.3.6.1.4.1.9.9.831.0.6.6.4',
+  'ciscoSlaAuthorizationInfo' => '1.3.6.1.4.1.9.9.831.0.7',
+  'ciscoSlaAuthorizationInfoTable' => '1.3.6.1.4.1.9.9.831.0.7',
+  'ciscoSlaAuthorizationInfoEntry' => '1.3.6.1.4.1.9.9.831.0.7',
+  'ciscoSlaAuthExpireTime' => '1.3.6.1.4.1.9.9.831.0.7.1',
+  'ciscoSlaAuthComplianceStatus' => '1.3.6.1.4.1.9.9.831.0.7.2',
+  'ciscoSlaAuthOOCStartTime' => '1.3.6.1.4.1.9.9.831.0.7.3',
+  'ciscoSlaAuthEvalPeriod' => '1.3.6.1.4.1.9.9.831.0.7.4',
+  'ciscoSlaAuthEvalPeriodInUse' => '1.3.6.1.4.1.9.9.831.0.7.4.1',
+  'ciscoSlaAuthEvalPeriodInUseDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue',
+  'ciscoSlaAuthEvalExpiredTime' => '1.3.6.1.4.1.9.9.831.0.7.4.2',
+  'ciscoSlaAuthEvalPeriodLeft' => '1.3.6.1.4.1.9.9.831.0.7.4.3',
+  'ciscoSlaAuthRenewTime' => '1.3.6.1.4.1.9.9.831.0.7.5',
+  'ciscoSlaAuthRenewInitTime' => '1.3.6.1.4.1.9.9.831.0.7.5.1',
+  'ciscoSlaAuthRenewSuccess' => '1.3.6.1.4.1.9.9.831.0.7.5.2',
+  'ciscoSlaAuthRenewSuccessDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue',
+  'ciscoSlaAuthRenewFailureReason' => '1.3.6.1.4.1.9.9.831.0.7.5.3',
+  'ciscoSlaAuthRenewNextRetryTime' => '1.3.6.1.4.1.9.9.831.0.7.5.4',
+  'ciscoSlaNotifObjects' => '1.3.6.1.4.1.9.9.831.0.8',
+  'ciscoSlaGlobalNotifEnable' => '1.3.6.1.4.1.9.9.831.0.8.1',
+  'ciscoSlaEntitlementNotifEnable' => '1.3.6.1.4.1.9.9.831.0.8.2',
+  'ciscoSlaMIBNotifs' => '1.3.6.1.4.1.9.9.831.1',
+  'ciscoSlaMIBConform' => '1.3.6.1.4.1.9.9.831.2',
+  'ciscoSlaMIBCompliances' => '1.3.6.1.4.1.9.9.831.2.1',
+  'ciscoSlaMIBGroups' => '1.3.6.1.4.1.9.9.831.2.2',
+};
+
+$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'CISCO-SMART-LIC-MIB'} 
= {
+  'ciscoSlaEntitlementEnforceMode' => {
+    '1' => 'initialized',
+    '2' => 'waiting',
+    '3' => 'authorized',
+    '4' => 'outOfCompliance',
+    '5' => 'overage',
+    '6' => 'evaluationPeriod',
+    '7' => 'evaluationExpired',
+    '8' => 'gracePeriod',
+    '9' => 'gracePeriodExpired',
+    '10' => 'disabled',
+    '11' => 'invalidTag',
+  },
+  'ciscoSlaRegistrationStatus' => {
+    '1' => 'notRegistered',
+    '2' => 'registrationInProgress',
+    '3' => 'registrationFailed',
+    '4' => 'registrationRetryinProgress',
+    '5' => 'registrationCompleted',
+  },
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin.pm 
new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin.pm
--- old/check_nwc_health-8.1/GLPlugin/lib/Monitoring/GLPlugin.pm        
2021-01-18 21:21:44.277149100 +0100
+++ new/check_nwc_health-8.3.1.1/GLPlugin/lib/Monitoring/GLPlugin.pm    
2021-03-02 21:19:14.770353000 +0100
@@ -20,7 +20,7 @@
   $Data::Dumper::Sparseseen = 1;
 };
 our $AUTOLOAD;
-*VERSION = \'3.3.2';
+*VERSION = \'3.3.3.1';
 
 use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/check_nwc_health-8.1/configure 
new/check_nwc_health-8.3.1.1/configure
--- old/check_nwc_health-8.1/configure  2021-01-18 21:20:18.203549900 +0100
+++ new/check_nwc_health-8.3.1.1/configure      2021-03-02 21:19:03.583820000 
+0100
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.ac .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for check_nwc_health 8.1.
+# Generated by GNU Autoconf 2.69 for check_nwc_health 8.3.1.1.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
 # Identity of this package.
 PACKAGE_NAME='check_nwc_health'
 PACKAGE_TARNAME='check_nwc_health'
-PACKAGE_VERSION='8.1'
-PACKAGE_STRING='check_nwc_health 8.1'
+PACKAGE_VERSION='8.3.1.1'
+PACKAGE_STRING='check_nwc_health 8.3.1.1'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1236,7 +1236,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures check_nwc_health 8.1 to adapt to many kinds of systems.
+\`configure' configures check_nwc_health 8.3.1.1 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1308,7 +1308,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of check_nwc_health 8.1:";;
+     short | recursive ) echo "Configuration of check_nwc_health 8.3.1.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1393,7 +1393,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-check_nwc_health configure 8.1
+check_nwc_health configure 8.3.1.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1410,7 +1410,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by check_nwc_health $as_me 8.1, which was
+It was created by check_nwc_health $as_me 8.3.1.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2273,7 +2273,7 @@
 
 # Define the identity of the package.
  PACKAGE='check_nwc_health'
- VERSION='8.1'
+ VERSION='8.3.1.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3324,7 +3324,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by check_nwc_health $as_me 8.1, which was
+This file was extended by check_nwc_health $as_me 8.3.1.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -3377,7 +3377,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-check_nwc_health config.status 8.1
+check_nwc_health config.status 8.3.1.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/check_nwc_health-8.1/configure.ac 
new/check_nwc_health-8.3.1.1/configure.ac
--- old/check_nwc_health-8.1/configure.ac       2021-01-18 21:21:42.835666200 
+0100
+++ new/check_nwc_health-8.3.1.1/configure.ac   2021-03-02 21:19:13.275197500 
+0100
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 AC_REVISION ($Revision: 1.150 $)
 AC_PREREQ(2.58)
-AC_INIT(check_nwc_health,8.1)
+AC_INIT(check_nwc_health,8.3.1.1)
 AM_INIT_AUTOMAKE([1.9 tar-pax])
 AM_MAINTAINER_MODE([disable])
 AC_CANONICAL_HOST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/HaSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/HaSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/HaSubsystem.pm
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/HaSubsystem.pm
        2021-03-02 21:19:15.176281300 +0100
@@ -0,0 +1,132 @@
+package Classes::Bluecat::AddressManager::Component::HaSubsystem;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
+use strict;
+use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
+
+sub init {
+  my ($self) = @_;
+  if ($self->mode =~ /device::ha::status/) {
+    $self->get_snmp_tables('BAM-SNMP-MIB', [
+      ["replications", "replicationStatusTable", 
'Classes::Bluecat::AddressManager::Component::HaSubsystem::Replication'],
+    ]);
+    $self->get_snmp_objects('BAM-SNMP-MIB', (qw(
+        queueSize replication
+        replicationNodeStatus replicationAverageLatency
+        replicationWarningThreshold replicationBreakThreshold
+        replicationLatencyWarningThreshold replicationLatencyCriticalThreshold
+    )));
+  } elsif ($self->mode =~ /device::ha::role/) {
+    if (! $self->opts->role()) {
+      $self->opts->override_opt('role', 'primary');
+    }
+    $self->get_snmp_objects('BAM-SNMP-MIB', (qw(replicationNodeStatus)));
+  }
+}
+
+sub check {
+  my ($self) = @_;
+  if ($self->mode =~ /device::ha::status/) {
+    foreach (@{$self->{replications}}) {
+      $_->{replicationLatencyCriticalThreshold} = 
$self->{replicationLatencyCriticalThreshold};
+      $_->{replicationLatencyWarningThreshold} = 
$self->{replicationLatencyWarningThreshold};
+      $_->check();
+    }
+  } elsif ($self->mode =~ /device::ha::role/) {
+    $self->add_info(sprintf 'ha node status is %s',
+        $self->{replicationNodeStatus},
+    );
+    if ($self->{replicationNodeStatus} eq 'unknown') {
+      $self->add_message(
+          defined $self->opts->mitigation() ? $self->opts->mitigation() : 
WARNING,
+          'ha was not started');
+    } else {
+      if ($self->{replicationNodeStatus} ne $self->opts->role()) {
+        $self->add_message(
+            defined $self->opts->mitigation() ? $self->opts->mitigation() : 
WARNING,
+            $self->{info});
+        $self->add_message(
+            defined $self->opts->mitigation() ? $self->opts->mitigation() : 
WARNING,
+            sprintf "expected role %s", $self->opts->role())
+      } else {
+        $self->add_ok();
+      }
+    }
+  }
+}
+
+package Classes::Bluecat::AddressManager::Component::HaSubsystem::Replication;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem);
+use strict;
+
+sub check {
+  my ($self) = @_;
+  $self->add_info(sprintf '%s node %s has status %s, latency is %.2f',
+      lc $self->{replicationRole}, $self->{hostname},
+      lc $self->{replicationHealth}, $self->{currentLatency});
+  $self->set_thresholds(metric => 'latency_'.lc $self->{replicationRole},
+      warning => $self->{replicationLatencyWarningThreshold},
+      critical => $self->{replicationLatencyCriticalThreshold},
+  );
+  $self->add_message($self->check_thresholds(
+      metric => 'latency_'.lc $self->{replicationRole},
+      value => $self->{currentLatency}));
+  $self->add_perfdata(
+      label => 'latency_'.lc $self->{replicationRole},
+      value => $self->{currentLatency}
+  );
+}
+
+__END__
+sdeb-bam-p03.sys.schwarz
+root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.8.2
+BAM-SNMP-MIB::replicationNodeStatus.0 = INTEGER: primary(1)
+-> hier soll nur das Ergebnis angezeigt werden
+
+root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.1.1
+BAM-SNMP-MIB::version.0 = STRING: 9.0.0
+-> hier soll nur das Ergebnis angezeigt werden
+
+#root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.1.2
+#BAM-SNMP-MIB::startTime.0 = STRING: 2020-5-16,2:4:43.216
+# uptime -> hier soll nur das Ergebnis angezeigt werden
+
+root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.8.8.1.4.10.201.135.240
+BAM-SNMP-MIB::replicationHealth.10.201.135.240 = INTEGER: Replicating(2)
+-> bei Ausgabe 0 und 1 soll Nagios alarm schlagen, 2 bedeutet alles iO
+
+root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.10.1.0
+BAM-SNMP-MIB::lastSuccessfulBackupTime.0 = STRING: 2020-11-11,3:10:35.0
+-> hier soll nur das Ergebnis angezeigt werden
+
+
+KCZ_DDI
+root@b0ac987f7n:~# snmpwalk -v2c -c "communitypw" 127.0.0.1 
.1.3.6.1.4.1.13315.3.1.1.2.1.1
+BCN-DHCPV4-MIB::bcnDhcpv4SerOperState.0 = INTEGER: running(1)
+1Running ist alles iO, bei 2,3,4,5 soll Nagios alarm schlagen
+
+root@b0ac987f7n:~# snmpwalk -v2c -c "communitypw" 127.0.0.1 
.1.3.6.1.4.1.13315.3.1.2.2.1.1
+BCN-DNS-MIB::bcnDnsSerOperState.0 = INTEGER: running(1)
+1Running ist alles iO, bei 2,3,4,5 soll Nagios alarm schlagen
+
+Hallo Gerhard,
+f??r Bluecat devices brauchen wir einen ha-status in check_nwc_health.
+Die MIBs h??ngen schon am Ticket dran.
+
+Wichtige informationen w??ren:
+- BAM-SNMP-MIB::replicationNodeStatus.0
+- BAM-SNMP-MIB::startTime.0
+- BAM-SNMP-MIB::replicationHealth.10.201.135.240
+- BAM-SNMP-MIB::lastSuccessfulBackupTime.0
+
+/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.10.1.0 backup
+
+/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.8.8.1.4.10.201.135.240 -C 
"***" -w 2:2 -c 2:2 replication 240   replicationHealth
+
+/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.8.2.0 -C "***" -w 1:1 -c 
1:1 replicatiuon node  replicationNodeStatus
+/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.1.2.0 -C "***" -s OK
+ start time
+
+/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.1.1.0 -C "***" -s OK
+version
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MemSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MemSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MemSubsystem.pm
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MemSubsystem.pm
       2021-03-02 21:19:15.185280400 +0100
@@ -0,0 +1,30 @@
+package Classes::Bluecat::AddressManager::Component::MemSubsystem;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
+use strict;
+use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
+
+sub init {
+  my ($self) = @_;
+  $self->get_snmp_objects('BAM-SNMP-MIB', (qw(
+        freeMemory maxMemory usageThresholdExceeded
+  )));
+  $self->{jvm_usage} = 100 - 100 * $self->{freeMemory} / $self->{maxMemory};
+}
+
+sub check {
+  my ($self) = @_;
+  $self->add_info(sprintf 'jvm mem usage is %.2f%%',
+      $self->{jvm_usage});
+  $self->set_thresholds(metric => "jvm_memory_usage",
+      warning => 80, critical => 90);
+  $self->add_message($self->check_thresholds(
+      metric => "jvm_memory_usage",
+      value => $self->{jvm_usage}));
+  $self->add_perfdata(
+      label => 'jvm_memory_usage',
+      value => $self->{jvm_usage},
+      uom => '%',
+  );
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm
      2021-03-02 21:19:15.193279300 +0100
@@ -0,0 +1,24 @@
+package Classes::Bluecat::AddressManager::Component::MgmtSubsystem;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
+use strict;
+use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
+
+sub init {
+  my ($self) = @_;
+  $self->get_snmp_objects('BAM-SNMP-MIB', (qw(lastSuccessfulBackupTime)));
+  $self->{lastSuccessfulBackupAge} = int((time - 
$self->{lastSuccessfulBackupTime}) / 3600);
+}
+
+sub check {
+  my ($self) = @_;
+  $self->add_info(sprintf "last successful backup was %d hours ago (%s)",
+      $self->{lastSuccessfulBackupAge},
+      scalar localtime $self->{lastSuccessfulBackupTime}
+  );
+  $self->set_thresholds(metric => "backup_age",
+      warning => 24*7,
+      critical => 24*7*4,
+  );
+  $self->add_message($self->check_thresholds(metric => "backup_age",
+      value => $self->{lastSuccessfulBackupAge}));
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager.pm 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager.pm
--- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/AddressManager.pm  
1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/AddressManager.pm  
    2021-03-02 21:19:15.203279100 +0100
@@ -0,0 +1,30 @@
+package Classes::Bluecat::AddressManager;
+our @ISA = qw(Classes::Device);
+use strict;
+
+sub init {
+  my ($self) = @_;
+  if ($self->mode =~ /device::hardware::health/) {
+    
$self->analyze_and_check_environmental_subsystem("Classes::HOSTRESOURCESMIB::Component::EnvironmentalSubsystem");
+  } elsif ($self->mode =~ /device::hardware::load/) {
+    
$self->analyze_and_check_cpu_subsystem("Classes::HOSTRESOURCESMIB::Component::CpuSubsystem");
+  } elsif ($self->mode =~ /device::hardware::memory/) {
+    
$self->analyze_and_check_mem_subsystem("Classes::HOSTRESOURCESMIB::Component::MemSubsystem");
+    
$self->analyze_and_check_jvm_subsystem("Classes::Bluecat::AddressManager::Component::MemSubsystem");
+  } elsif ($self->mode =~ /device::ha::/) {
+    
$self->analyze_and_check_ha_subsystem("Classes::Bluecat::AddressManager::Component::HaSubsystem");
+  } elsif ($self->mode =~ /device::mngmt::/) {
+    
$self->analyze_and_check_mgmt_subsystem("Classes::Bluecat::AddressManager::Component::MgmtSubsystem");
+  } else {
+    $self->no_such_mode();
+  }
+}
+
+sub pretty_sysdesc {
+  my ($self, $sysDescr) = @_;
+  my $sw_version = $self->get_snmp_object('BAM-SNMP-MIB', 'version');
+  my $start_time = $self->get_snmp_object('BAM-SNMP-MIB', 'startTime');
+  return sprintf "%s, sw version %s, start time %s",
+      $sysDescr, $sw_version, scalar localtime $start_time;
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/HaSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/HaSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/HaSubsystem.pm
   2021-01-18 21:21:44.658141200 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/HaSubsystem.pm
       1970-01-01 01:00:00.000000000 +0100
@@ -1,132 +0,0 @@
-package Classes::Bluecat::Component::HaSubsystem;
-our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
-use strict;
-use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
-
-sub init {
-  my ($self) = @_;
-  if ($self->mode =~ /device::ha::status/) {
-    $self->get_snmp_tables('BAM-SNMP-MIB', [
-      ["replications", "replicationStatusTable", 
'Classes::Bluecat::Component::HaSubsystem::Replication'],
-    ]);
-    $self->get_snmp_objects('BAM-SNMP-MIB', (qw(
-        queueSize replication
-        replicationNodeStatus replicationAverageLatency
-        replicationWarningThreshold replicationBreakThreshold
-        replicationLatencyWarningThreshold replicationLatencyCriticalThreshold
-    )));
-  } elsif ($self->mode =~ /device::ha::role/) {
-    if (! $self->opts->role()) {
-      $self->opts->override_opt('role', 'primary');
-    }
-    $self->get_snmp_objects('BAM-SNMP-MIB', (qw(replicationNodeStatus)));
-  }
-}
-
-sub check {
-  my ($self) = @_;
-  if ($self->mode =~ /device::ha::status/) {
-    foreach (@{$self->{replications}}) {
-      $_->{replicationLatencyCriticalThreshold} = 
$self->{replicationLatencyCriticalThreshold};
-      $_->{replicationLatencyWarningThreshold} = 
$self->{replicationLatencyWarningThreshold};
-      $_->check();
-    }
-  } elsif ($self->mode =~ /device::ha::role/) {
-    $self->add_info(sprintf 'ha node status is %s',
-        $self->{replicationNodeStatus},
-    );
-    if ($self->{replicationNodeStatus} eq 'unknown') {
-      $self->add_message(
-          defined $self->opts->mitigation() ? $self->opts->mitigation() : 
WARNING,
-          'ha was not started');
-    } else {
-      if ($self->{replicationNodeStatus} ne $self->opts->role()) {
-        $self->add_message(
-            defined $self->opts->mitigation() ? $self->opts->mitigation() : 
WARNING,
-            $self->{info});
-        $self->add_message(
-            defined $self->opts->mitigation() ? $self->opts->mitigation() : 
WARNING,
-            sprintf "expected role %s", $self->opts->role())
-      } else {
-        $self->add_ok();
-      }
-    }
-  }
-}
-
-package Classes::Bluecat::Component::HaSubsystem::Replication;
-our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem);
-use strict;
-
-sub check {
-  my ($self) = @_;
-  $self->add_info(sprintf '%s node %s has status %s, latency is %.2f',
-      lc $self->{replicationRole}, $self->{hostname},
-      lc $self->{replicationHealth}, $self->{currentLatency});
-  $self->set_thresholds(metric => 'latency_'.lc $self->{replicationRole},
-      warning => $self->{replicationLatencyWarningThreshold},
-      critical => $self->{replicationLatencyCriticalThreshold},
-  );
-  $self->add_message($self->check_thresholds(
-      metric => 'latency_'.lc $self->{replicationRole},
-      value => $self->{currentLatency}));
-  $self->add_perfdata(
-      label => 'latency_'.lc $self->{replicationRole},
-      value => $self->{currentLatency}
-  );
-}
-
-__END__
-sdeb-bam-p03.sys.schwarz
-root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.8.2
-BAM-SNMP-MIB::replicationNodeStatus.0 = INTEGER: primary(1)
--> hier soll nur das Ergebnis angezeigt werden
-
-root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.1.1
-BAM-SNMP-MIB::version.0 = STRING: 9.0.0
--> hier soll nur das Ergebnis angezeigt werden
-
-#root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.1.2
-#BAM-SNMP-MIB::startTime.0 = STRING: 2020-5-16,2:4:43.216
-# uptime -> hier soll nur das Ergebnis angezeigt werden
-
-root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.8.8.1.4.10.201.135.240
-BAM-SNMP-MIB::replicationHealth.10.201.135.240 = INTEGER: Replicating(2)
--> bei Ausgabe 0 und 1 soll Nagios alarm schlagen, 2 bedeutet alles iO
-
-root@sdeb-bam-p03:~# snmpwalk -v2c -c "communitypw" 10.201.135.240 
.1.3.6.1.4.1.13315.100.210.1.10.1.0
-BAM-SNMP-MIB::lastSuccessfulBackupTime.0 = STRING: 2020-11-11,3:10:35.0
--> hier soll nur das Ergebnis angezeigt werden
-
-
-KCZ_DDI
-root@b0ac987f7n:~# snmpwalk -v2c -c "communitypw" 127.0.0.1 
.1.3.6.1.4.1.13315.3.1.1.2.1.1
-BCN-DHCPV4-MIB::bcnDhcpv4SerOperState.0 = INTEGER: running(1)
-1Running ist alles iO, bei 2,3,4,5 soll Nagios alarm schlagen
-
-root@b0ac987f7n:~# snmpwalk -v2c -c "communitypw" 127.0.0.1 
.1.3.6.1.4.1.13315.3.1.2.2.1.1
-BCN-DNS-MIB::bcnDnsSerOperState.0 = INTEGER: running(1)
-1Running ist alles iO, bei 2,3,4,5 soll Nagios alarm schlagen
-
-Hallo Gerhard,
-f??r Bluecat devices brauchen wir einen ha-status in check_nwc_health.
-Die MIBs h??ngen schon am Ticket dran.
-
-Wichtige informationen w??ren:
-- BAM-SNMP-MIB::replicationNodeStatus.0
-- BAM-SNMP-MIB::startTime.0
-- BAM-SNMP-MIB::replicationHealth.10.201.135.240
-- BAM-SNMP-MIB::lastSuccessfulBackupTime.0
-
-/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.10.1.0 backup
-
-/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.8.8.1.4.10.201.135.240 -C 
"***" -w 2:2 -c 2:2 replication 240   replicationHealth
-
-/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.8.2.0 -C "***" -w 1:1 -c 
1:1 replicatiuon node  replicationNodeStatus
-/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.1.2.0 -C "***" -s OK
- start time
-
-/omd/sites/mon/local/lib/monitoring-plugins/mon/mon_check_snmp -H 
10.201.135.240 -P 2c -o .1.3.6.1.4.1.13315.100.210.1.1.1.0 -C "***" -s OK
-version
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/MemSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/MemSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/MemSubsystem.pm
  2021-01-18 21:21:44.666140700 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/MemSubsystem.pm
      1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-package Classes::Bluecat::Component::MemSubsystem;
-our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
-use strict;
-use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
-
-sub init {
-  my ($self) = @_;
-  $self->get_snmp_objects('BAM-SNMP-MIB', (qw(
-        freeMemory maxMemory usageThresholdExceeded
-  )));
-  $self->{jvm_usage} = 100 - 100 * $self->{freeMemory} / $self->{maxMemory};
-}
-
-sub check {
-  my ($self) = @_;
-  $self->add_info(sprintf 'jvm mem usage is %.2f%%',
-      $self->{jvm_usage});
-  $self->set_thresholds(warning => 80, critical => 90);
-  $self->add_message($self->check_thresholds($self->{jvm_usage}));
-  $self->add_perfdata(
-      label => 'jvm_memory_usage',
-      value => $self->{jvm_usage},
-      uom => '%',
-  );
-}
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/MgmtSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/MgmtSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/MgmtSubsystem.pm
 2021-01-18 21:21:44.675152500 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/MgmtSubsystem.pm
     1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-package Classes::Bluecat::Component::MgmtSubsystem;
-our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
-use strict;
-use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
-
-sub init {
-  my ($self) = @_;
-  $self->get_snmp_objects('BAM-SNMP-MIB', (qw(lastSuccessfulBackupTime)));
-  $self->{lastSuccessfulBackupAge} = int((time - 
$self->{lastSuccessfulBackupTime}) / 3600);
-}
-
-sub check {
-  my ($self) = @_;
-  $self->add_info(sprintf "last successful backup was %d hours ago (%s)",
-      $self->{lastSuccessfulBackupAge},
-      scalar localtime $self->{lastSuccessfulBackupTime}
-  );
-  $self->set_thresholds(metric => "backup_age",
-      warning => 24*7,
-      critical => 24*7*4,
-  );
-  $self->add_message($self->check_thresholds(metric => "backup_age",
-      value => $self->{lastSuccessfulBackupAge}));
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/ProcessSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/ProcessSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/Component/ProcessSubsystem.pm
      2021-01-18 21:21:44.684140300 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/Component/ProcessSubsystem.pm
  1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-package Classes::Bluecat::Component::ProcessSubsystem;
-our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
-use strict;
-use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
-
-sub init {
-  my ($self) = @_;
-  $self->get_snmp_objects('BCN-DNS-MIB', (qw(bcnDnsSerOperState)));
-  $self->get_snmp_objects('BCN-DHCPV4-MIB', (qw(bcnDhcpv4SerOperState)));
-}
-
-sub check {
-  my ($self) = @_;
-  if ($self->{bcnDnsSerOperState}) {
-    $self->add_info(sprintf "dns service is %s", $self->{bcnDnsSerOperState});
-    $self->add_ok() if $self->{bcnDnsSerOperState} eq "running";
-    $self->add_critical() if $self->{bcnDnsSerOperState} eq "notRunning";
-    $self->add_warning() if $self->{bcnDnsSerOperState} eq "starting";
-    $self->add_warning() if $self->{bcnDnsSerOperState} eq "stopping";
-    $self->add_critical() if $self->{bcnDnsSerOperState} eq "fault";
-  }
-  if ($self->{bcnDhcpv4SerOperState}) {
-    $self->add_info(sprintf "dhcp service is %s", 
$self->{bcnDhcpv4SerOperState});
-    $self->add_ok() if $self->{bcnDhcpv4SerOperState} eq "running";
-    $self->add_critical() if $self->{bcnDhcpv4SerOperState} eq "notRunning";
-    $self->add_warning() if $self->{bcnDhcpv4SerOperState} eq "starting";
-    $self->add_warning() if $self->{bcnDhcpv4SerOperState} eq "stopping";
-    $self->add_critical() if $self->{bcnDhcpv4SerOperState} eq "fault";
-  }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm
 2021-03-02 21:19:15.212280000 +0100
@@ -0,0 +1,41 @@
+package Classes::Bluecat::DnsDhcpServer::Component::HaSubsystem;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
+use strict;
+use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
+
+sub init {
+  my ($self) = @_;
+  $self->get_snmp_objects('ADONIS-DNS-MIB', qw(haServiceRunning));
+  if ($self->mode =~ /device::ha::status/) {
+  } elsif ($self->mode =~ /device::ha::role/) {
+    $self->get_snmp_objects('ADONIS-DNS-MIB', qw(haServiceNodeType));
+    if (! $self->opts->role()) {
+      $self->opts->override_opt('role', 'active');
+    }
+  }
+}
+
+sub check {
+  my ($self) = @_;
+  if ($self->mode =~ /device::ha::status/) {
+    if ($self->{haServiceRunning} == 0) {
+      $self->add_critical_mitigation("HA service is not running");
+    } else {
+      $self->add_ok("HA service is running");
+    }
+  } elsif ($self->mode =~ /device::ha::role/) {
+    $self->{haServiceNodeType} = $self->{haServiceNodeType} == 1 ?
+        "active" : "passive";
+    if ($self->{haServiceRunning} == 1) {
+      $self->add_info(sprintf 'ha node type is %s', 
$self->{haServiceNodeType});
+      if ($self->opts->role() ne $self->{haServiceNodeType}) {
+        $self->add_critical_mitigation();
+      } else {
+        $self->add_ok();
+      }
+    } else {
+      $self->add_critical_mitigation("HA service is not running");
+    }
+  }
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm
    2021-03-02 21:19:15.220279800 +0100
@@ -0,0 +1,47 @@
+package Classes::Bluecat::DnsDhcpServer::Component::ProcessSubsystem;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
+use strict;
+use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
+
+sub init {
+  my ($self) = @_;
+  $self->get_snmp_objects('BCN-DNS-MIB', (qw(bcnDnsSerOperState)));
+  $self->get_snmp_objects('BCN-DHCPV4-MIB', (qw(bcnDhcpv4SerOperState)));
+}
+
+sub check {
+  my ($self) = @_;
+  if ($self->{bcnDnsSerOperState}) {
+    $self->add_info(sprintf "dns service is %s", $self->{bcnDnsSerOperState});
+    $self->add_ok() if $self->{bcnDnsSerOperState} eq "running";
+    $self->add_critical() if $self->{bcnDnsSerOperState} eq "notRunning";
+    $self->add_warning() if $self->{bcnDnsSerOperState} eq "starting";
+    $self->add_warning() if $self->{bcnDnsSerOperState} eq "stopping";
+    $self->add_critical() if $self->{bcnDnsSerOperState} eq "fault";
+  } else {
+    $self->get_snmp_objects('ADONIS-DNS-MIB', (qw(dnsDaemonRunning)));
+    if (exists $self->{dnsDaemonRunning}) {
+      $self->add_info(sprintf "dns service is %s",
+          $self->{dnsDaemonRunning} ? "running" : "not running");
+      $self->add_ok() if $self->{dnsDaemonRunning} == 0;
+      $self->add_critical() if $self->{dnsDaemonRunning} == 1;
+    }
+  }
+  if ($self->{bcnDhcpv4SerOperState}) {
+    $self->add_info(sprintf "dhcp service is %s", 
$self->{bcnDhcpv4SerOperState});
+    $self->add_ok() if $self->{bcnDhcpv4SerOperState} eq "running";
+    $self->add_critical() if $self->{bcnDhcpv4SerOperState} eq "notRunning";
+    $self->add_warning() if $self->{bcnDhcpv4SerOperState} eq "starting";
+    $self->add_warning() if $self->{bcnDhcpv4SerOperState} eq "stopping";
+    $self->add_critical() if $self->{bcnDhcpv4SerOperState} eq "fault";
+  } else {
+    $self->get_snmp_objects('ADONIS-DNS-MIB', (qw(dhcpDaemonRunning)));
+    if (exists $self->{dhcpDaemonRunning}) {
+      $self->add_info(sprintf "dhcp service is %s",
+          $self->{dhcpDaemonRunning} ? "running" : "not running");
+      $self->add_ok() if $self->{dhcpDaemonRunning} == 0;
+      $self->add_critical() if $self->{dhcpDaemonRunning} == 1;
+    }
+  }
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer.pm 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer.pm
--- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer.pm   
1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat/DnsDhcpServer.pm   
    2021-03-02 21:19:15.229280600 +0100
@@ -0,0 +1,27 @@
+package Classes::Bluecat::DnsDhcpServer;
+our @ISA = qw(Classes::Device);
+use strict;
+
+sub init {
+  my ($self) = @_;
+  if ($self->mode =~ /device::hardware::health/) {
+    
$self->analyze_and_check_environmental_subsystem("Classes::HOSTRESOURCESMIB::Component::EnvironmentalSubsystem");
+  } elsif ($self->mode =~ /device::hardware::load/) {
+    
$self->analyze_and_check_cpu_subsystem("Classes::HOSTRESOURCESMIB::Component::CpuSubsystem");
+  } elsif ($self->mode =~ /device::hardware::memory/) {
+    
$self->analyze_and_check_mem_subsystem("Classes::HOSTRESOURCESMIB::Component::MemSubsystem");
+  } elsif ($self->mode =~ /device::ha::/) {
+    
$self->analyze_and_check_ha_subsystem("Classes::Bluecat::DnsDhcpServer::Component::HaSubsystem");
+  } elsif ($self->mode =~ /device::process::/) {
+    
$self->analyze_and_check_process_subsystem("Classes::Bluecat::DnsDhcpServer::Component::ProcessSubsystem");
+  } else {
+    $self->no_such_mode();
+  }
+}
+
+sub pretty_sysdesc {
+  my ($self, $sysDescr) = @_;
+  my $sw_version = $self->get_snmp_object('BCN-SYSTEM-MIB', 
'bcnSysIdOSRelease');
+  return sprintf "%s, sw version %s", $sysDescr, $sw_version;
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat.pm 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat.pm
--- old/check_nwc_health-8.1/plugins-scripts/Classes/Bluecat.pm 2021-01-18 
21:21:44.693139300 +0100
+++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Bluecat.pm     
2021-03-02 21:19:15.239279200 +0100
@@ -4,29 +4,15 @@
 
 sub init {
   my ($self) = @_;
-  if ($self->mode =~ /device::hardware::health/) {
-    
$self->analyze_and_check_environmental_subsystem("Classes::HOSTRESOURCESMIB::Component::EnvironmentalSubsystem");
-  } elsif ($self->mode =~ /device::hardware::load/) {
-    
$self->analyze_and_check_cpu_subsystem("Classes::HOSTRESOURCESMIB::Component::CpuSubsystem");
-  } elsif ($self->mode =~ /device::hardware::memory/) {
-    
$self->analyze_and_check_mem_subsystem("Classes::HOSTRESOURCESMIB::Component::MemSubsystem");
-    
$self->analyze_and_check_jvm_subsystem("Classes::Bluecat::Component::MemSubsystem");
-  } elsif ($self->mode =~ /device::ha::/) {
-    
$self->analyze_and_check_ha_subsystem("Classes::Bluecat::Component::HaSubsystem");
-  } elsif ($self->mode =~ /device::process::/) {
-    
$self->analyze_and_check_process_subsystem("Classes::Bluecat::Component::ProcessSubsystem");
-  } elsif ($self->mode =~ /device::mngmt::/) {
-    
$self->analyze_and_check_mgmt_subsystem("Classes::Bluecat::Component::MgmtSubsystem");
+  if ($self->{productname} =~ /Bluecat Address Manager/) {
+    $self->rebless('Classes::Bluecat::AddressManager');
+  } elsif ($self->{productname} =~ /Bluecat DNS\/DHCP Server/) {
+    $self->rebless('Classes::Bluecat::DnsDhcpServer');
+  }
+  if (ref($self) ne "Classes::Bluecat") {
+    $self->init();
   } else {
     $self->no_such_mode();
   }
 }
 
-sub pretty_sysdesc {
-  my ($self, $sysDescr) = @_;
-  my $sw_version = $self->get_snmp_object('BAM-SNMP-MIB', 'version');
-  my $start_time = $self->get_snmp_object('BAM-SNMP-MIB', 'startTime');
-  return sprintf "%s, sw version %s, start time %s",
-      $sysDescr, $sw_version, scalar localtime $start_time;
-}
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/AsyncOS/Component/MemSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/AsyncOS/Component/MemSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/AsyncOS/Component/MemSubsystem.pm
    2021-01-18 21:21:44.930134800 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/AsyncOS/Component/MemSubsystem.pm
        2021-03-02 21:19:15.503267300 +0100
@@ -11,19 +11,22 @@
 sub check {
   my ($self) = @_;
   $self->add_info('checking memory');
-  $self->add_info(sprintf 'memory usage is %.2f%% (%s)',
-      $self->{perCentMemoryUtilization}, $self->{memoryAvailabilityStatus});
+  $self->add_info(sprintf 'memory usage is %.2f%%',
+      $self->{perCentMemoryUtilization});
   $self->set_thresholds(warning => 80, critical => 90);
-  if ($self->check_thresholds($self->{perCentMemoryUtilization})) {
-    
$self->add_message($self->check_thresholds($self->{perCentMemoryUtilization}));
-  } elsif ($self->{memoryAvailabilityStatus} eq 'memoryShortage') {
-    $self->add_warning();
-    $self->set_thresholds(warning => $self->{perCentMemoryUtilization}, 
critical => 90);
-  } elsif ($self->{memoryAvailabilityStatus} eq 'memoryFull') {
-    $self->add_critical();
-    $self->set_thresholds(warning => 80, critical => 
$self->{perCentMemoryUtilization});
-  } else {
-    $self->add_ok();
+  
$self->add_message($self->check_thresholds($self->{perCentMemoryUtilization}));
+  if ($self->{memoryAvailabilityStatus}) {
+    $self->add_info(sprintf "memoryAvailabilityStatus is %s",
+        $self->{memoryAvailabilityStatus});
+    if ($self->{memoryAvailabilityStatus} eq 'memoryShortage') {
+      $self->add_warning();
+      $self->set_thresholds(warning => $self->{perCentMemoryUtilization}, 
critical => 90);
+    } elsif ($self->{memoryAvailabilityStatus} eq 'memoryFull') {
+      $self->add_critical();
+      $self->set_thresholds(warning => 80, critical => 
$self->{perCentMemoryUtilization});
+    } else {
+      $self->add_ok();
+    }
   }
   $self->add_perfdata(
       label => 'memory_usage',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm
        2021-03-02 21:19:15.731263500 +0100
@@ -0,0 +1,139 @@
+package Classes::Cisco::CISCOPROCESSMIB::Component::MemSubsystem;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
+use strict;
+
+sub init {
+  my ($self) = @_;
+  $self->get_snmp_tables('CISCO-PROCESS-MIB', [
+      ['cpumems', 'cpmCPUTotalTable', 
'Classes::Cisco::CISCOPROCESSMIB::Component::MemSubsystem::Mem', sub { my $o = 
shift; return exists $o->{cpmCPUMemoryUsed} ? 1 : 0 } ],
+  ]);
+}
+
+package Classes::Cisco::CISCOPROCESSMIB::Component::MemSubsystem::Mem;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem);
+use strict;
+
+sub finish {
+  my ($self) = @_;
+  if (! exists $self->{cpmCPUMemoryUsed}) {
+    # dann fluigt der ganze scheisdreck weida ohm beim get_snmp_tables
+    # ausse. mit wos fir am oltn glump das i mi heid wieder oweerchan mou!
+    return;
+  }
+  $self->{cpmCPUTotalIndex} = $self->{flat_indices};
+#  $self->{cpmCPUTotalPhysicalIndex} = exists 
$self->{cpmCPUTotalPhysicalIndex} ?
+#      $self->{cpmCPUTotalPhysicalIndex} : 0;
+  $self->{entPhysicalName} = $self->get_snmp_object('ENTITY-MIB', 
'entPhysicalName', $self->{cpmCPUTotalPhysicalIndex});
+  # wichtig fuer gestacktes zeugs, bei dem entPhysicalName doppelt und mehr 
vorkommen kann
+  # This object is a user-assigned asset tracking identifier for the physical 
entity
+  # as specified by a network manager, and provides non-volatile storage of 
this
+  # information. On the first instantiation of an physical entity, the value of
+  # entPhysicalAssetID associated with that entity is set to the zero-length 
string.
+  # ...
+  # If write access is implemented for an instance of entPhysicalAssetID, and 
a value
+  # is written into the instance, the agent must retain the supplied value in 
the
+  # entPhysicalAssetID instance associated with the same physical entity for 
as long
+  # as that entity remains instantiated. This includes instantiations across 
all
+  # re-initializations/reboots of the network management system, including 
those
+  # which result in a change of the physical entity's entPhysicalIndex value.
+  $self->{entPhysicalAssetID} = $self->get_snmp_object('ENTITY-MIB', 
'entPhysicalAssetID', $self->{cpmCPUTotalPhysicalIndex});
+  $self->{entPhysicalDescr} = $self->get_snmp_object('ENTITY-MIB', 
'entPhysicalDescr', $self->{cpmCPUTotalPhysicalIndex});
+  $self->{name} = $self->{entPhysicalName} || $self->{entPhysicalDescr};
+  # letzter Ausweg, weil auch alle drei get_snmp_object fehlschlagen koennen
+  $self->{name} ||= $self->{cpmCPUTotalIndex};
+  if ($self->{cpmCPUMemoryHCUsed} and $self->{cpmCPUMemoryHCFree}) {
+    $self->{cpmCPUMemoryHCTotal} = $self->{cpmCPUMemoryHCUsed} + 
$self->{cpmCPUMemoryHCFree};
+    $self->{usageu} = 100 * $self->{cpmCPUMemoryHCUsed} /
+        $self->{cpmCPUMemoryHCTotal};
+    $self->{usagec} = 100 * $self->{cpmCPUMemoryHCCommitted} /
+        $self->{cpmCPUMemoryHCTotal};
+  } else {
+    $self->{cpmCPUMemoryLCUsed} = $self->{cpmCPUMemoryUsedOvrflw} ?
+        ($self->{cpmCPUMemoryUsedOvrflw} << 32) + ($self->{cpmCPUMemoryUsed}) :
+        $self->{cpmCPUMemoryUsed};
+    $self->{cpmCPUMemoryLCFree} = $self->{cpmCPUMemoryFreeOvrflw} ?
+        ($self->{cpmCPUMemoryFreeOvrflw} << 32) + ($self->{cpmCPUMemoryFree}) :
+        $self->{cpmCPUMemoryFree};
+    $self->{cpmCPUMemoryLCTotal} = $self->{cpmCPUMemoryLCUsed} + 
$self->{cpmCPUMemoryLCFree};
+    if (exists $self->{cpmCPUMemoryCommitted}) {
+      $self->{cpmCPUMemoryLCCommitted} = $self->{cpmCPUMemoryCommittedOvrflw} ?
+          ($self->{cpmCPUMemoryCommittedOvrflw} << 32) + 
($self->{cpmCPUMemoryCommitted}) :
+          $self->{cpmCPUMemoryCommitted};
+      $self->{usagec} = 100 * $self->{cpmCPUMemoryLCCommited} /
+          $self->{cpmCPUMemoryLCTotal};
+    }
+    $self->{usageu} = 100 * $self->{cpmCPUMemoryLCUsed} /
+        $self->{cpmCPUMemoryLCTotal};
+  }
+  # immer den kleineren wert. ist nicht ganz korrekt, aber so muss ich mich
+  # am wenigsten rumaergern.
+  if (exists $self->{usagec} and $self->{usagec} < $self->{usageu}) {
+    $self->{usage} = $self->{usagec};
+  } else {
+    $self->{usage} = $self->{usageu};
+  }
+  return $self;
+}
+
+sub check {
+  my ($self) = @_;
+  $self->add_info(sprintf '%s memory usage is %.2f%%',
+      $self->{name}, $self->{usage});
+  my $label = 'cpumem_'.$self->{name}.'_usage';
+  $self->set_thresholds(
+      metric => $label,
+      warning => 80,
+      critical => 90,
+  );
+  $self->add_message($self->check_thresholds(
+      metric => $label,
+      value => $self->{usage},
+  ));
+  $self->add_perfdata(
+      label => $label,
+      value => $self->{usage},
+      uom => '%',
+  );
+}
+
+__END__
+https://thwack.solarwinds.com/t5/NPM-Feature-Requests/Additional-Cisco-quot-CPU-Memory-quot-Poller-for-Cisco-ASR/idc-p/560968
+
+Memory (kB)
+Slot  Status    Total     Used (Pct)     Free (Pct) Committed (Pct)
+  RP0 Healthy  3969316  3849744 (97%)   119572 ( 3%)  2582596 (65%)
+
+In this output, the "Committed" output is what we recommend focusing on, as 
this represents what memory processes have actually requested from the kernel. 
The "Used" value, on the other hand, appears high because this includes the 
Linux kernel cache: this "extra" memory is used by the kernel to store bits of 
frequently used data, but that memory can be freed at any time if needed. From 
the perspective of committed memory, this router is not low on memory and 
appears to be operating normally.
+
+We frequently see cases inquiring about the misleadingly high value in the 
"Used" column. As a result, this is being adjusted in later code to provide a 
better representation of what memory is actually available for use. 
Additionally, two bugs have been filled to document the behavior, these are 
CSCuc40262 and CSCuv32343:
+
+
+https://www.cisco.com/c/de_de/support/docs/ip/simple-network-management-protocol-snmp/118901-technote-snmp-00.html
+
+ASR1K#show platform software status control-processor brief | s Memory
+Memory (kB)
+ Slot   Status    Total         Used(Pct)          Free (Pct)          
Committed (Pct)
+ RP0    Healthy   3874504       2188404 (56%)      1686100 (44%)       2155996 
(56%)
+ ESP0   Healthy    969088        590880 (61%)       378208 (39%)        363840 
(38%)
+ SIP0   Healthy    471832        295292 (63%)       176540 (37%)        288540 
(61%)
+(cpmCPUMemoryHCUsed)
+1.3.6.1.4.1.9.9.109.1.1.1.1.17.2 = Counter64: 590880  -ESP Used memory 
+1.3.6.1.4.1.9.9.109.1.1.1.1.17.3 = Counter64: 2188404 -RP used memory
+1.3.6.1.4.1.9.9.109.1.1.1.1.17.4 = Counter64: 295292  -SIP used memory
+(cpmCPUMemoryHCFree)
+1.3.6.1.4.1.9.9.109.1.1.1.1.19.2 = Counter64: 378208  -ESP free Memory 
+1.3.6.1.4.1.9.9.109.1.1.1.1.19.3 = Counter64: 1686100 -RP free Memory
+1.3.6.1.4.1.9.9.109.1.1.1.1.19.4 = Counter64: 176540  -SIP free memory
+cpmCPUMemoryHCCommitted)
+1.3.6.1.4.1.9.9.109.1.1.1.1.29.2 = Counter64: 363840  -ESP Committed Memory 
+1.3.6.1.4.1.9.9.109.1.1.1.1.29.3 = Counter64: 2155996 -RP Committed Memory
+1.3.6.1.4.1.9.9.109.1.1.1.1.29.4 = Counter64: 288540  -SIP committed memory
+
+stimmt alles wunderbar zusammen, total = used+free
+Und in der Realitaet kommt dann so eine Scheisse raus wie
+cpmCPUMemoryHCCommitted: 4469120
+cpmCPUMemoryHCFree: 171404
+cpmCPUMemoryHCKernelReserved: 0
+cpmCPUMemoryHCUsed: 3786752
+Bravo, bravoooo! Und bei auf cpmCPUMemoryHCCommitted basierender Usage gibts 
dann > 100%
+Und zwar ausfgerechnet bei dem, der den ganzen Stackswitchmemorydreck haben 
wollte.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm
       2021-03-02 21:19:15.751259600 +0100
@@ -0,0 +1,109 @@
+package Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::Item);
+use strict;
+
+sub init {
+  my ($self) = @_;
+  $self->get_snmp_objects("CISCO-SMART-LIC-MIB", qw(ciscoSlaEnabled));
+  $self->get_snmp_tables('CISCO-SMART-LIC-MIB', [
+      ['keys', 'ciscoSlaEntitlementInfoTable', 
'Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::Entitlement'],
+      ['keys', 'ciscoSlaRegistrationStatusInfoTable', 
'Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::RegStatusInfo', sub 
{ shift->{valid} }],
+      ['keys', 'ciscoSlaAuthorizationInfoTable', 
'Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::AuthInfo', sub { 
shift->{valid} }],
+  ]);
+}
+
+sub check {
+  my ($self) = @_;
+  if ($self->{ciscoSlaEnabled} eq "false") {
+    $self->add_ok("smart licensing is not enabled");
+  } else {
+    $self->SUPER::check();
+  }
+}
+
+
+package Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::Entitlement;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem);
+use strict;
+
+sub check {
+  my ($self) = @_;
+  #$self->{keyDaysUntilExpire} = int($self->{keySecondsUntilExpire} / 86400);
+  $self->add_info(sprintf "entitlement %s for feature %s mode is %s",
+      $self->{ciscoSlaEntitlementTag},
+      $self->{ciscoSlaEntitlementFeatureName},
+      $self->{ciscoSlaEntitlementEnforceMode}
+  );
+  $self->add_ok();
+}
+
+
+package 
Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::RegStatusInfo;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem);
+use strict;
+
+sub finish {
+  my ($self) = @_;
+  $self->{valid} = exists $self->{ciscoSlaRegistrationStatus} ? 1 : 0;
+  return if ! $self->{valid};
+  foreach (qw(ciscoSlaNextCertificateExpireTime ciscoSlaRegisterInitTime 
ciscoSlaRenewNextRetryTime)) {
+    $self->{$_."Human"} = scalar localtime $self->{$_}
+        if exists $self->{$_} and $self->{$_} =~ /^\d+$/;
+  }
+}
+
+sub check {
+  my ($self) = @_;
+}
+
+
+package Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem::AuthInfo;
+our @ISA = qw(Monitoring::GLPlugin::SNMP::TableItem);
+use strict;
+
+sub finish {
+  my ($self) = @_;
+  $self->{valid} = exists $self->{ciscoSlaAuthComplianceStatus} ? 1 : 0;
+  return if ! $self->{valid};
+  foreach (qw(ciscoSlaAuthRenewTime ciscoSlaAuthExpireTime 
ciscoSlaAuthRenewNextRetryTime ciscoSlaAuthRenewInitTime)) {
+    $self->{$_."Human"} = scalar localtime $self->{$_}
+        if exists $self->{$_} and $self->{$_} =~ /^\d+$/;
+  }
+  $self->{ciscoSlaAuthExpireTimeDays} =
+      int(($self->{ciscoSlaAuthExpireTime} - time) / (3600*24));
+  $self->{ciscoSlaAuthExpireTimeDays} =
+      $self->{ciscoSlaAuthExpireTimeDays} < 0 ?
+      0 : $self->{ciscoSlaAuthExpireTimeDays};
+  if ($self->{ciscoSlaAuthOOCStartTime} > 0) {
+    $self->{ciscoSlaAuthOOCStartTimeDays} =
+        int((time - $self->{ciscoSlaAuthExpireTime}) / (3600*24));
+  } else {
+    $self->{ciscoSlaAuthOOCStartTimeDays} = 0;
+  }
+}
+
+sub check {
+  my ($self) = @_;
+  $self->add_info(sprintf "compliance status is %s",
+      $self->{ciscoSlaAuthComplianceStatus});
+  if ($self->{ciscoSlaAuthComplianceStatus} eq "AUTHORIZED") {
+    $self->add_ok();
+  } else {
+    $self->add_critical();
+  }
+  if ($self->{ciscoSlaAuthOOCStartTime}) {
+    $self->add_critical(
+        sprintf "smart agent entered out of compliance %d days ago",
+        $self->{ciscoSlaAuthOOCStartTimeDays});
+  }
+  my $label = "sla_remaining_days";
+  $self->set_thresholds(metric => $label,
+      warning => "7:", critical => "2:");
+  $self->add_info(sprintf "authorization will expire in %d days",
+      $self->{ciscoSlaAuthExpireTimeDays});
+  $self->add_message($self->check_thresholds(metric => $label,
+      value => $self->{ciscoSlaAuthExpireTimeDays}));
+  $self->add_perfdata(label => $label,
+      value => $self->{ciscoSlaAuthExpireTimeDays});
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOSTACKWISEMIB/Component/StackSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOSTACKWISEMIB/Component/StackSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/CISCOSTACKWISEMIB/Component/StackSubsystem.pm
        2021-01-18 21:21:45.185133900 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/CISCOSTACKWISEMIB/Component/StackSubsystem.pm
    2021-03-02 21:19:15.771258700 +0100
@@ -10,16 +10,17 @@
       cswRingRedundant cswStackBandWidth ciscoStackWiseMIBConform
       cswStackWiseMIBCompliances
   ));
+  $self->get_snmp_tables("CISCO-STACKWISE-MIB", [
+      ['switches', 'cswSwitchInfoTable', 
'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Switch'],
+  ]);
   # cswStackType is not uniqe enough depening of IOS-XE version.
   # cswStackBandWidth exists only on distributed switches with SVL
   if ($self->{cswStackBandWidth}) {
     $self->get_snmp_tables("CISCO-STACKWISE-MIB", [
-        ['switches', 'cswSwitchInfoTable', 
'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Switch'],
         ['ports', 'cswDistrStackPhyPortInfoEntry', 
'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::PhyPort'],
     ]);
   } else {
     $self->get_snmp_tables("CISCO-STACKWISE-MIB", [
-        ['switches', 'cswSwitchInfoTable', 
'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Switch'],
         ['ports', 'cswStackPortInfoTable', 
'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Port'],
     ]);
   };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/IOS/Component/MemSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/IOS/Component/MemSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco/IOS/Component/MemSubsystem.pm
        2021-01-18 21:21:45.252127400 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco/IOS/Component/MemSubsystem.pm
    2021-03-02 21:19:15.835776500 +0100
@@ -18,5 +18,25 @@
   } else {
     
$self->analyze_and_check_mem_subsystem("Classes::Cisco::CISCOMEMORYPOOLMIB::Component::MemSubsystem");
   }
+  if ($self->implements_mib('CISCO-STACKWISE-MIB') and
+      $self->implements_mib('CISCO-STACKWISE-MIB')) {
+    # bei stacks, bestehend aus mehreren switches, wuenschen sich admins
+    # deren individuelle speichermetriken zu sehen. enhanced-mempool, bzw.
+    # der fallback auf memory-pool, der bei stacks vorkommt, gibt es lediglich
+    # einen globalen wert.
+    # die sind das von solarwinds so gewohnt, welches aber neuerdings nicht
+    # mehr ganz so angesagt ist.
+    #
+    # und gleich wieder der naechste dreck am 27.1.21, bei einem switch wird
+    # 105% usage gemeldet. der stack besteht nur aus einem switch, daher
+    # lassen wir das mit den per-node-memories hier bleiben.
+    $self->get_snmp_tables("CISCO-STACKWISE-MIB", [
+        ['switches', 'cswSwitchInfoTable', 
'Classes::Cisco::CISCOSTACKWISEMIB::Component::StackSubsystem::Switch', undef, 
["cswSwitchNumCurrent"]],
+    ]);
+    if (scalar(@{$self->{switches}}) > 1) {
+      
$self->analyze_and_check_mem_subsystem("Classes::Cisco::CISCOPROCESSMIB::Component::MemSubsystem");
+    }
+    delete $self->{switches};
+  }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco.pm 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco.pm
--- old/check_nwc_health-8.1/plugins-scripts/Classes/Cisco.pm   2021-01-18 
21:21:45.453124500 +0100
+++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Cisco.pm       
2021-03-02 21:19:16.041760200 +0100
@@ -64,6 +64,12 @@
       } else {
         $self->no_such_mode();
       }
+    } elsif ($self->mode =~ /device::licenses::/) {
+      if ($self->implements_mib('CISCO-SMART-LIC-MIB')) {
+        
$self->analyze_and_check_lic_subsystem("Classes::Cisco::CISCOSMARTLICMIB::Component::KeySubsystem");
+      } else {
+        $self->no_such_mode();
+      }
     } else {
       $self->init();
       if ($self->mode =~ /device::interfaces::ifstack::status/ &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/Device.pm 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Device.pm
--- old/check_nwc_health-8.1/plugins-scripts/Classes/Device.pm  2021-01-18 
21:21:45.520123300 +0100
+++ new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/Device.pm      
2021-03-02 21:19:16.104135100 +0100
@@ -75,7 +75,7 @@
         $self->rebless('Server::WindowsLocal');
       } elsif ($self->{productname} =~ /solarislocal/i) {
         $self->rebless('Server::SolarisLocal');
-      } elsif ($self->{productname} =~ /Bluecat Address Manager/i) {
+      } elsif ($self->{productname} =~ /Bluecat/i) {
         $self->rebless('Classes::Bluecat');
       } elsif ($self->{productname} =~ /Cisco/i) {
         $self->rebless('Classes::Cisco');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/check_nwc_health-8.1/plugins-scripts/Classes/IFMIB/Component/StackSubsystem.pm
 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/IFMIB/Component/StackSubsystem.pm
--- 
old/check_nwc_health-8.1/plugins-scripts/Classes/IFMIB/Component/StackSubsystem.pm
  2021-01-18 21:21:46.335755100 +0100
+++ 
new/check_nwc_health-8.3.1.1/plugins-scripts/Classes/IFMIB/Component/StackSubsystem.pm
      2021-03-02 21:19:16.941616200 +0100
@@ -14,7 +14,10 @@
   } elsif (scalar(@selected_indices)) {
     @selected_indices = map { $_->[0] } @selected_indices;
   } else {
+    # none of the desired interfaces was found. we exit here, otherwise we
+    # might find crap resulting in "uninitialized value...." (which happened)
     @selected_indices = ();
+    return;
   }
   $self->get_snmp_tables("IFMIB", [
       ['stacks', 'ifStackTable', 
'Classes::IFMIB::Component::StackSubsystem::Relationship'],
@@ -107,7 +110,13 @@
 
 sub check {
   my ($self) = @_;
- my @selected_interfaces = sort {
+  if (! $self->{interfaces}) {
+    # see beginning of init(). For example --name channel --regex
+    # finds no interface of this name
+    $self->add_unknown('no interfaces');
+    return;
+  }
+  my @selected_interfaces = sort {
       $a->{ifIndex} <=> $b->{ifIndex}
   } grep {
       exists $_->{lower_interfaces}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Makefile.am 
new/check_nwc_health-8.3.1.1/plugins-scripts/Makefile.am
--- old/check_nwc_health-8.1/plugins-scripts/Makefile.am        2021-01-18 
21:21:47.241734100 +0100
+++ new/check_nwc_health-8.3.1.1/plugins-scripts/Makefile.am    2021-03-02 
21:19:17.881333200 +0100
@@ -57,6 +57,7 @@
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBRNDMNGMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBSYSMNGMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBTUNINGMIB.pm \
+  ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSTACKMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSTACKWISEMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSYSTEMEXTMIB.pm \
@@ -164,17 +165,22 @@
   Classes/Bintec/Bibo/Components/CpuSubsystem.pm \
   Classes/Bintec/Bibo.pm \
   Classes/Bintec.pm \
-  Classes/Bluecat/Component/MgmtSubsystem.pm \
-  Classes/Bluecat/Component/ProcessSubsystem.pm \
-  Classes/Bluecat/Component/MemSubsystem.pm \
-  Classes/Bluecat/Component/HaSubsystem.pm \
+  Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm \
+  Classes/Bluecat/AddressManager/Component/MemSubsystem.pm \
+  Classes/Bluecat/AddressManager/Component/HaSubsystem.pm \
+  Classes/Bluecat/AddressManager.pm \
+  Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm \
+  Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm \
+  Classes/Bluecat/DnsDhcpServer.pm \
   Classes/Bluecat.pm \
+  Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm \
   Classes/Cisco/CISCOBGP4MIB/Components/PeerSubsystem.pm \
   Classes/Cisco/CISCOEIGRPMIB/Components/PeerSubsystem.pm \
   Classes/Cisco/CISCOPORTSECURITYMIB/Component/InterfaceSubsystem.pm \
   Classes/Cisco/OLDCISCOINTERFACESMIB/Component/InterfaceSubsystem.pm \
   Classes/Cisco/CISCOIPSECFLOWMONITOR/Component/VpnSubsystem.pm \
   Classes/Cisco/CISCOENHANCEDMEMPOOLMIB/Component/MemSubsystem.pm \
+  Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm \
   Classes/Cisco/CISCOMEMORYPOOLMIB/Component/MemSubsystem.pm \
   Classes/Cisco/CISCOENTITYFRUCONTROLMIB/Component/EnvironmentalSubsystem.pm \
   Classes/Cisco/CISCOENTITYFRUCONTROLMIB/Component/FanSubsystem.pm \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/check_nwc_health-8.1/plugins-scripts/Makefile.in 
new/check_nwc_health-8.3.1.1/plugins-scripts/Makefile.in
--- old/check_nwc_health-8.1/plugins-scripts/Makefile.in        2021-01-18 
21:21:47.251734900 +0100
+++ new/check_nwc_health-8.3.1.1/plugins-scripts/Makefile.in    2021-03-02 
21:19:17.892330900 +0100
@@ -299,6 +299,7 @@
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBRNDMNGMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBSYSMNGMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSBTUNINGMIB.pm \
+  ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSMARTLICMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSTACKMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSTACKWISEMIB.pm \
   ../GLPlugin/lib/Monitoring/GLPlugin/SNMP/MibsAndOids/CISCOSYSTEMEXTMIB.pm \
@@ -407,17 +408,22 @@
   Classes/Bintec/Bibo/Components/CpuSubsystem.pm \
   Classes/Bintec/Bibo.pm \
   Classes/Bintec.pm \
-  Classes/Bluecat/Component/MgmtSubsystem.pm \
-  Classes/Bluecat/Component/ProcessSubsystem.pm \
-  Classes/Bluecat/Component/MemSubsystem.pm \
-  Classes/Bluecat/Component/HaSubsystem.pm \
+  Classes/Bluecat/AddressManager/Component/MgmtSubsystem.pm \
+  Classes/Bluecat/AddressManager/Component/MemSubsystem.pm \
+  Classes/Bluecat/AddressManager/Component/HaSubsystem.pm \
+  Classes/Bluecat/AddressManager.pm \
+  Classes/Bluecat/DnsDhcpServer/Component/HaSubsystem.pm \
+  Classes/Bluecat/DnsDhcpServer/Component/ProcessSubsystem.pm \
+  Classes/Bluecat/DnsDhcpServer.pm \
   Classes/Bluecat.pm \
+  Classes/Cisco/CISCOSMARTLICMIB/Component/KeySubsystem.pm \
   Classes/Cisco/CISCOBGP4MIB/Components/PeerSubsystem.pm \
   Classes/Cisco/CISCOEIGRPMIB/Components/PeerSubsystem.pm \
   Classes/Cisco/CISCOPORTSECURITYMIB/Component/InterfaceSubsystem.pm \
   Classes/Cisco/OLDCISCOINTERFACESMIB/Component/InterfaceSubsystem.pm \
   Classes/Cisco/CISCOIPSECFLOWMONITOR/Component/VpnSubsystem.pm \
   Classes/Cisco/CISCOENHANCEDMEMPOOLMIB/Component/MemSubsystem.pm \
+  Classes/Cisco/CISCOPROCESSMIB/Component/MemSubsystem.pm \
   Classes/Cisco/CISCOMEMORYPOOLMIB/Component/MemSubsystem.pm \
   Classes/Cisco/CISCOENTITYFRUCONTROLMIB/Component/EnvironmentalSubsystem.pm \
   Classes/Cisco/CISCOENTITYFRUCONTROLMIB/Component/FanSubsystem.pm \

Reply via email to