diff options
author | elie <elie> | 2012-07-20 16:39:26 +0000 |
---|---|---|
committer | elie <elie> | 2012-07-20 16:39:26 +0000 |
commit | a616c46fcfba0c5d561a5a802cadac2ca3022658 (patch) | |
tree | b6ca8f69bc8ff3ac4b694e5e3bb8fa89645611f8 | |
parent | 9e2271e4c83b503708a1f6edae0860bde1669cd2 (diff) | |
download | pysnmp-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
-rw-r--r-- | pysnmp/smi/mibs/SNMPv2-SMI.py | 36 |
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 |