summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2005-06-28 17:36:58 +0000
committerelie <elie>2005-06-28 17:36:58 +0000
commita3991b0bb452a647fa30869235e0c8e06e46b53d (patch)
tree9446588e4988c71585d75c8741370354141ac54f
parentb6d5d80fc8e9d0670d9877488e533e87658b7528 (diff)
downloadpysnmp-a3991b0bb452a647fa30869235e0c8e06e46b53d.tar.gz
more fixes to pretty printer code
-rw-r--r--pysnmp/entity/rfc3413/mibvar.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/pysnmp/entity/rfc3413/mibvar.py b/pysnmp/entity/rfc3413/mibvar.py
index 0821ca2..1d674b9 100644
--- a/pysnmp/entity/rfc3413/mibvar.py
+++ b/pysnmp/entity/rfc3413/mibvar.py
@@ -1,5 +1,6 @@
# MIB variable pretty printers/parsers
import types
+from pyasn1.type import univ
from pysnmp.smi.error import NoSuchInstanceError
# Name
@@ -7,9 +8,10 @@ from pysnmp.smi.error import NoSuchInstanceError
def instanceNameToOid(mibView, name):
if type(name[0]) == types.TupleType:
modName, symName = apply(lambda x='',y='': (x,y), name[0])
- if not modName:
- modName = mibView.getFirstModuleName()
- mibView.loadMissingModule(modName) # load module if needed
+ if modName: # load module if needed
+ mibView.mibBuilder.loadModules(modName)
+ else:
+ mibView.mibBuilder.loadModules() # load all (slow)
if symName:
oid, label, suffix = mibView.getNodeNameByDesc(symName, modName)
else:
@@ -28,21 +30,26 @@ def instanceNameToOid(mibView, name):
else: # scalar or incomplete spec
return oid, suffix
+__scalarSuffix = (univ.Integer(0),)
+
def oidToInstanceName(mibView, oid):
- oid, label, suffix = mibView.getNodeNameByOid(tuple(oid))
- modName, symName, __suffix = mibView.getNodeLocation(oid)
+ _oid, label, suffix = mibView.getNodeNameByOid(tuple(oid))
+ modName, symName, __suffix = mibView.getNodeLocation(_oid)
mibNode, = mibView.mibBuilder.importSymbols(
modName, symName
)
if hasattr(mibNode, 'getColumnInitializer'): # table column
- __modName, __symName, __s = mibView.getNodeLocation(oid[:-1])
+ __modName, __symName, __s = mibView.getNodeLocation(_oid[:-1])
rowNode, = mibView.mibBuilder.importSymbols(__modName, __symName)
return (symName, modName), rowNode.getIndicesFromInstId(suffix)
- elif not suffix or suffix == (0,): # scalar/identifier
+ elif not suffix: # scalar
return (symName, modName), suffix
+ elif suffix == (0,): # scalar
+ return (symName, modName), __scalarSuffix
else:
raise NoSuchInstanceError(
- str='No MIB info for %s (distant parent %s)' % (oid, mibNode)
+ str='No MIB info for %s (closest parent %s)' %
+ (oid, mibNode.name)
)
# Value