diff options
author | elie <elie> | 2005-06-28 17:36:58 +0000 |
---|---|---|
committer | elie <elie> | 2005-06-28 17:36:58 +0000 |
commit | a3991b0bb452a647fa30869235e0c8e06e46b53d (patch) | |
tree | 9446588e4988c71585d75c8741370354141ac54f | |
parent | b6d5d80fc8e9d0670d9877488e533e87658b7528 (diff) | |
download | pysnmp-a3991b0bb452a647fa30869235e0c8e06e46b53d.tar.gz |
more fixes to pretty printer code
-rw-r--r-- | pysnmp/entity/rfc3413/mibvar.py | 23 |
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 |