From 8461b1a948d36ca3198d21842c40a761fffb2bb7 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Tue, 8 Mar 2022 19:02:42 +0100
Subject: [PATCH] update project

---
 agent_based/snmp_uptime.py |  20 ++++++++++++--------
 snmp_uptime.mkp            | Bin 1907 -> 1978 bytes
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/agent_based/snmp_uptime.py b/agent_based/snmp_uptime.py
index 111a697..10c5a1f 100644
--- a/agent_based/snmp_uptime.py
+++ b/agent_based/snmp_uptime.py
@@ -4,7 +4,6 @@
 # This file is part of Checkmk (https://checkmk.com). It is subject to the terms and
 # conditions defined in the file COPYING, which is part of this source code package.
 
-# 2022-03-06: extended to use snmpEngineTime if available
 # snmpEngineTime : The number of seconds since the value of the snmpEngineBoots object last changed. When
 #                  incrementing this object's value would cause it to exceed its maximum, snmpEngineBoots is
 #                  incremented as if a re-initialization had occurred, and this object's value consequently
@@ -12,6 +11,10 @@
 # snmpEngineBoots: The number of times that the SNMP engine has (re-)initialized itself since snmpEngineID was
 #                  last configured. On Cisco Device this gives the number of reboots
 #
+# 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
+#
 
 from typing import Optional
 
@@ -20,15 +23,15 @@ from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import StringTabl
 from cmk.base.plugins.agent_based.utils import uptime
 
 
-def parse_snmp_uptime(string_table: StringTable) -> Optional[uptime.Section]:
+def parse_snmp_uptime_extended(string_table: StringTable) -> Optional[uptime.Section]:
     """
-    >>> parse_snmp_uptime([['2297331594', '', '']])
+    >>> parse_snmp_uptime_extended([['2297331594', '', '']])
     Section(uptime_sec=22973315, message=None)
-    >>> parse_snmp_uptime([['124:21:26:42.03', '124:21:29:01.14', '']])
+    >>> parse_snmp_uptime_extended([['124:21:26:42.03', '124:21:29:01.14', '']])
     Section(uptime_sec=10790941, message=None)
-    >>> None is parse_snmp_uptime([[u'', u'Fortigate 80C', 'Whatever']])  # nonsense
+    >>> None is parse_snmp_uptime_extended([[u'', u'Fortigate 80C', 'Whatever']])  # nonsense
     True
-    >>> parse_snmp_uptime([['2297331594', '', '313671']])
+    >>> parse_snmp_uptime_extended([['2297331594', '', '313671']])
     Section(uptime_sec=313671, message=None)
 
     """
@@ -67,9 +70,10 @@ def parse_snmp_uptime(string_table: StringTable) -> Optional[uptime.Section]:
 
 
 register.snmp_section(
-    name="snmp_uptime",
+    name="snmp_uptime_extended",
     parsed_section_name="uptime",
-    parse_function=parse_snmp_uptime,
+    parse_function=parse_snmp_uptime_extended,
+    supersedes=['snmp_uptime'],
     fetch=SNMPTree(
         base=".1.3.6.1",
         oids=[
diff --git a/snmp_uptime.mkp b/snmp_uptime.mkp
index 4070253ad883f660bc8e432f1fdb528b4aef1ecb..4dd7410995c1bfdea7f0628ea401095e824384b1 100644
GIT binary patch
delta 1965
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

delta 1893
zcmb8ci6hes003Z2St?uVMMWBKWAQ>rFHGcGxn^$RjhP}Fk(E9Dk}Go`(Ofl?BXX<6
z966pN@euW@H#SGi)od}x_Wp+VeQzNfaxyB(VDKsjo+$$da3r?X(GP+5d)sG0qY6r2
zpttL<mR`v7VfbW?!>6#8N6r&sLYBSXwj$`Y+bkBXS^3sGcu;NLQfYJ!*nI@0XT*&r
z-0BPTTRYgjk54h#IPgit-}M1TxWeM86^eD@p2<`=lSoc~L(zWVyy$4IA?{HfO5VA;
z-eL7*DIUm3eV|V~{=q9zU!b~bF|eXDp_aMi{^-k$^LNazS*{FkwN#`_CjQ#6^aw%M
zvSeQ>@xY(7II4Zpw1u_?#@HhbTW5QNsC)E0tX#qL2rEqab`6?g^=cGcjtwaD_4R4v
z?yieklN;0B)_|q!g@B5*&Aq;bl<`w|<|V+c3DBABi)l<AwdlWy(U(_x(=uw&_}w)#
z!y&Au6slmLrNX;$MUFtmo0F|HEM@g}YWwpO<c}8(Lz0e#X}LPf>kj!z8QDGG&}4N<
z#UhH>X@98}reRO`qZB-~T|z@MNU@F3YriSM7W$(4{9be(`Wa&1a=PHp?ll}E=T=|~
z5l9hPgr7znLtj%keApp7%xrGv0pZex+$VhFgMIR@3|`SsZx*?g$nt2Zqxc9LvUO0o
z{LLKnQMrGj(kRPY#NJyctX@O6u!u@obzS8vY{hwwQ|R_Waj$|DXpej!`%s*`y(V1E
z6;W0*NdmDYzoU2&FgYVw5On;D5M%+nf!Qc)k*NdM)Zvpjfhr!f+kcgsirgyoW7K0j
z>K<B<q)*+4a9z4;V*kj#v}E9vTLVkN1S)A)>ZL8@C%L`qX^Chq8E(0Gt}UR-Jl`|~
z<4UMw-&FGNw?xLkM$QV{62|NnpF!K(L^~$CJ|6+rX0@mT{6dxA%k3af07io-2qf8A
z`DZk#QS1%b6j!i-fjxCRDXZb`cHFn{sSc-Q@xmDw-XHI_B<D06u3ypXY;BGn6PAJE
zNrPL)XDW;D_{@M)o>J#L8-(WB^EZ>XYRI-t_@hfI*@gqN)?+Y|heb<?<h^iVOdGv$
zPzSL#hJIhdKItL6954tN=E^NA<<ckILmldy)L)l+IDgbQ6<R0OF##!7Met6gM*J;z
zIn3U6SjK5tTJeH9)pqevR3b7Gd?UcP$cMQzx689D`1+fBlZMfxVyb*)N*&t)IdHH9
z3v#WlQGWd;Y)6v5na@M6KiqT<2(hoU!|BP_m>>6l8AtPS1GxhR@nbaG22sfk?_(Uy
zWJUG6i_a~&^|U=E)bmK@OC!0*2?&i@$694xnAz`lqokkZ=u1W?+P%-svm;e}9VoKl
zAe$`S$PyaRYiiUJAUE{gku3e2rqq~9^`b7mBTWm6HcIIx#Ody+^_aktp>Ml2uELvC
zSK6*oloU!W%zzFl{Ew(SZ8RMoV{>NOwBndOd>GNcqR(i@F-|Nc60;rs<zUFMI2$hr
zop9jU4=vW?!-f&h$TJ`20*zF+Qiicf1-E+#kl4&KwTo2R%lJDVK2r&Ms|bCxx?)&J
zhid^k6Uy{q->=6br~BH@r$#C+DAY51{8qF$$E2J9`<DB8?djd{a95u$^EKMoi^J{n
z>+yrH20Bwq`J}%uLDiJIe>la*29HXhI&?R8H&T%L84zqE8(a190R+M*;W%M}&UPD5
z+9>DjHQ6l8!c4l`;=H><q(O|%He%%zcYb4b7B90A`e}WS!yrx>8Lt}rQ;HK=GjeI!
zdVql*N4Id?4EGHYs)uwRmGHH1Dvq2HGCMb=I#l@6^zvjBmCorDDAjHjdfin-MW$2!
zE&s}{z21Mi#UTuHlOtoJUyzue<+h64-T|viLXK?1@hYd2rhB@c!kC%Jy{da$^B*W)
zv8NTGp804H6?0=+?RvmaaKV*Y?7%P()aViP5~YQ4{(^_qPKElaf6m5Gydq?N8KfHx
zf*Y)RyAmFOTP$5P*;FLy<j!$nZp70^SBC`iL5M&Q)cRX>-$YcMB=7xl+#9o(XTuX(
zqk;{|q0IyHX_xo;2J!TqiqXi~gzyt*o7MUqT6GVe-meVsY3IsjPEG_$7C-<BNT}13
z=GkX!$TedMY_%R&Kk3h?vuuaeZm;u4RmH<r3Ku6<@~q^Q77JKg;rr89GMKJa-t?a5
zAy%Sys+z67niC&&%Pk+r{<W}eCa7%B#h`OOevK@onY>aQaUyE%PfznF7%(n*9+Jhd
zemx|JbR-*>bNN4>cXsdVDg%Oas_{6L;7PB(af<voT(EgXw4+V(KpI56_05tKmoSQ(
z(<axY$2=<YiZH^^Hz0@03&xS*JSx?(*kz<>>Wj_p_U<;jb?C$Ak-$7dVO0qmY+C$S
z*pCq1y%Rlt4~UEw%<L_GzH{LYx6^HY6XrT%K%cL93OEQlbp{(;ideze7r1O04>)o1
db%X5h6|u1I^k_Kl|I6fv7lXceN;pbL{09=kyRQHM

-- 
GitLab