1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#
# This is a Python 2.6- version of the same file at level up
#
from pysnmp.hlapi.asyncore.ntforg import *
__all__ = ['sendNotification', 'next']
def next(iter):
return iter.next()
#
# Synchronous one-liner SNMP Notification Originator application
#
def sendNotification(snmpEngine, authData, transportTarget, contextData,
notifyType, varBinds, **options):
def cbFun(snmpEngine, sendRequestHandle,
errorIndication, errorStatus, errorIndex,
varBinds, cbCtx):
cbCtx['errorIndication'] = errorIndication
cbCtx['errorStatus'] = errorStatus
cbCtx['errorIndex'] = errorIndex
cbCtx['varBinds'] = varBinds
cbCtx = {}
ntfOrg = AsyncNotificationOriginator()
if varBinds:
ntfOrg.sendNotification(
snmpEngine,
authData,
transportTarget,
contextData,
notifyType,
varBinds,
(cbFun, cbCtx),
options.get('lookupMib', True)
)
snmpEngine.transportDispatcher.runDispatcher()
errorIndication = cbCtx.get('errorIndication')
errorStatus = cbCtx.get('errorStatus')
errorIndex = cbCtx.get('errorIndex')
varBinds = cbCtx.get('varBinds', [])
else:
errorIndication = errorStatus = errorIndex = None
varBinds = []
yield errorIndication, errorStatus, errorIndex, varBinds
|