From 255aa8b400c223ba6165fb3100d55fe8fe070555 Mon Sep 17 00:00:00 2001 From: elie Date: Wed, 14 Jun 2006 22:07:03 +0000 Subject: getNodeName() fix to take MIB module name into account (SF bug #1505847) --- pysnmp/smi/view.py | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) (limited to 'pysnmp/smi/view.py') 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( -- cgit v1.2.1