From 4cee78a68ea039679a29129b0e1ee917852d805c Mon Sep 17 00:00:00 2001 From: christiansahlmann Date: Thu, 27 Jul 2023 12:48:47 +0000 Subject: [PATCH] save varbind error messages to dict --- mb_netmgmt/snmp.py | 9 ++++++++- test/test_mb_netmgmt.py | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/mb_netmgmt/snmp.py b/mb_netmgmt/snmp.py index d49e527..bc99b25 100644 --- a/mb_netmgmt/snmp.py +++ b/mb_netmgmt/snmp.py @@ -131,7 +131,14 @@ def to_dict(varbind): if varbind.value: val = decode(varbind.value.val) tag = str(varbind.value.tag) - return { + result = { "val": val, "tag": tag, } + if varbind.noSuchObject: + result["noSuchObject"] = 0 + if varbind.noSuchInstance: + result["noSuchInstance"] = 0 + if varbind.endOfMibView: + result["endOfMibView"] = 0 + return result diff --git a/test/test_mb_netmgmt.py b/test/test_mb_netmgmt.py index 4e7a46f..7a1f44e 100644 --- a/test/test_mb_netmgmt.py +++ b/test/test_mb_netmgmt.py @@ -9,7 +9,7 @@ import pytest from ncclient.transport.session import BASE_NS_1_0, to_ele from ncclient.transport.ssh import MSG_DELIM -from scapy.layers.snmp import SNMPvarbind +from scapy.layers.snmp import ASN1_NULL, SNMPvarbind from mb_netmgmt import mb, netconf, snmp, ssh, use_scalar_strings, yaml from mb_netmgmt.__main__ import create_server, get_cli_patterns @@ -256,6 +256,6 @@ def test_to_dict(): def test_no_such_instance_to_dict(): - varbind = SNMPvarbind(value=None, noSuchInstance=0) + varbind = SNMPvarbind(value=None, noSuchInstance=ASN1_NULL(0)) result = snmp.to_dict(varbind) - assert result == {"tag": None, "val": None} + assert result == {"tag": None, "val": None, "noSuchInstance": 0}