summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2014-06-09 09:35:43 +0000
committerelie <elie>2014-06-09 09:35:43 +0000
commite95d7d81d2efde462171e0f45aceeec3009322d8 (patch)
tree6f9e5cee51956ab3379e51fa938560d8fa2fd1be
parent70caa4259ac547d412af41d6c00212a3c8ff1d3c (diff)
downloadpysnmp-e95d7d81d2efde462171e0f45aceeec3009322d8.tar.gz
ContextData container introduced to the newest (async) API
-rw-r--r--examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-snmp-engines.py1
-rw-r--r--examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-transports-and-protocols.py1
-rw-r--r--examples/v3arch/oneliner/agent/ntforg/trap-async-multiple-transports-and-protocols.py1
-rw-r--r--examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-snmp-engines.py2
-rw-r--r--examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-transports-and-protocols.py2
-rw-r--r--examples/v3arch/oneliner/manager/cmdgen/getnext-async-multiple-transports-and-protocols.py2
-rw-r--r--pysnmp/entity/rfc3413/oneliner/cmdgen.py57
-rw-r--r--pysnmp/entity/rfc3413/oneliner/ctx.py11
-rw-r--r--pysnmp/entity/rfc3413/oneliner/ntforg.py12
9 files changed, 54 insertions, 35 deletions
diff --git a/examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-snmp-engines.py b/examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-snmp-engines.py
index 6acaf28..bf04e67 100644
--- a/examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-snmp-engines.py
+++ b/examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-snmp-engines.py
@@ -77,6 +77,7 @@ for authData, transportTarget in targets:
context.SnmpContext(snmpEngine),
authData,
transportTarget,
+ ntforg.ContextData(),
'inform',
ntforg.MibVariable('SNMPv2-MIB', 'coldStart'),
( ( rfc1902.ObjectName('1.3.6.1.2.1.1.1.0'),
diff --git a/examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-transports-and-protocols.py b/examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-transports-and-protocols.py
index bc679d6..7d9b497 100644
--- a/examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-transports-and-protocols.py
+++ b/examples/v3arch/oneliner/agent/ntforg/inform-async-multiple-transports-and-protocols.py
@@ -49,6 +49,7 @@ for authData, transportTarget in targets:
context.SnmpContext(snmpEngine),
authData,
transportTarget,
+ cmdgen.ContextData(),
'inform',
ntforg.MibVariable('SNMPv2-MIB', 'coldStart'),
( ( rfc1902.ObjectName('1.3.6.1.2.1.1.1.0'),
diff --git a/examples/v3arch/oneliner/agent/ntforg/trap-async-multiple-transports-and-protocols.py b/examples/v3arch/oneliner/agent/ntforg/trap-async-multiple-transports-and-protocols.py
index c8f4246..1fdee69 100644
--- a/examples/v3arch/oneliner/agent/ntforg/trap-async-multiple-transports-and-protocols.py
+++ b/examples/v3arch/oneliner/agent/ntforg/trap-async-multiple-transports-and-protocols.py
@@ -37,6 +37,7 @@ for authData, transportTarget in targets:
context.SnmpContext(snmpEngine),
authData,
transportTarget,
+ ntforg.ContextData(),
'trap',
ntforg.MibVariable('SNMPv2-MIB', 'coldStart'),
( ( rfc1902.ObjectName('1.3.6.1.2.1.1.1.0'),
diff --git a/examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-snmp-engines.py b/examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-snmp-engines.py
index da9c515..8b5eec2 100644
--- a/examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-snmp-engines.py
+++ b/examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-snmp-engines.py
@@ -96,7 +96,7 @@ for authData, transportTarget, varBinds in targets:
snmpEngine = transportTarget.getTransportInfo()[1][1] % 3 and \
snmpEngineA or snmpEngineB
cmdGen.getCmd(
- snmpEngine, authData, transportTarget, varBinds,
+ snmpEngine, authData, transportTarget, cmdgen.ContextData(), varBinds,
(cbFun, (snmpEngine, authData, transportTarget))
)
diff --git a/examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-transports-and-protocols.py b/examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-transports-and-protocols.py
index fab37aa..2ff0438 100644
--- a/examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-transports-and-protocols.py
+++ b/examples/v3arch/oneliner/manager/cmdgen/get-async-multiple-transports-and-protocols.py
@@ -78,7 +78,7 @@ cmdGen = cmdgen.AsyncCommandGenerator()
# Submit GET requests
for authData, transportTarget, varNames in targets:
cmdGen.getCmd(
- snmpEngine, authData, transportTarget, varNames,
+ snmpEngine, authData, transportTarget, cmdgen.ContextData(), varNames,
# User-space callback function and its context
(cbFun, (authData, transportTarget)),
lookupNames=True, lookupValues=True
diff --git a/examples/v3arch/oneliner/manager/cmdgen/getnext-async-multiple-transports-and-protocols.py b/examples/v3arch/oneliner/manager/cmdgen/getnext-async-multiple-transports-and-protocols.py
index 73ce642..50bece9 100644
--- a/examples/v3arch/oneliner/manager/cmdgen/getnext-async-multiple-transports-and-protocols.py
+++ b/examples/v3arch/oneliner/manager/cmdgen/getnext-async-multiple-transports-and-protocols.py
@@ -80,7 +80,7 @@ cmdGen = cmdgen.AsyncCommandGenerator()
for authData, transportTarget, varNames in targets:
varBindHead = cmdGen.makeVarBindsHead(snmpEngine, varNames)
cmdGen.nextCmd(
- snmpEngine, authData, transportTarget, varNames,
+ snmpEngine, authData, transportTarget, cmdgen.ContextData(), varNames,
# User-space callback function and its context
(cbFun, (varBindHead, authData, transportTarget)),
lookupNames=True, lookupValues=True
diff --git a/pysnmp/entity/rfc3413/oneliner/cmdgen.py b/pysnmp/entity/rfc3413/oneliner/cmdgen.py
index cbad8c6..2b62da0 100644
--- a/pysnmp/entity/rfc3413/oneliner/cmdgen.py
+++ b/pysnmp/entity/rfc3413/oneliner/cmdgen.py
@@ -3,7 +3,8 @@ from pysnmp.entity.rfc3413 import cmdgen
from pysnmp.entity.rfc3413.oneliner.mibvar import MibVariable
from pysnmp.entity.rfc3413.oneliner.auth import CommunityData, UsmUserData
from pysnmp.entity.rfc3413.oneliner.target import UdpTransportTarget, \
- Udp6TransportTarget, UnixTransportTarget
+ Udp6TransportTarget, UnixTransportTarget
+from pysnmp.entity.rfc3413.oneliner.ctx import ContextData
from pysnmp.proto import rfc1905, errind
from pysnmp.smi import view
from pysnmp import nextid, error
@@ -256,9 +257,8 @@ class AsyncCommandGenerator:
# Async SNMP apps
- def getCmd(self, snmpEngine, authData, transportTarget, varNames, cbInfo,
- lookupNames=False, lookupValues=False,
- contextEngineId=None, contextName=null):
+ def getCmd(self, snmpEngine, authData, transportTarget, contextData,
+ varNames, cbInfo, lookupNames=False, lookupValues=False):
def __cbFun(sendRequestHandle,
errorIndication, errorStatus, errorIndex,
varBinds, cbCtx):
@@ -285,12 +285,11 @@ class AsyncCommandGenerator:
self.makeVarBinds(snmpEngine, [(x, self._null) for x in varNames]),
__cbFun,
(lookupNames, lookupValues, cbFun, cbCtx),
- contextEngineId, contextName
+ contextData.contextEngineId, contextData.contextName
)
- def setCmd(self, snmpEngine, authData, transportTarget, varBinds, cbInfo,
- lookupNames=False, lookupValues=False,
- contextEngineId=None, contextName=null):
+ def setCmd(self, snmpEngine, authData, transportTarget, contextData,
+ varBinds, cbInfo, lookupNames=False, lookupValues=False):
def __cbFun(sendRequestHandle,
errorIndication, errorStatus, errorIndex,
varBinds, cbCtx):
@@ -317,12 +316,11 @@ class AsyncCommandGenerator:
self.makeVarBinds(snmpEngine, varBinds),
__cbFun,
(lookupNames, lookupValues, cbFun, cbCtx),
- contextEngineId, contextName
+ contextData.contextEngineId, contextData.contextName
)
- def nextCmd(self, snmpEngine, authData, transportTarget, varNames, cbInfo,
- lookupNames=False, lookupValues=False,
- contextEngineId=None, contextName=null):
+ def nextCmd(self, snmpEngine, authData, transportTarget, contextData,
+ varNames, cbInfo, lookupNames=False, lookupValues=False):
def __cbFun(sendRequestHandle,
errorIndication, errorStatus, errorIndex,
varBindTable, cbCtx):
@@ -346,13 +344,12 @@ class AsyncCommandGenerator:
self.makeVarBinds(snmpEngine, [(x, self._null) for x in varNames]),
__cbFun,
(lookupNames, lookupValues, cbFun, cbCtx),
- contextEngineId, contextName
+ contextData.contextEngineId, contextData.contextName
)
- def bulkCmd(self, snmpEngine, authData, transportTarget,
+ def bulkCmd(self, snmpEngine, authData, transportTarget, contextData,
nonRepeaters, maxRepetitions, varNames, cbInfo,
- lookupNames=False, lookupValues=False,
- contextEngineId=None, contextName=null):
+ lookupNames=False, lookupValues=False):
def __cbFun(sendRequestHandle,
errorIndication, errorStatus, errorIndex,
varBindTable, cbCtx):
@@ -377,7 +374,7 @@ class AsyncCommandGenerator:
self.makeVarBinds(snmpEngine, [(x, self._null) for x in varNames]),
__cbFun,
(lookupNames, lookupValues, cbFun, cbCtx),
- contextEngineId, contextName
+ contextData.contextEngineId, contextData.contextName
)
# compatibility implementation, never use this class for new applications
@@ -432,8 +429,10 @@ class AsynCommandGenerator:
contextName = authData.contextName
return self.__asyncCmdGen.getCmd(
- self.snmpEngine, authData, transportTarget, varNames, cbInfo,
- lookupNames, lookupValues, contextEngineId, contextName
+ self.snmpEngine,
+ authData, transportTarget,
+ ContextData(contextEngineId, contextName), varNames, cbInfo,
+ lookupNames, lookupValues
)
asyncGetCmd = getCmd
@@ -447,8 +446,10 @@ class AsynCommandGenerator:
contextName = authData.contextName
return self.__asyncCmdGen.setCmd(
- self.snmpEngine, authData, transportTarget, varBinds, cbInfo,
- lookupNames, lookupValues, contextEngineId, contextName
+ self.snmpEngine,
+ authData, transportTarget,
+ ContextData(contextEngineId, contextName), varBinds, cbInfo,
+ lookupNames, lookupValues
)
asyncSetCmd = setCmd
@@ -462,8 +463,10 @@ class AsynCommandGenerator:
contextName = authData.contextName
return self.__asyncCmdGen.nextCmd(
- self.snmpEngine, authData, transportTarget, varNames, cbInfo,
- lookupNames, lookupValues, contextEngineId, contextName
+ self.snmpEngine,
+ authData, transportTarget,
+ ContextData(contextEngineId, contextName), varNames, cbInfo,
+ lookupNames, lookupValues
)
asyncNextCmd = nextCmd
@@ -478,9 +481,11 @@ class AsynCommandGenerator:
contextName = authData.contextName
return self.__asyncCmdGen.bulkCmd(
- self.snmpEngine, authData, transportTarget,
- nonRepeaters, maxRepetitions, varNames, cbInfo,
- lookupNames, lookupValues, contextEngineId, contextName
+ self.snmpEngine,
+ authData, transportTarget,
+ nonRepeaters, maxRepetitions,
+ ContextData(contextEngineId, contextName), varNames, cbInfo,
+ lookupNames, lookupValues
)
asyncBulkCmd = bulkCmd
diff --git a/pysnmp/entity/rfc3413/oneliner/ctx.py b/pysnmp/entity/rfc3413/oneliner/ctx.py
new file mode 100644
index 0000000..3449912
--- /dev/null
+++ b/pysnmp/entity/rfc3413/oneliner/ctx.py
@@ -0,0 +1,11 @@
+from pyasn1.compat.octets import null
+
+class ContextData:
+ def __init__(self, contextEngineId=None, contextName=null):
+ self.contextEngineId = contextEngineId
+ self.contextName = contextName
+
+ def __repr__(self):
+ return '%s(contextEngineId=%r, contextName=%r)' % (
+ self.__class__.__name__, self.contextEngineId, self.contextName
+ )
diff --git a/pysnmp/entity/rfc3413/oneliner/ntforg.py b/pysnmp/entity/rfc3413/oneliner/ntforg.py
index 6e933c5..b65f2e1 100644
--- a/pysnmp/entity/rfc3413/oneliner/ntforg.py
+++ b/pysnmp/entity/rfc3413/oneliner/ntforg.py
@@ -6,6 +6,7 @@ from pysnmp.entity.rfc3413.oneliner.mibvar import MibVariable
from pysnmp.entity.rfc3413.oneliner.auth import CommunityData, UsmUserData
from pysnmp.entity.rfc3413.oneliner.target import UdpTransportTarget, \
Udp6TransportTarget, UnixTransportTarget
+from pysnmp.entity.rfc3413.oneliner.ctx import ContextData
from pysnmp.entity.rfc3413.oneliner import cmdgen
# Auth protocol
@@ -113,13 +114,12 @@ class AsyncNotificationOriginator(cmdgen.AsyncCommandGenerator):
del cache['auth'][authDataKey]
def sendNotification(self, snmpEngine, snmpContext,
- authData, transportTarget,
+ authData, transportTarget, contextData,
notifyType,
notificationType, instanceIndex,
varBinds=(),
cbInfo=(None, None),
- lookupNames=False, lookupValues=False,
- contextName=null):
+ lookupNames=False, lookupValues=False):
def __cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
@@ -155,7 +155,7 @@ class AsyncNotificationOriginator(cmdgen.AsyncCommandGenerator):
cache['mibViewController'], oidOnly=True
)
- return ntforg.NotificationOriginator().sendVarBinds(snmpEngine, snmpContext, contextName, notifyName, notificationType, instanceIndex, self.makeVarBinds(snmpEngine, varBinds), __cbFun, (lookupNames, lookupValues, cbFun, cbCtx))
+ return ntforg.NotificationOriginator().sendVarBinds(snmpEngine, snmpContext, contextData.contextName, notifyName, notificationType, instanceIndex, self.makeVarBinds(snmpEngine, varBinds), __cbFun, (lookupNames, lookupValues, cbFun, cbCtx))
# substitute sendNotification return object for backward compatibility
class ErrorIndicationReturn:
@@ -231,10 +231,10 @@ class AsynNotificationOriginator(cmdgen.AsynCommandGenerator):
return self.__asyncNtfOrg.sendNotification(
self.snmpEngine, self.snmpContext,
- authData, transportTarget,
+ authData, transportTarget, ContextData(contextName=contextName),
notifyType, notificationType, None, varBinds,
(__cbFun, cbInfo),
- lookupNames, lookupValues, contextName
+ lookupNames, lookupValues
)
asyncSendNotification = sendNotification