Module: check_mk
Branch: master
Commit: e30ac224cea22c31a620d449ce0bcfe97649a9bb
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e30ac224cea22c…
Author: Andreas Boesl <ab(a)mathias-kettner.de>
Date: Mon Jul 4 11:00:21 2016 +0200
3552 FIX SNMPv3: Fixed login with security level noAuthNoPriv
---
.werks/3552 | 9 +++++++++
ChangeLog | 1 +
modules/check_mk.py | 4 +++-
web/plugins/wato/builtin_attributes.py | 26 +++++++++++++++++---------
4 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/.werks/3552 b/.werks/3552
new file mode 100644
index 0000000..7ff0642
--- /dev/null
+++ b/.werks/3552
@@ -0,0 +1,9 @@
+Title: SNMPv3: Fixed login with security level noAuthNoPriv
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.4.0i1
+Date: 1467622758
+Class: fix
+
+The security level noAuthNoPriv did never work.
diff --git a/ChangeLog b/ChangeLog
index 0925668..42d5122 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -295,6 +295,7 @@
* 3151 FIX: windows agent: further fix to crashes on failures to query wmi
* 3693 FIX: ups_eaton_enviroment: Fixed handling of dictionary-based parameters...
NOTE: Please refer to the migration notes!
+ * 3552 FIX: SNMPv3: Fixed login with security level noAuthNoPriv...
Multisite:
* 3187 notification view: new filter for log command via regex
diff --git a/modules/check_mk.py b/modules/check_mk.py
index 6a61d27..b5cb4b9 100755
--- a/modules/check_mk.py
+++ b/modules/check_mk.py
@@ -1661,8 +1661,10 @@ def snmp_base_command(what, hostname):
options = "-v3 -l '%s' -a '%s' -u '%s' -A
'%s' -x '%s' -X '%s'" % tuple(credentials)
elif len(credentials) == 4:
options = "-v3 -l '%s' -a '%s' -u '%s' -A
'%s'" % tuple(credentials)
+ elif len(credentials) == 2:
+ options = "-v3 -l '%s' -u '%s'" %
tuple(credentials)
else:
- raise MKGeneralException("Invalid SNMP credentials '%r' for host
%s: must be string, 4-tuple or 6-tuple" % (credentials, hostname))
+ raise MKGeneralException("Invalid SNMP credentials '%r' for host
%s: must be string, 2-tuple, 4-tuple or 6-tuple" % (credentials, hostname))
# Do not load *any* MIB files. This save lot's of CPU.
options += " -m '' -M ''"
diff --git a/web/plugins/wato/builtin_attributes.py
b/web/plugins/wato/builtin_attributes.py
index 8cd9a17..6ed1be7 100644
--- a/web/plugins/wato/builtin_attributes.py
+++ b/web/plugins/wato/builtin_attributes.py
@@ -97,7 +97,7 @@ class SNMPCredentials(Alternative):
return x and (len(x) == 6 and 2 or len(x) == 4 and 1) or 0
else:
return type(x) == tuple and ( \
- len(x) == 1 and 1 or \
+ len(x) in [1, 2] and 1 or \
len(x) == 4 and 2 or 3) or 0
kwargs.update({
@@ -106,14 +106,22 @@ class SNMPCredentials(Alternative):
title = _("SNMP community (SNMP Versions 1 and 2c)"),
allow_empty = False,
),
- Tuple(
- title = _("Credentials for SNMPv3 without authentication and
privacy (noAuthNoPriv)"),
- elements = [
- FixedValue("noAuthNoPriv",
- title = _("Security Level"),
- totext = _("No authentication, no privacy"),
- ),
- ]
+ Transform(
+ Tuple(
+ title = _("Credentials for SNMPv3 without authentication and
privacy (noAuthNoPriv)"),
+ elements = [
+ FixedValue("noAuthNoPriv",
+ title = _("Security Level"),
+ totext = _("No authentication, no privacy"),
+ ),
+ TextAscii(
+ title = _("Security name"),
+ attrencode = True,
+ allow_empty = False
+ ),
+ ]
+ ),
+ forth = lambda x: len(x) == 2 and x or (x[0], "")
),
Tuple(
title = _("Credentials for SNMPv3 with authentication but
without privacy (authNoPriv)"),