summaryrefslogtreecommitdiff
path: root/pysnmp
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 /pysnmp
parent70caa4259ac547d412af41d6c00212a3c8ff1d3c (diff)
downloadpysnmp-e95d7d81d2efde462171e0f45aceeec3009322d8.tar.gz
ContextData container introduced to the newest (async) API
Diffstat (limited to 'pysnmp')
-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
3 files changed, 48 insertions, 32 deletions
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