summaryrefslogtreecommitdiff
path: root/pysnmp/smi/view.py
diff options
context:
space:
mode:
authorelie <elie>2006-06-14 22:07:03 +0000
committerelie <elie>2006-06-14 22:07:03 +0000
commit255aa8b400c223ba6165fb3100d55fe8fe070555 (patch)
treed0fa866378655dbbcfed247ba8c252d0bc041ae8 /pysnmp/smi/view.py
parent023548a09ea6e6380de09de761c8695233512139 (diff)
downloadpysnmp-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.py35
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(