diff options
author | elie <elie> | 2014-06-09 09:35:43 +0000 |
---|---|---|
committer | elie <elie> | 2014-06-09 09:35:43 +0000 |
commit | e95d7d81d2efde462171e0f45aceeec3009322d8 (patch) | |
tree | 6f9e5cee51956ab3379e51fa938560d8fa2fd1be /pysnmp/entity | |
parent | 70caa4259ac547d412af41d6c00212a3c8ff1d3c (diff) | |
download | pysnmp-e95d7d81d2efde462171e0f45aceeec3009322d8.tar.gz |
ContextData container introduced to the newest (async) API
Diffstat (limited to 'pysnmp/entity')
-rw-r--r-- | pysnmp/entity/rfc3413/oneliner/cmdgen.py | 57 | ||||
-rw-r--r-- | pysnmp/entity/rfc3413/oneliner/ctx.py | 11 | ||||
-rw-r--r-- | pysnmp/entity/rfc3413/oneliner/ntforg.py | 12 |
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 |