summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2011-01-22 22:02:28 +0000
committerelie <elie>2011-01-22 22:02:28 +0000
commit5e59152ba3f89ef7443716d1cc0edb429984d1c2 (patch)
tree11eabdc7807f108546023d185183f9fad31d2783
parent196a0b4e59681708011eadbcb998c3be7ecbd67b (diff)
downloadpysnmp-5e59152ba3f89ef7443716d1cc0edb429984d1c2.tar.gz
for read queries, do not lookup pure OID arguments at MIB for efficiency
-rw-r--r--pysnmp/entity/rfc3413/oneliner/cmdgen.py36
1 files changed, 17 insertions, 19 deletions
diff --git a/pysnmp/entity/rfc3413/oneliner/cmdgen.py b/pysnmp/entity/rfc3413/oneliner/cmdgen.py
index c662ff1..9fb70b4 100644
--- a/pysnmp/entity/rfc3413/oneliner/cmdgen.py
+++ b/pysnmp/entity/rfc3413/oneliner/cmdgen.py
@@ -240,20 +240,28 @@ class AsynCommandGenerator:
)
self.__knownTransportAddrs.clear()
+ def makeReadVarBinds(self, varNames):
+ varBinds = []
+ for varName in varNames:
+ if type(varName[0]) in (types.IntType, types.LongType):
+ name = varName
+ else:
+ name, oid = mibvar.mibNameToOid(
+ self.mibViewController, varName
+ )
+ name = name + oid
+ varBinds.append((name, self._null))
+ return varBinds
+
# Async SNMP apps
-
+
def asyncGetCmd(
self, authData, transportTarget, varNames, (cbFun, cbCtx)
):
addrName, paramsName = self.cfgCmdGen(
authData, transportTarget
)
- varBinds = []
- for varName in varNames:
- name, oid = mibvar.mibNameToOid(
- self.mibViewController, varName
- )
- varBinds.append((name + oid, self._null))
+ varBinds = self.makeReadVarBinds(varNames)
return cmdgen.GetCommandGenerator().sendReq(
self.snmpEngine, addrName, varBinds, cbFun, cbCtx,
authData.contextEngineId, authData.contextName
@@ -294,12 +302,7 @@ class AsynCommandGenerator:
addrName, paramsName = self.cfgCmdGen(
authData, transportTarget
)
- varBinds = []
- for varName in varNames:
- name, oid = mibvar.mibNameToOid(
- self.mibViewController, varName
- )
- varBinds.append((name + oid, self._null))
+ varBinds = self.makeReadVarBinds(varNames)
return cmdgen.NextCommandGenerator().sendReq(
self.snmpEngine, addrName, varBinds, cbFun, cbCtx,
authData.contextEngineId, authData.contextName
@@ -312,12 +315,7 @@ class AsynCommandGenerator:
addrName, paramsName = self.cfgCmdGen(
authData, transportTarget
)
- varBinds = []
- for varName in varNames:
- name, oid = mibvar.mibNameToOid(
- self.mibViewController, varName
- )
- varBinds.append((name + oid, self._null))
+ varBinds = self.makeReadVarBinds(varNames)
return cmdgen.BulkCommandGenerator().sendReq(
self.snmpEngine, addrName,
nonRepeaters, maxRepetitions, varBinds, cbFun, cbCtx,