summaryrefslogtreecommitdiff
path: root/pysnmp
diff options
context:
space:
mode:
authorelie <elie>2012-07-20 16:39:26 +0000
committerelie <elie>2012-07-20 16:39:26 +0000
commita616c46fcfba0c5d561a5a802cadac2ca3022658 (patch)
treeb6ca8f69bc8ff3ac4b694e5e3bb8fa89645611f8 /pysnmp
parent9e2271e4c83b503708a1f6edae0860bde1669cd2 (diff)
downloadpysnmp-a616c46fcfba0c5d561a5a802cadac2ca3022658.tar.gz
explicitly override tree walking methods of MibTree derivatives
to handle and emit either NoSuchInstanceError or NoSuchObjectError depending of the role of the object
Diffstat (limited to 'pysnmp')
-rw-r--r--pysnmp/smi/mibs/SNMPv2-SMI.py36
1 files changed, 24 insertions, 12 deletions
diff --git a/pysnmp/smi/mibs/SNMPv2-SMI.py b/pysnmp/smi/mibs/SNMPv2-SMI.py
index 95ecbc6..045ec8b 100644
--- a/pysnmp/smi/mibs/SNMPv2-SMI.py
+++ b/pysnmp/smi/mibs/SNMPv2-SMI.py
@@ -429,6 +429,18 @@ class MibScalar(MibTree):
# Missing branches are indicated by the NoSuchInstanceError exception.
#
+ def getBranch(self, name, idx):
+ try:
+ return MibTree.getBranch(self, name, idx)
+ except (error.NoSuchInstanceError, error.NoSuchObjectError):
+ raise error.NoSuchInstanceError(idx=idx, name=name)
+
+ def getNextBranch(self, name, idx=None):
+ try:
+ return MibTree.getNextBranch(self, name, idx)
+ except (error.NoSuchInstanceError, error.NoSuchObjectError):
+ raise error.NoSuchInstanceError(idx=idx, name=name)
+
def getNode(self, name, idx=None):
try:
return MibTree.getNode(self, name, idx)
@@ -511,6 +523,18 @@ class MibScalarInstance(MibTree):
# Missing branches are indicated by the NoSuchInstanceError exception.
#
+ def getBranch(self, name, idx):
+ try:
+ return MibTree.getBranch(self, name, idx)
+ except (error.NoSuchInstanceError, error.NoSuchObjectError):
+ raise error.NoSuchInstanceError(idx=idx, name=name)
+
+ def getNextBranch(self, name, idx=None):
+ try:
+ return MibTree.getNextBranch(self, name, idx)
+ except (error.NoSuchInstanceError, error.NoSuchObjectError):
+ raise error.NoSuchInstanceError(idx=idx, name=name)
+
def getNode(self, name, idx=None):
# Recursion terminator
if name == self.name:
@@ -650,18 +674,6 @@ class MibTableColumn(MibScalar):
return self._vars[name]
raise error.NoSuchInstanceError(name=name, idx=idx)
- def getNode(self, name, idx=None):
- try:
- return MibScalar.getNode(self, name, idx)
- except error.NoSuchInstanceError:
- raise error.NoSuchInstanceError(idx=idx, name=name)
-
- def getNextNode(self, name, idx=None):
- try:
- return MibScalar.getNextNode(self, name, idx)
- except error.NoSuchInstanceError:
- raise error.NoSuchInstanceError(idx=idx, name=name)
-
def setProtoInstance(self, protoInstance):
self.protoInstance = protoInstance