diff options
author | elie <elie> | 2007-03-25 20:41:32 +0000 |
---|---|---|
committer | elie <elie> | 2007-03-25 20:41:32 +0000 |
commit | 3b659ebfb855b1525306b29bd484bf3814daea8c (patch) | |
tree | 5838b8454601d332bf6f4e6f5159834035522b6d | |
parent | f87c03426c0e526556fe48756f13a0c29edfc9e9 (diff) | |
download | pysnmp-3b659ebfb855b1525306b29bd484bf3814daea8c.tar.gz |
automatically initialize index values on table management operation
-rw-r--r-- | pysnmp/smi/mibs/SNMPv2-SMI.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/pysnmp/smi/mibs/SNMPv2-SMI.py b/pysnmp/smi/mibs/SNMPv2-SMI.py index b4b850c..0b9e96d 100644 --- a/pysnmp/smi/mibs/SNMPv2-SMI.py +++ b/pysnmp/smi/mibs/SNMPv2-SMI.py @@ -850,11 +850,24 @@ class MibTableRow(MibTree): def __manageColumns(self, action, excludeName, nameSuffix, val, idx, (acFun, acCtx)): + # Build a map of index names and values for automatic initialization + indexVals = {}; instId = nameSuffix + for impliedFlag, modName, symName in self.indexNames: + mibObj, = mibBuilder.importSymbols(modName, symName) + syntax, instId = self.setFromName( + mibObj.syntax, instId, impliedFlag + ) + indexVals[mibObj.name] = syntax for name, var in self._vars.items(): if name == excludeName: continue - getattr(var, action)(name + nameSuffix, val, idx, (acFun, acCtx)) - debug.logger & debug.flagIns and debug.logger('__manageColumns: action %s name %s suffix %s value %s' % (action, name, nameSuffix, val)) + if indexVals.has_key(name): + getattr(var, action)(name + nameSuffix, indexVals[name], idx, + (None, None)) + else: + getattr(var, action)(name + nameSuffix, val, idx, + (acFun, acCtx)) + debug.logger & debug.flagIns and debug.logger('__manageColumns: action %s name %s suffix %s %svalue %s' % (action, name, nameSuffix, indexVals.has_key(name) and "index " or "", indexVals.get(name, val))) def __delegate(self, subAction, name, val, idx, (acFun, acCtx)): # Relay operation request to column, expect row operation request. |