summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorelie <elie>2015-09-27 15:27:20 +0000
committerelie <elie>2015-09-27 15:27:20 +0000
commit120a39ce88723792fef654451c7135461c152b9d (patch)
treec3ce20e5aaaf51473557aca91fd49fabad84ee46 /examples
parent969475aeb65a53986fb2a25138e9e9b02738648f (diff)
downloadpysnmp-git-120a39ce88723792fef654451c7135461c152b9d.tar.gz
var-bindings passing in asyncore API aligned with others
Diffstat (limited to 'examples')
-rw-r--r--examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py4
-rw-r--r--examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py47
-rw-r--r--examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py4
-rw-r--r--examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py4
-rw-r--r--examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py49
-rw-r--r--examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py4
-rw-r--r--examples/hlapi/asyncore/manager/cmdgen/v2c-get.py44
7 files changed, 148 insertions, 8 deletions
diff --git a/examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py b/examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py
index 20cee839..dbfb45a3 100644
--- a/examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py
+++ b/examples/hlapi/asyncio/agent/ntforg/default-v1-trap.py
@@ -34,10 +34,10 @@ def run():
snmpEngine = SnmpEngine()
errorIndication, errorStatus, errorIndex, varBinds = yield from sendNotification(
snmpEngine,
- CommunityData('public'), # mpModel=0),
+ CommunityData('public', mpModel=0),
UdpTransportTarget(('localhost', 162)),
ContextData(),
- 'inform',
+ 'trap',
NotificationType(
ObjectIdentity('1.3.6.1.6.3.1.1.5.2')
).addVarBinds(
diff --git a/examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py b/examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py
new file mode 100644
index 00000000..f36009eb
--- /dev/null
+++ b/examples/hlapi/asyncore/agent/ntforg/default-v1-trap.py
@@ -0,0 +1,47 @@
+"""
+SNMPv1 TRAP with defaults
++++++++++++++++++++++++++
+
+Send SNMPv1 TRAP through unified SNMPv3 message processing framework
+using the following options:
+
+* SNMPv1
+* with community name 'public'
+* over IPv4/UDP
+* send TRAP notification
+* with Generic Trap #1 (warmStart) and Specific Trap 0
+* with default Uptime
+* with default Agent Address
+* with Enterprise OID 1.3.6.1.4.1.20408.4.1.1.2
+* include managed object information '1.3.6.1.2.1.1.1.0' = 'my system'
+
+Functionally similar to:
+
+| $ snmptrap -v1 -c public demo.snmplabs.com \
+| 1.3.6.1.4.1.20408.4.1.1.2 \
+| 0.0.0.0 \
+| 1 \
+| 0 \
+| 0
+| '1.3.6.1.2.1.1.1.0' s 'my system'
+
+"""#
+from pysnmp.hlapi.asyncore import *
+
+snmpEngine = SnmpEngine()
+
+sendNotification(
+ snmpEngine,
+ CommunityData('public', mpModel=0),
+ UdpTransportTarget(('localhost', 162)),
+ ContextData(),
+ 'trap',
+ NotificationType(
+ ObjectIdentity('1.3.6.1.6.3.1.1.5.2')
+ ).addVarBinds(
+ ('1.3.6.1.6.3.1.1.4.3.0', '1.3.6.1.4.1.20408.4.1.1.2'),
+ ('1.3.6.1.2.1.1.1.0', OctetString('my system'))
+ )
+)
+
+snmpEngine.transportDispatcher.runDispatcher()
diff --git a/examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py b/examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py
index 6222c3ee..89e9abf2 100644
--- a/examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py
+++ b/examples/hlapi/asyncore/manager/cmdgen/multiple-concurrent-queries.py
@@ -74,7 +74,7 @@ snmpEngine = SnmpEngine()
# Submit GET requests
for authData, transportTarget, varNames in targets:
- getCmd(snmpEngine, authData, transportTarget, ContextData(), varNames,
- cbFun=cbFun, cbCtx=(authData, transportTarget))
+ getCmd(snmpEngine, authData, transportTarget, ContextData(), *varNames,
+ **dict(cbFun=cbFun, cbCtx=(authData, transportTarget)))
snmpEngine.transportDispatcher.runDispatcher()
diff --git a/examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py b/examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py
index b671f190..4eb93317 100644
--- a/examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py
+++ b/examples/hlapi/asyncore/manager/cmdgen/pull-mibs-from-multiple-agents-at-once.py
@@ -67,7 +67,7 @@ snmpEngine = SnmpEngine()
# Submit initial GETNEXT requests and wait for responses
for authData, transportTarget, varBinds in targets:
- nextCmd(snmpEngine, authData, transportTarget, ContextData(), varBinds,
- cbFun=cbFun, cbCtx=(authData, transportTarget))
+ nextCmd(snmpEngine, authData, transportTarget, ContextData(),
+ *varBinds, **dict(cbFun=cbFun, cbCtx=(authData, transportTarget)))
snmpEngine.transportDispatcher.runDispatcher()
diff --git a/examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py b/examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py
new file mode 100644
index 00000000..19b397f6
--- /dev/null
+++ b/examples/hlapi/asyncore/manager/cmdgen/pull-whole-mib.py
@@ -0,0 +1,49 @@
+"""
+Walk whole MIB
+++++++++++++++
+
+Send a series of SNMP GETNEXT requests using the following options:
+
+* with SNMPv3, user 'usr-md5-none', MD5 authentication, no privacy
+* over IPv4/UDP
+* to an Agent at demo.snmplabs.com:161
+* for all OIDs in IF-MIB
+
+Functionally similar to:
+
+| $ snmpwalk -v3 -lauthNoPriv -u usr-md5-none -A authkey1 -X privkey1 \
+| demo.snmplabs.com IF-MIB::
+
+"""#
+from pysnmp.hlapi.asyncore import *
+
+def cbFun(snmpEngine, sendRequestHandle, errorIndication,
+ errorStatus, errorIndex, varBindTable, cbCtx):
+ if errorIndication:
+ print(errorIndication)
+ return
+ elif errorStatus:
+ print('%s at %s' % (
+ errorStatus.prettyPrint(),
+ errorIndex and varBindTable[-1][int(errorIndex)-1][0] or '?'
+ )
+ )
+ return
+ else:
+ for varBindRow in varBindTable:
+ for varBind in varBindRow:
+ print(' = '.join([ x.prettyPrint() for x in varBind ]))
+
+ return True # request lower layers to do GETNEXT and call us back
+
+snmpEngine = SnmpEngine()
+
+nextCmd(snmpEngine,
+ UsmUserData('usr-md5-none', 'authkey1'),
+ UdpTransportTarget(('demo.snmplabs.com', 161)),
+ ContextData(),
+ ObjectType(ObjectIdentity('SNMPv2-MIB', 'system')),
+ ObjectType(ObjectIdentity('IF-MIB', 'ifTable')),
+ cbFun=cbFun)
+
+snmpEngine.transportDispatcher.runDispatcher()
diff --git a/examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py b/examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py
index d0a5c624..b5a17a64 100644
--- a/examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py
+++ b/examples/hlapi/asyncore/manager/cmdgen/query-multiple-snmp-engines.py
@@ -91,7 +91,7 @@ snmpEngineB.registerTransportDispatcher(transportDispatcher, 'B')
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))
+ getCmd(snmpEngine, authData, transportTarget, ContextData(), *varBinds,
+ **dict(cbFun=cbFun, cbCtx=(snmpEngine, authData, transportTarget)))
transportDispatcher.runDispatcher()
diff --git a/examples/hlapi/asyncore/manager/cmdgen/v2c-get.py b/examples/hlapi/asyncore/manager/cmdgen/v2c-get.py
new file mode 100644
index 00000000..f46ae515
--- /dev/null
+++ b/examples/hlapi/asyncore/manager/cmdgen/v2c-get.py
@@ -0,0 +1,44 @@
+"""
+SNMPv2c
++++++++
+
+Send SNMP GET request using the following options:
+
+ * with SNMPv1, community 'public'
+ * over IPv4/UDP
+ * to an Agent at demo.snmplabs.com:161
+ * for two instances of SNMPv2-MIB::sysDescr.0 MIB object,
+
+Functionally similar to:
+
+| $ snmpget -v2c -c public demo.snmplabs.com SNMPv2-MIB::sysDescr.0
+
+"""#
+from pysnmp.hlapi.asyncore import *
+
+def cbFun(snmpEngine, sendRequestHandle, errorIndication,
+ errorStatus, errorIndex, varBinds, cbCtx):
+ if errorIndication:
+ print(errorIndication)
+ return
+ elif errorStatus:
+ print('%s at %s' % (
+ errorStatus.prettyPrint(),
+ errorIndex and varBindTable[-1][int(errorIndex)-1][0] or '?'
+ )
+ )
+ return
+ else:
+ for varBind in varBinds:
+ print(' = '.join([ x.prettyPrint() for x in varBind ]))
+
+snmpEngine = SnmpEngine()
+
+getCmd(snmpEngine,
+ CommunityData('public'),
+ UdpTransportTarget(('demo.snmplabs.com', 161)),
+ ContextData(),
+ ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)),
+ cbFun=cbFun)
+
+snmpEngine.transportDispatcher.runDispatcher()