From 17b61e133555249a9b1ec0ab2bc6b99a3026d988 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Sat, 5 Aug 2023 11:04:23 +0200
Subject: [PATCH] update project

---
 README.md                      |   1 +
 agent_based/snmp_uptime.py     |  24 ++++++++++++------------
 packages/snmp_uptime           |   9 ++++-----
 snmp_uptime-0.0.2-20230805.mkp | Bin 0 -> 1977 bytes
 snmp_uptime.mkp                | Bin 1980 -> 0 bytes
 5 files changed, 17 insertions(+), 17 deletions(-)
 create mode 100644 snmp_uptime-0.0.2-20230805.mkp
 delete mode 100644 snmp_uptime.mkp

diff --git a/README.md b/README.md
index b52f8a2..2f7d00c 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+[PACKAGE]: ../../raw/master/snmp_uptime-0.0.2-20230805.mkp "snmp_uptime-0.0.2-20230805.mkp"
 # SNMP uptime
 
 This check is based on the snmp_uptime check form CMK. It adds the SNMP-FRAMEWORK-MIB::snmpEngineTime OID to the check. Its value is in seconds not ticks and therefore the Uptime can now be around 68 years before a rollover of the counter :-)
diff --git a/agent_based/snmp_uptime.py b/agent_based/snmp_uptime.py
index 10c5a1f..41e0273 100644
--- a/agent_based/snmp_uptime.py
+++ b/agent_based/snmp_uptime.py
@@ -14,7 +14,7 @@
 # 2022-03-06: extended to use snmpEngineTime if available
 # 2022-03-07: fixed if snmpEngineTime == 0
 # 2022-03-08: renamed to snmp_uptime_extended to avoid caching issues with the original check
-#
+# 2023-08-05: made parse function more stable (try/except/else)
 
 from typing import Optional
 
@@ -35,22 +35,23 @@ def parse_snmp_uptime_extended(string_table: StringTable) -> Optional[uptime.Sec
     Section(uptime_sec=313671, message=None)
 
     """
-    if not string_table:
-        return None
-
-    sysUpTime, hrSystemUptime, snmpEngineTime = string_table[0]
+    try:
+        sysUpTime, hrSystemUptime, snmpEngineTime = string_table[0]
+    except ValueError:
+        return
 
     ticks = sysUpTime or hrSystemUptime
 
     if len(ticks) < 3:
-        return None
+        return
 
     try:
         value = int(snmpEngineTime)
-        if value > 0:
-            return uptime.Section(int(snmpEngineTime), None)
     except ValueError:
         pass
+    else:
+        if value > 0:
+            return uptime.Section(int(snmpEngineTime), None)
 
     try:
         return uptime.Section(int(ticks[:-2]), None)
@@ -59,14 +60,13 @@ def parse_snmp_uptime_extended(string_table: StringTable) -> Optional[uptime.Sec
 
     try:
         days, h, m, s = ticks.split(":")
+    except ValueError:
+        pass
+    else:
         return uptime.Section(
             (int(days) * 86400) + (int(h) * 3600) + (int(m) * 60) + int(float(s)),
             None,
         )
-    except ValueError:
-        pass
-
-    return None
 
 
 register.snmp_section(
diff --git a/packages/snmp_uptime b/packages/snmp_uptime
index b8c3394..922b4a0 100644
--- a/packages/snmp_uptime
+++ b/packages/snmp_uptime
@@ -7,9 +7,8 @@
  'download_url': 'https://thl-cmk.hopto.org',
  'files': {'agent_based': ['snmp_uptime.py']},
  'name': 'snmp_uptime',
- 'num_files': 1,
  'title': 'SNMP Uptime',
- 'version': '20220306.v0.0.1',
- 'version.min_required': '2021.09.20',
- 'version.packaged': '2021.09.20',
- 'version.usable_until': None}
\ No newline at end of file
+ 'version': '0.0.2-20230805',
+ 'version.min_required': '2.0.0b1',
+ 'version.packaged': '2.2.0p7',
+ 'version.usable_until': None}
diff --git a/snmp_uptime-0.0.2-20230805.mkp b/snmp_uptime-0.0.2-20230805.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..ffdf984d70cb9990bdfd1b177ceeae986a5f4984
GIT binary patch
literal 1977
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
L6Jc~G08jt`x(MXA

literal 0
HcmV?d00001

diff --git a/snmp_uptime.mkp b/snmp_uptime.mkp
deleted file mode 100644
index 816516f34f3d5b449efca0eb7d6cd2c579fbc189..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1980
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
O3-}v7Qy&HZPyhhL%-wYW

-- 
GitLab