summaryrefslogtreecommitdiff
path: root/examples/hlapi/v3arch/asyncore/manager/cmdgen/query-multiple-snmp-engines-over-ipv4-and-ipv6.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/hlapi/v3arch/asyncore/manager/cmdgen/query-multiple-snmp-engines-over-ipv4-and-ipv6.py')
-rw-r--r--examples/hlapi/v3arch/asyncore/manager/cmdgen/query-multiple-snmp-engines-over-ipv4-and-ipv6.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/examples/hlapi/v3arch/asyncore/manager/cmdgen/query-multiple-snmp-engines-over-ipv4-and-ipv6.py b/examples/hlapi/v3arch/asyncore/manager/cmdgen/query-multiple-snmp-engines-over-ipv4-and-ipv6.py
index ad6e838f..fc2143d4 100644
--- a/examples/hlapi/v3arch/asyncore/manager/cmdgen/query-multiple-snmp-engines-over-ipv4-and-ipv6.py
+++ b/examples/hlapi/v3arch/asyncore/manager/cmdgen/query-multiple-snmp-engines-over-ipv4-and-ipv6.py
@@ -33,22 +33,25 @@ from pysnmp.carrier.asyncore.dispatch import AsyncoreDispatcher
# List of targets in the following format:
# ( ( authData, transportTarget, varNames ), ... )
-targets = (
+TARGETS = (
# 1-st target (SNMPv1 over IPv4/UDP)
(CommunityData('public', mpModel=0),
UdpTransportTarget(('demo.snmplabs.com', 161)),
(ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)),
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysLocation', 0)))),
+
# 2-nd target (SNMPv2c over IPv4/UDP)
(CommunityData('public'),
UdpTransportTarget(('demo.snmplabs.com', 1161)),
(ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)),
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysLocation', 0)))),
+
# 3-nd target (SNMPv3 over IPv4/UDP)
(UsmUserData('usr-md5-des', 'authkey1', 'privkey1'),
UdpTransportTarget(('demo.snmplabs.com', 2161)),
(ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)),
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysLocation', 0))))
+
# N-th target
# ...
)
@@ -58,15 +61,19 @@ targets = (
# noinspection PyUnusedLocal,PyUnusedLocal
def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
- (snmpEngine, authData, transportTarget) = cbCtx
+ authData, transportTarget = cbCtx
+
print('snmpEngine %s: %s via %s' % (snmpEngine.snmpEngineID.prettyPrint(), authData, transportTarget))
+
if errorIndication:
print(errorIndication)
return True
+
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
return True
+
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
@@ -86,10 +93,11 @@ snmpEngineA.registerTransportDispatcher(transportDispatcher, 'A')
snmpEngineB = SnmpEngine()
snmpEngineB.registerTransportDispatcher(transportDispatcher, 'B')
-for authData, transportTarget, varBinds in targets:
- snmpEngine = transportTarget.getTransportInfo()[1][1] % 3 and \
- snmpEngineA or snmpEngineB
+for authData, transportTarget, varBinds in TARGETS:
+ snmpEngine = (transportTarget.getTransportInfo()[1][1] % 3 and
+ snmpEngineA or snmpEngineB)
+
getCmd(snmpEngine, authData, transportTarget, ContextData(), *varBinds,
- cbFun=cbFun, cbCtx=(snmpEngine, authData, transportTarget))
+ cbFun=cbFun, cbCtx=(authData, transportTarget))
transportDispatcher.runDispatcher()