diff options
author | elie <elie> | 2006-06-14 22:07:03 +0000 |
---|---|---|
committer | elie <elie> | 2006-06-14 22:07:03 +0000 |
commit | 255aa8b400c223ba6165fb3100d55fe8fe070555 (patch) | |
tree | d0fa866378655dbbcfed247ba8c252d0bc041ae8 /pysnmp/smi/view.py | |
parent | 023548a09ea6e6380de09de761c8695233512139 (diff) | |
download | pysnmp-git-255aa8b400c223ba6165fb3100d55fe8fe070555.tar.gz |
getNodeName() fix to take MIB module name into account (SF bug #1505847)
Diffstat (limited to 'pysnmp/smi/view.py')
-rw-r--r-- | pysnmp/smi/view.py | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/pysnmp/smi/view.py b/pysnmp/smi/view.py index 3dedea9e..2a5d2390 100644 --- a/pysnmp/smi/view.py +++ b/pysnmp/smi/view.py @@ -212,33 +212,21 @@ class MibViewController: return self.getNodeNameByOid(oid, modName) def getNodeName(self, nodeName, modName=''): - if modName: + # nodeName may be either an absolute OID/label or a + # ( MIB-symbol, su, ff, ix) + try: + # First try nodeName as an OID/label + return self.getNodeNameByOid(nodeName, modName) + except error.NoSuchObjectError: + # ...on failure, try as MIB symbol oid, label, suffix = self.getNodeNameByDesc( nodeName[0], modName ) - if len(nodeName) == 1: - return oid, label, suffix - else: - return self.getNodeNameByOid( + # ...with trailing suffix + return self.getNodeNameByOid( oid + suffix + nodeName[1:], modName ) - else: - try: - return self.getNodeNameByOid(nodeName) - except error.NoSuchObjectError: - oid, label, suffix = self.getNodeNameByDesc(nodeName[0]) - if len(nodeName) == 1: - return oid, label, suffix - else: - return self.getNodeNameByOid( - oid + suffix + nodeName[1:], modName - ) - -# if type(nodeName) == TupleType: -# return self.getNodeNameByOid(nodeName, modName) -# else: -# return self.getNodeNameByDesc(nodeName, modName) - + def getFirstNodeName(self, modName=''): self.__indexMib() mibMod = self.__mibSymbolsIdx.get(modName) @@ -257,8 +245,7 @@ class MibViewController: oid, label, suffix = self.getNodeName(nodeName, modName) try: return self.getNodeName( - self.__mibSymbolsIdx[modName]['oidToLabelIdx'].nextKey(oid) + suffix, - modName + self.__mibSymbolsIdx[modName]['oidToLabelIdx'].nextKey(oid) + suffix, modName ) except KeyError: raise error.NoSuchObjectError( |