summaryrefslogtreecommitdiff
path: root/examples/v3arch
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2019-02-12 09:16:17 +0100
committerGitHub <noreply@github.com>2019-02-12 09:16:17 +0100
commitb9a7b9c955df98b1e5eec250f418c3df3b7d0199 (patch)
tree3364eb15031352859586e8eb6aa49759a23f9c72 /examples/v3arch
parentc5f7842c430ad3431bee793362ef11cff9f1e0de (diff)
downloadpysnmp-git-b9a7b9c955df98b1e5eec250f418c3df3b7d0199.tar.gz
Reformat example scripts for easier reading (#241)
Diffstat (limited to 'examples/v3arch')
-rw-r--r--examples/v3arch/asyncio/agent/cmdrsp/multiple-usm-users.py11
-rw-r--r--examples/v3arch/asyncio/manager/ntfrcv/multiple-interfaces.py16
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/alternative-mib-tree.py7
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/custom-mib-controller.py5
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/custom-snmp-engine-id.py4
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/implementing-scalar-mib-objects.py4
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/implementing-snmp-table.py29
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/listen-on-ipv4-and-ipv6-interfaces.py5
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/listen-on-multiple-interfaces.py5
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/listening-on-virtual-network-interface.py4
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-communities.py4
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-engines.py4
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/multiple-usm-users.py6
-rw-r--r--examples/v3arch/asyncore/agent/cmdrsp/observe-request-processing.py11
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/multiple-different-notifications-at-once.py3
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/send-inform-to-multiple-managers.py3
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/send-notification-over-ipv4-and-ipv6.py2
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/send-packet-from-specific-address.py1
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/send-trap-to-multiple-managers.py3
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/usm-md5-none.py6
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/v1-trap.py1
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/v2c-inform.py5
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/v2c-trap-with-notification-objects.py2
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/v2c-trap.py5
-rw-r--r--examples/v3arch/asyncore/agent/ntforg/v3-trap.py2
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/custom-contextengineid-and-contextname.py4
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/custom-timeout-and-retries.py3
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/fetch-variables-over-ipv6.py5
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/getbulk-fetch-scalar-and-table-variables.py4
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/getbulk-multiple-oids-to-eom.py4
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-and-resolve-with-mib.py6
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-to-eom.py6
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/observe-request-processing.py4
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/pull-subtree.py8
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/send-packets-from-specific-interface.py8
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/set-multiple-scalar-values.py3
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/spoof-source-address.py2
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/usm-sha-aes128.py4
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/usm-sha-none.py3
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/v1-get.py3
-rw-r--r--examples/v3arch/asyncore/manager/cmdgen/v2c-set.py3
-rw-r--r--examples/v3arch/asyncore/manager/ntfrcv/determine-peer-network-address.py11
-rw-r--r--examples/v3arch/asyncore/manager/ntfrcv/multiple-network-interfaces.py4
-rw-r--r--examples/v3arch/asyncore/manager/ntfrcv/multiple-network-transports-incl-ipv4-and-ipv6.py4
-rw-r--r--examples/v3arch/asyncore/manager/ntfrcv/multiple-usm-users.py4
-rw-r--r--examples/v3arch/asyncore/manager/ntfrcv/observe-request-processing-over-ipv4-and-ipv6.py4
-rw-r--r--examples/v3arch/asyncore/manager/ntfrcv/regexp-community-name.py10
-rw-r--r--examples/v3arch/asyncore/proxy/command/ipv6-to-ipv4-conversion.py12
-rw-r--r--examples/v3arch/asyncore/proxy/command/v2c-to-v1-conversion.py11
-rw-r--r--examples/v3arch/asyncore/proxy/command/v2c-to-v3-conversion.py13
-rw-r--r--examples/v3arch/asyncore/proxy/command/v3-to-v2c-conversion.py12
-rw-r--r--examples/v3arch/twisted/manager/ntfrcv/multiple-interfaces.py5
-rw-r--r--examples/v3arch/twisted/manager/ntfrcv/multiple-usm-users.py5
53 files changed, 213 insertions, 100 deletions
diff --git a/examples/v3arch/asyncio/agent/cmdrsp/multiple-usm-users.py b/examples/v3arch/asyncio/agent/cmdrsp/multiple-usm-users.py
index 2b420185..7a99405b 100644
--- a/examples/v3arch/asyncio/agent/cmdrsp/multiple-usm-users.py
+++ b/examples/v3arch/asyncio/agent/cmdrsp/multiple-usm-users.py
@@ -52,11 +52,13 @@ config.addV3User(
config.USM_AUTH_HMAC96_MD5, 'authkey1',
config.USM_PRIV_CBC56_DES, 'privkey1'
)
+
# user: usr-sha-none, auth: SHA, priv NONE
config.addV3User(
snmpEngine, 'usr-sha-none',
config.USM_AUTH_HMAC96_SHA, 'authkey1'
)
+
# user: usr-sha-none, auth: SHA, priv AES
config.addV3User(
snmpEngine, 'usr-sha-aes128',
@@ -65,9 +67,12 @@ config.addV3User(
)
# Allow full MIB access for each user at VACM
-config.addVacmUser(snmpEngine, 3, 'usr-md5-des', 'authPriv', (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
-config.addVacmUser(snmpEngine, 3, 'usr-sha-none', 'authNoPriv', (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
-config.addVacmUser(snmpEngine, 3, 'usr-sha-aes128', 'authPriv', (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
+config.addVacmUser(snmpEngine, 3, 'usr-md5-des', 'authPriv',
+ (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
+config.addVacmUser(snmpEngine, 3, 'usr-sha-none', 'authNoPriv',
+ (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
+config.addVacmUser(snmpEngine, 3, 'usr-sha-aes128', 'authPriv',
+ (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
# Get default SNMP context this SNMP engine serves
snmpContext = context.SnmpContext(snmpEngine)
diff --git a/examples/v3arch/asyncio/manager/ntfrcv/multiple-interfaces.py b/examples/v3arch/asyncio/manager/ntfrcv/multiple-interfaces.py
index b5bdea9f..dc29a054 100644
--- a/examples/v3arch/asyncio/manager/ntfrcv/multiple-interfaces.py
+++ b/examples/v3arch/asyncio/manager/ntfrcv/multiple-interfaces.py
@@ -56,15 +56,15 @@ config.addV1System(snmpEngine, 'my-area', 'public')
# Callback function for receiving notifications
# noinspection PyUnusedLocal
-def cbFun(snmpEngine,
- stateReference,
- contextEngineId, contextName,
- varBinds,
- cbCtx):
+def cbFun(snmpEngine, stateReference, contextEngineId,
+ contextName, varBinds, cbCtx):
+
transportDomain, transportAddress = snmpEngine.msgAndPduDsp.getTransportInfo(stateReference)
- print('Notification from %s, SNMP Engine %s, Context %s' % (transportAddress,
- contextEngineId.prettyPrint(),
- contextName.prettyPrint()))
+
+ print('Notification from %s, SNMP Engine %s, '
+ 'Context %s' % (transportAddress, contextEngineId.prettyPrint(),
+ contextName.prettyPrint()))
+
for name, val in varBinds:
print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/alternative-mib-tree.py b/examples/v3arch/asyncore/agent/cmdrsp/alternative-mib-tree.py
index 257f9676..42d19cf7 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/alternative-mib-tree.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/alternative-mib-tree.py
@@ -45,7 +45,8 @@ config.addV3User(
)
# Allow full MIB access for each user at VACM
-config.addVacmUser(snmpEngine, 3, 'usr-md5-none', 'authNoPriv', (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
+config.addVacmUser(snmpEngine, 3, 'usr-md5-none', 'authNoPriv',
+ (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
# Create an SNMP context with ContextEngineId = 8000000001020304
snmpContext = context.SnmpContext(
@@ -72,6 +73,6 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/custom-mib-controller.py b/examples/v3arch/asyncore/agent/cmdrsp/custom-mib-controller.py
index 65637f3e..0368882a 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/custom-mib-controller.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/custom-mib-controller.py
@@ -53,6 +53,7 @@ snmpContext = context.SnmpContext(snmpEngine)
# any Managed Objects attached. It supports only GET's and
# always echos request var-binds in response.
class EchoMibInstrumController(instrum.AbstractMibInstrumController):
+
def readMibObjects(self, *varBinds, **context):
cbFun = context.get('cbFun')
if cbFun:
@@ -76,6 +77,6 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/custom-snmp-engine-id.py b/examples/v3arch/asyncore/agent/cmdrsp/custom-snmp-engine-id.py
index bd54caed..fd51542f 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/custom-snmp-engine-id.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/custom-snmp-engine-id.py
@@ -60,6 +60,6 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/implementing-scalar-mib-objects.py b/examples/v3arch/asyncore/agent/cmdrsp/implementing-scalar-mib-objects.py
index 74e8c5db..73641d70 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/implementing-scalar-mib-objects.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/implementing-scalar-mib-objects.py
@@ -80,6 +80,6 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/implementing-snmp-table.py b/examples/v3arch/asyncore/agent/cmdrsp/implementing-snmp-table.py
index bf15aedf..cedcc15e 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/implementing-snmp-table.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/implementing-snmp-table.py
@@ -47,7 +47,8 @@ config.addTransport(
config.addV1System(snmpEngine, 'my-area', 'public')
# Allow read MIB access for this user / securityModels at VACM
-config.addVacmUser(snmpEngine, 2, 'my-area', 'noAuthNoPriv', (1, 3, 6, 6), (1, 3, 6, 6))
+config.addVacmUser(snmpEngine, 2, 'my-area', 'noAuthNoPriv',
+ (1, 3, 6, 6), (1, 3, 6, 6))
# Create an SNMP context
snmpContext = context.SnmpContext(snmpEngine)
@@ -72,17 +73,24 @@ RowStatus, = mibBuilder.importSymbols('SNMPv2-TC', 'RowStatus')
mibBuilder.exportSymbols(
'__EXAMPLE-MIB',
# table object
- exampleTable=MibTable((1, 3, 6, 6, 1)).setMaxAccess('readcreate'),
+ exampleTable=MibTable((1, 3, 6, 6, 1))
+ .setMaxAccess('readcreate'),
# table row object, also carries references to table indices
- exampleTableEntry=MibTableRow((1, 3, 6, 6, 1, 5)).setMaxAccess('readcreate').setIndexNames((0, '__EXAMPLE-MIB', 'exampleTableColumn1')),
+ exampleTableEntry=MibTableRow((1, 3, 6, 6, 1, 5))
+ .setMaxAccess('readcreate')
+ .setIndexNames((0, '__EXAMPLE-MIB', 'exampleTableColumn1')),
# table column: string index
- exampleTableColumn1=MibTableColumn((1, 3, 6, 6, 1, 5, 1), v2c.OctetString()).setMaxAccess('readcreate'),
+ exampleTableColumn1=MibTableColumn((1, 3, 6, 6, 1, 5, 1), v2c.OctetString())
+ .setMaxAccess('readcreate'),
# table column: string value
- exampleTableColumn2=MibTableColumn((1, 3, 6, 6, 1, 5, 2), v2c.OctetString()).setMaxAccess('readcreate'),
+ exampleTableColumn2=MibTableColumn((1, 3, 6, 6, 1, 5, 2), v2c.OctetString())
+ .setMaxAccess('readcreate'),
# table column: integer value with default
- exampleTableColumn3=MibTableColumn((1, 3, 6, 6, 1, 5, 3), v2c.Integer32(123)).setMaxAccess('readcreate'),
+ exampleTableColumn3=MibTableColumn((1, 3, 6, 6, 1, 5, 3), v2c.Integer32(123))
+ .setMaxAccess('readcreate'),
# table column: row status
- exampleTableStatus=MibTableColumn((1, 3, 6, 6, 1, 5, 4), RowStatus('notExists')).setMaxAccess('readcreate')
+ exampleTableStatus=MibTableColumn((1, 3, 6, 6, 1, 5, 4), RowStatus('notExists'))
+ .setMaxAccess('readcreate')
)
# --- end of custom SNMP table definition, empty table now exists ---
@@ -99,8 +107,11 @@ mibBuilder.exportSymbols(
'exampleTableColumn3',
'exampleTableStatus'
)
+
rowInstanceId = exampleTableEntry.getInstIdFromIndices('example record one')
+
mibInstrumentation = snmpContext.getMibInstrum()
+
mibInstrumentation.writeMibObjects(
(exampleTableColumn2.name + rowInstanceId, 'my string value'),
(exampleTableColumn3.name + rowInstanceId, 123456),
@@ -121,6 +132,6 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/listen-on-ipv4-and-ipv6-interfaces.py b/examples/v3arch/asyncore/agent/cmdrsp/listen-on-ipv4-and-ipv6-interfaces.py
index 1334fd8d..a1a4e853 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/listen-on-ipv4-and-ipv6-interfaces.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/listen-on-ipv4-and-ipv6-interfaces.py
@@ -33,6 +33,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpTransport().openServerMode(('127.0.0.1', 161))
)
+
# UDP over IPv6 at [::1]:161
config.addTransport(
snmpEngine,
@@ -63,6 +64,6 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/listen-on-multiple-interfaces.py b/examples/v3arch/asyncore/agent/cmdrsp/listen-on-multiple-interfaces.py
index c8088ed0..bfb0b4ef 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/listen-on-multiple-interfaces.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/listen-on-multiple-interfaces.py
@@ -32,6 +32,7 @@ config.addTransport(
udp.DOMAIN_NAME + (1,),
udp.UdpTransport().openServerMode(('127.0.0.1', 161))
)
+
# UDP over IPv4 at 127.0.0.2:161
config.addTransport(
snmpEngine,
@@ -62,6 +63,6 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/listening-on-virtual-network-interface.py b/examples/v3arch/asyncore/agent/cmdrsp/listening-on-virtual-network-interface.py
index a501aec3..c6bfc33f 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/listening-on-virtual-network-interface.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/listening-on-virtual-network-interface.py
@@ -85,7 +85,7 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.observer.unregisterObserver()
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-communities.py b/examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-communities.py
index c2180ade..8aef067d 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-communities.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-communities.py
@@ -60,6 +60,6 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-engines.py b/examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-engines.py
index b65cd63f..00e241c2 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-engines.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/multiple-snmp-engines.py
@@ -88,6 +88,6 @@ transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
transportDispatcher.runDispatcher()
-except:
+
+finally:
transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/multiple-usm-users.py b/examples/v3arch/asyncore/agent/cmdrsp/multiple-usm-users.py
index 4a9f5162..45b4d113 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/multiple-usm-users.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/multiple-usm-users.py
@@ -43,11 +43,13 @@ config.addV3User(
config.USM_AUTH_HMAC96_MD5, 'authkey1',
config.USM_PRIV_CBC56_DES, 'privkey1'
)
+
# user: usr-sha-none, auth: SHA, priv NONE
config.addV3User(
snmpEngine, 'usr-sha-none',
config.USM_AUTH_HMAC96_SHA, 'authkey1'
)
+
# user: usr-sha-none, auth: SHA, priv AES
config.addV3User(
snmpEngine, 'usr-sha-aes128',
@@ -75,6 +77,6 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/cmdrsp/observe-request-processing.py b/examples/v3arch/asyncore/agent/cmdrsp/observe-request-processing.py
index a7c1acae..44c9a92e 100644
--- a/examples/v3arch/asyncore/agent/cmdrsp/observe-request-processing.py
+++ b/examples/v3arch/asyncore/agent/cmdrsp/observe-request-processing.py
@@ -36,7 +36,9 @@ snmpEngine = engine.SnmpEngine()
def requestObserver(snmpEngine, execpoint, variables, cbCtx):
print('Execution point: %s' % execpoint)
print('* transportDomain: %s' % '.'.join([str(x) for x in variables['transportDomain']]))
- print('* transportAddress: %s (local %s)' % ('@'.join([str(x) for x in variables['transportAddress']]), '@'.join([str(x) for x in variables['transportAddress'].getLocalAddress()])))
+ print('* transportAddress: %s (local %s)' % (
+ '@'.join([str(x) for x in variables['transportAddress']]), '@'.join(
+ [str(x) for x in variables['transportAddress'].getLocalAddress()])))
print('* securityModel: %s' % variables['securityModel'])
print('* securityName: %s' % variables['securityName'])
print('* securityLevel: %s' % variables['securityLevel'])
@@ -70,7 +72,8 @@ config.addV3User(
)
# Allow full MIB access for each user at VACM
-config.addVacmUser(snmpEngine, 3, 'usr-md5-des', 'authPriv', (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
+config.addVacmUser(snmpEngine, 3, 'usr-md5-des', 'authPriv',
+ (1, 3, 6, 1, 2, 1), (1, 3, 6, 1, 2, 1))
# Get default SNMP context this SNMP engine serves
snmpContext = context.SnmpContext(snmpEngine)
@@ -87,7 +90,7 @@ snmpEngine.transportDispatcher.jobStarted(1)
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.observer.unregisterObserver()
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/agent/ntforg/multiple-different-notifications-at-once.py b/examples/v3arch/asyncore/agent/ntforg/multiple-different-notifications-at-once.py
index e1781416..8fb7c483 100644
--- a/examples/v3arch/asyncore/agent/ntforg/multiple-different-notifications-at-once.py
+++ b/examples/v3arch/asyncore/agent/ntforg/multiple-different-notifications-at-once.py
@@ -45,6 +45,7 @@ config.addV3User(
snmpEngine, 'usr-md5-none',
config.USM_AUTH_HMAC96_MD5, 'authkey1'
)
+
config.addTargetParams(snmpEngine, 'my-creds-2', 'usr-md5-none', 'authNoPriv')
# Setup transport endpoint and bind it with security settings yielding
@@ -54,6 +55,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
# First target
config.addTargetAddr(
snmpEngine, 'my-nms-1',
@@ -61,6 +63,7 @@ config.addTargetAddr(
'my-creds-1',
tagList='all-my-managers'
)
+
# Second target
config.addTargetAddr(
snmpEngine, 'my-nms-2',
diff --git a/examples/v3arch/asyncore/agent/ntforg/send-inform-to-multiple-managers.py b/examples/v3arch/asyncore/agent/ntforg/send-inform-to-multiple-managers.py
index ee1692cb..3349f4c2 100644
--- a/examples/v3arch/asyncore/agent/ntforg/send-inform-to-multiple-managers.py
+++ b/examples/v3arch/asyncore/agent/ntforg/send-inform-to-multiple-managers.py
@@ -43,6 +43,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
# First target
config.addTargetAddr(
snmpEngine, 'my-nms-1',
@@ -50,6 +51,7 @@ config.addTargetAddr(
'my-creds',
tagList='all-my-managers'
)
+
# Second target
config.addTargetAddr(
snmpEngine, 'my-nms-2',
@@ -57,6 +59,7 @@ config.addTargetAddr(
'my-creds',
tagList='all-my-managers'
)
+
# Third target
config.addTargetAddr(
snmpEngine, 'my-nms-3',
diff --git a/examples/v3arch/asyncore/agent/ntforg/send-notification-over-ipv4-and-ipv6.py b/examples/v3arch/asyncore/agent/ntforg/send-notification-over-ipv4-and-ipv6.py
index 7985d848..c2031bfa 100644
--- a/examples/v3arch/asyncore/agent/ntforg/send-notification-over-ipv4-and-ipv6.py
+++ b/examples/v3arch/asyncore/agent/ntforg/send-notification-over-ipv4-and-ipv6.py
@@ -44,6 +44,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-nms-1',
udp.DOMAIN_NAME, ('104.236.166.95', 162),
@@ -57,6 +58,7 @@ config.addTransport(
udp6.DOMAIN_NAME,
udp6.Udp6SocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-nms-2',
udp6.DOMAIN_NAME, ('::1', 162),
diff --git a/examples/v3arch/asyncore/agent/ntforg/send-packet-from-specific-address.py b/examples/v3arch/asyncore/agent/ntforg/send-packet-from-specific-address.py
index 5ce65da5..8552c4d9 100644
--- a/examples/v3arch/asyncore/agent/ntforg/send-packet-from-specific-address.py
+++ b/examples/v3arch/asyncore/agent/ntforg/send-packet-from-specific-address.py
@@ -40,6 +40,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode(iface=('0.0.0.0', 61024))
)
+
config.addTargetAddr(
snmpEngine, 'my-nms',
udp.DOMAIN_NAME, ('104.236.166.95', 162),
diff --git a/examples/v3arch/asyncore/agent/ntforg/send-trap-to-multiple-managers.py b/examples/v3arch/asyncore/agent/ntforg/send-trap-to-multiple-managers.py
index 59065c17..4ea058f1 100644
--- a/examples/v3arch/asyncore/agent/ntforg/send-trap-to-multiple-managers.py
+++ b/examples/v3arch/asyncore/agent/ntforg/send-trap-to-multiple-managers.py
@@ -43,6 +43,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
# First target
config.addTargetAddr(
snmpEngine, 'my-nms-1',
@@ -50,6 +51,7 @@ config.addTargetAddr(
'my-creds',
tagList='all-my-managers'
)
+
# Second target
config.addTargetAddr(
snmpEngine, 'my-nms-2',
@@ -57,6 +59,7 @@ config.addTargetAddr(
'my-creds',
tagList='all-my-managers'
)
+
# Third target
config.addTargetAddr(
snmpEngine, 'my-nms-3',
diff --git a/examples/v3arch/asyncore/agent/ntforg/usm-md5-none.py b/examples/v3arch/asyncore/agent/ntforg/usm-md5-none.py
index 4e95455b..732c567a 100644
--- a/examples/v3arch/asyncore/agent/ntforg/usm-md5-none.py
+++ b/examples/v3arch/asyncore/agent/ntforg/usm-md5-none.py
@@ -30,6 +30,7 @@ config.addV3User(
snmpEngine, 'usr-md5-none',
config.USM_AUTH_HMAC96_MD5, 'authkey1'
)
+
config.addTargetParams(snmpEngine, 'my-creds', 'usr-md5-none', 'authNoPriv')
# Setup transport endpoint and bind it with security settings yielding
@@ -39,6 +40,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-nms',
udp.DOMAIN_NAME, ('104.236.166.95', 162),
@@ -69,9 +71,7 @@ ntfOrg = ntforg.NotificationOriginator()
def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
print('Notification %s, status - %s' % (
- sendRequestHandle, errorIndication and errorIndication or 'delivered'
- )
- )
+ sendRequestHandle, errorIndication and errorIndication or 'delivered'))
# Build and submit notification message to dispatcher
diff --git a/examples/v3arch/asyncore/agent/ntforg/v1-trap.py b/examples/v3arch/asyncore/agent/ntforg/v1-trap.py
index 9c0ba17e..24df282f 100644
--- a/examples/v3arch/asyncore/agent/ntforg/v1-trap.py
+++ b/examples/v3arch/asyncore/agent/ntforg/v1-trap.py
@@ -42,6 +42,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-nms',
udp.DOMAIN_NAME, ('104.236.166.95', 162),
diff --git a/examples/v3arch/asyncore/agent/ntforg/v2c-inform.py b/examples/v3arch/asyncore/agent/ntforg/v2c-inform.py
index 240f1426..752af9bf 100644
--- a/examples/v3arch/asyncore/agent/ntforg/v2c-inform.py
+++ b/examples/v3arch/asyncore/agent/ntforg/v2c-inform.py
@@ -41,6 +41,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-nms',
udp.DOMAIN_NAME, ('104.236.166.95', 162),
@@ -71,9 +72,7 @@ ntfOrg = ntforg.NotificationOriginator()
def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
print('Notification %s, status - %s' % (
- sendRequestHandle, errorIndication and errorIndication or 'delivered'
- )
- )
+ sendRequestHandle, errorIndication and errorIndication or 'delivered'))
# Build and submit notification message to dispatcher
diff --git a/examples/v3arch/asyncore/agent/ntforg/v2c-trap-with-notification-objects.py b/examples/v3arch/asyncore/agent/ntforg/v2c-trap-with-notification-objects.py
index f985786e..e8460490 100644
--- a/examples/v3arch/asyncore/agent/ntforg/v2c-trap-with-notification-objects.py
+++ b/examples/v3arch/asyncore/agent/ntforg/v2c-trap-with-notification-objects.py
@@ -38,6 +38,7 @@ from pysnmp.smi import rfc1902, view
# Agent runtime.
#
instanceIndex = (1,)
+
objects = {
('IF-MIB', 'ifIndex'): instanceIndex[0],
('IF-MIB', 'ifAdminStatus'): 'up',
@@ -66,6 +67,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-nms-1',
udp.DOMAIN_NAME, ('104.236.166.95', 162),
diff --git a/examples/v3arch/asyncore/agent/ntforg/v2c-trap.py b/examples/v3arch/asyncore/agent/ntforg/v2c-trap.py
index 8850e7d0..c3ebd2b5 100644
--- a/examples/v3arch/asyncore/agent/ntforg/v2c-trap.py
+++ b/examples/v3arch/asyncore/agent/ntforg/v2c-trap.py
@@ -40,6 +40,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-nms',
udp.DOMAIN_NAME, ('104.236.166.95', 162),
@@ -70,9 +71,7 @@ ntfOrg = ntforg.NotificationOriginator()
def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
print('Notification %s, status - %s' % (
- sendRequestHandle, errorIndication and errorIndication or 'delivered'
- )
- )
+ sendRequestHandle, errorIndication and errorIndication or 'delivered'))
# Build and submit notification message to dispatcher
diff --git a/examples/v3arch/asyncore/agent/ntforg/v3-trap.py b/examples/v3arch/asyncore/agent/ntforg/v3-trap.py
index 0502a153..0acc4a75 100644
--- a/examples/v3arch/asyncore/agent/ntforg/v3-trap.py
+++ b/examples/v3arch/asyncore/agent/ntforg/v3-trap.py
@@ -35,6 +35,7 @@ config.addV3User(
config.USM_AUTH_HMAC96_MD5, 'authkey1',
config.USM_PRIV_CBC56_DES, 'privkey1'
)
+
config.addTargetParams(snmpEngine, 'my-creds', 'usr-md5-des', 'authPriv')
# Setup transport endpoint and bind it with security settings yielding
@@ -44,6 +45,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-nms',
udp.DOMAIN_NAME, ('104.236.166.95', 162),
diff --git a/examples/v3arch/asyncore/manager/cmdgen/custom-contextengineid-and-contextname.py b/examples/v3arch/asyncore/manager/cmdgen/custom-contextengineid-and-contextname.py
index 2dc2ee8b..4ea68110 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/custom-contextengineid-and-contextname.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/custom-contextengineid-and-contextname.py
@@ -34,6 +34,7 @@ config.addV3User(
snmpEngine, 'usr-md5-none',
config.USM_AUTH_HMAC96_MD5, 'authkey1'
)
+
config.addTargetParams(snmpEngine, 'my-creds', 'usr-md5-none', 'authNoPriv')
#
@@ -47,6 +48,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -60,9 +62,11 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
if errorIndication:
print(errorIndication)
+
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
+
else:
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/manager/cmdgen/custom-timeout-and-retries.py b/examples/v3arch/asyncore/manager/cmdgen/custom-timeout-and-retries.py
index 45b8c7a6..b7e137b3 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/custom-timeout-and-retries.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/custom-timeout-and-retries.py
@@ -43,6 +43,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -58,9 +59,11 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
if errorIndication:
print(errorIndication)
+
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
+
else:
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/manager/cmdgen/fetch-variables-over-ipv6.py b/examples/v3arch/asyncore/manager/cmdgen/fetch-variables-over-ipv6.py
index 0a156d0f..de85e3db 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/fetch-variables-over-ipv6.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/fetch-variables-over-ipv6.py
@@ -44,6 +44,7 @@ config.addTransport(
udp6.DOMAIN_NAME,
udp6.Udp6SocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp6.DOMAIN_NAME, ('::1', 161),
@@ -58,13 +59,17 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
if errorIndication:
print(errorIndication)
return
+
if errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex) - 1][0] or '?'))
return # stop on error
+
for varBindRow in varBindTable:
+
for oid, val in varBindRow:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
+
return True # signal dispatcher to continue
diff --git a/examples/v3arch/asyncore/manager/cmdgen/getbulk-fetch-scalar-and-table-variables.py b/examples/v3arch/asyncore/manager/cmdgen/getbulk-fetch-scalar-and-table-variables.py
index 82e42879..499514f3 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/getbulk-fetch-scalar-and-table-variables.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/getbulk-fetch-scalar-and-table-variables.py
@@ -46,6 +46,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -60,13 +61,16 @@ def cbFun(snmpEngine, sendRequesthandle, errorIndication,
if errorIndication:
print(errorIndication)
return # stop on error
+
if errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex) - 1][0] or '?'))
return # stop on error
+
for varBindRow in varBindTable:
for oid, val in varBindRow:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
+
return True # signal dispatcher to continue walking
diff --git a/examples/v3arch/asyncore/manager/cmdgen/getbulk-multiple-oids-to-eom.py b/examples/v3arch/asyncore/manager/cmdgen/getbulk-multiple-oids-to-eom.py
index 125e3a72..98a4c42b 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/getbulk-multiple-oids-to-eom.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/getbulk-multiple-oids-to-eom.py
@@ -43,6 +43,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -57,13 +58,16 @@ def cbFun(snmpEngine, sendRequesthandle, errorIndication,
if errorIndication:
print(errorIndication)
return # stop on error
+
if errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex) - 1][0] or '?'))
return # stop on error
+
for varBindRow in varBindTable:
for oid, val in varBindRow:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
+
return True # signal dispatcher to continue walking
diff --git a/examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-and-resolve-with-mib.py b/examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-and-resolve-with-mib.py
index f01efec7..8fed28c1 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-and-resolve-with-mib.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-and-resolve-with-mib.py
@@ -54,6 +54,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -68,17 +69,20 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
if errorIndication:
print(errorIndication)
return
+
# SNMPv1 response may contain noSuchName error *and* SNMPv2c exception,
# so we ignore noSuchName error here
if errorStatus and errorStatus != 2:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex) - 1][0] or '?'))
return # stop on error
+
for varBindRow in varBindTable:
for varBind in varBindRow:
print(rfc1902.ObjectType(rfc1902.ObjectIdentity(varBind[0]),
varBind[1]).resolveWithMib(mibViewController).prettyPrint())
- return 1 # signal dispatcher to continue
+
+ return True # signal dispatcher to continue
# Prepare initial request to be sent
diff --git a/examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-to-eom.py b/examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-to-eom.py
index c984a899..64e4e19f 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-to-eom.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/getnext-multiple-oids-to-eom.py
@@ -43,6 +43,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -57,16 +58,19 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
if errorIndication:
print(errorIndication)
return
+
# SNMPv1 response may contain noSuchName error *and* SNMPv2c exception,
# so we ignore noSuchName error here
if errorStatus and errorStatus != 2:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex) - 1][0] or '?'))
return # stop on error
+
for varBindRow in varBindTable:
for oid, val in varBindRow:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
- return 1 # signal dispatcher to continue
+
+ return True # signal dispatcher to continue
# Prepare initial request to be sent
diff --git a/examples/v3arch/asyncore/manager/cmdgen/observe-request-processing.py b/examples/v3arch/asyncore/manager/cmdgen/observe-request-processing.py
index fccb1483..3a8b4f5a 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/observe-request-processing.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/observe-request-processing.py
@@ -59,6 +59,7 @@ config.addV3User(
config.USM_AUTH_HMAC96_SHA, 'authkey1',
config.USM_PRIV_CFB128_AES, 'privkey1'
)
+
config.addTargetParams(snmpEngine, 'my-creds', 'usr-sha-aes', 'authPriv')
#
@@ -72,6 +73,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -85,9 +87,11 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
if errorIndication:
print(errorIndication)
+
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
+
else:
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/manager/cmdgen/pull-subtree.py b/examples/v3arch/asyncore/manager/cmdgen/pull-subtree.py
index b1eb9ace..4233356b 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/pull-subtree.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/pull-subtree.py
@@ -33,6 +33,7 @@ snmpEngine = engine.SnmpEngine()
config.addV3User(
snmpEngine, 'usr-none-none',
)
+
config.addTargetParams(snmpEngine, 'my-creds', 'usr-none-none', 'noAuthNoPriv')
#
@@ -46,6 +47,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -60,16 +62,20 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
if errorIndication:
print(errorIndication)
return
+
if errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex) - 1][0] or '?'))
- return # stop on error
+ return False # stop on error
+
for varBindRow in varBindTable:
for oid, val in varBindRow:
if initialOID.isPrefixOf(oid):
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
+
else:
return False # signal dispatcher to stop
+
return True # signal dispatcher to continue
diff --git a/examples/v3arch/asyncore/manager/cmdgen/send-packets-from-specific-interface.py b/examples/v3arch/asyncore/manager/cmdgen/send-packets-from-specific-interface.py
index ed5ec19f..9342df3e 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/send-packets-from-specific-interface.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/send-packets-from-specific-interface.py
@@ -44,6 +44,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode(('0.0.0.0', 61024))
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -57,15 +58,18 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBindTable, cbCtx):
if errorIndication:
print(errorIndication)
- return
+ return False
+
if errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex) - 1][0] or '?'))
return # stop on error
+
for varBindRow in varBindTable:
for oid, val in varBindRow:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
- return 1 # signal dispatcher to continue
+
+ return True # signal dispatcher to continue
# Prepare initial request to be sent
diff --git a/examples/v3arch/asyncore/manager/cmdgen/set-multiple-scalar-values.py b/examples/v3arch/asyncore/manager/cmdgen/set-multiple-scalar-values.py
index 173bdd91..c93e142b 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/set-multiple-scalar-values.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/set-multiple-scalar-values.py
@@ -43,6 +43,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -56,11 +57,13 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
if errorIndication:
print(errorIndication)
+
# SNMPv1 response may contain noSuchName error *and* SNMPv2c exception,
# so we ignore noSuchName error here
elif errorStatus and errorStatus != 2:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
+
else:
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/manager/cmdgen/spoof-source-address.py b/examples/v3arch/asyncore/manager/cmdgen/spoof-source-address.py
index 10050e3f..da7878f2 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/spoof-source-address.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/spoof-source-address.py
@@ -77,11 +77,13 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
if errorIndication:
print(errorIndication)
+
# SNMPv1 response may contain noSuchName error *and* SNMPv2c exception,
# so we ignore noSuchName error here
elif errorStatus and errorStatus != 2:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
+
else:
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/manager/cmdgen/usm-sha-aes128.py b/examples/v3arch/asyncore/manager/cmdgen/usm-sha-aes128.py
index d65a018f..7fb95ead 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/usm-sha-aes128.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/usm-sha-aes128.py
@@ -30,6 +30,7 @@ config.addV3User(
config.USM_AUTH_HMAC96_SHA, 'authkey1',
config.USM_PRIV_CFB128_AES, 'privkey1'
)
+
config.addTargetParams(snmpEngine, 'my-creds', 'usr-sha-aes', 'authPriv')
#
@@ -43,6 +44,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -56,9 +58,11 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
if errorIndication:
print(errorIndication)
+
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
+
else:
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/manager/cmdgen/usm-sha-none.py b/examples/v3arch/asyncore/manager/cmdgen/usm-sha-none.py
index 43c5dade..2eba8949 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/usm-sha-none.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/usm-sha-none.py
@@ -44,6 +44,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -57,9 +58,11 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
if errorIndication:
print(errorIndication)
+
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
+
else:
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/manager/cmdgen/v1-get.py b/examples/v3arch/asyncore/manager/cmdgen/v1-get.py
index 60d25f5e..20eab6c7 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/v1-get.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/v1-get.py
@@ -40,6 +40,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -53,11 +54,13 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
if errorIndication:
print(errorIndication)
+
# SNMPv1 response may contain noSuchName error *and* SNMPv2c exception,
# so we ignore noSuchName error here
elif errorStatus and errorStatus != 2:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
+
else:
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/manager/cmdgen/v2c-set.py b/examples/v3arch/asyncore/manager/cmdgen/v2c-set.py
index 61657677..8e6a1168 100644
--- a/examples/v3arch/asyncore/manager/cmdgen/v2c-set.py
+++ b/examples/v3arch/asyncore/manager/cmdgen/v2c-set.py
@@ -42,6 +42,7 @@ config.addTransport(
udp.DOMAIN_NAME,
udp.UdpSocketTransport().openClientMode()
)
+
config.addTargetAddr(
snmpEngine, 'my-router',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -55,9 +56,11 @@ def cbFun(snmpEngine, sendRequestHandle, errorIndication,
errorStatus, errorIndex, varBinds, cbCtx):
if errorIndication:
print(errorIndication)
+
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
+
else:
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/asyncore/manager/ntfrcv/determine-peer-network-address.py b/examples/v3arch/asyncore/manager/ntfrcv/determine-peer-network-address.py
index 3d3052a7..877d84df 100644
--- a/examples/v3arch/asyncore/manager/ntfrcv/determine-peer-network-address.py
+++ b/examples/v3arch/asyncore/manager/ntfrcv/determine-peer-network-address.py
@@ -49,9 +49,10 @@ def cbFun(snmpEngine, stateReference, contextEngineId, contextName,
)
# ... and use inner SNMP engine data to figure out peer address
- print('Notification from %s, ContextEngineId "%s", ContextName "%s"' % ('@'.join([str(x) for x in execContext['transportAddress']]),
- contextEngineId.prettyPrint(),
- contextName.prettyPrint()))
+ print('Notification from %s, ContextEngineId "%s", '
+ 'ContextName "%s"' % ('@'.join([str(x) for x in execContext['transportAddress']]),
+ contextEngineId.prettyPrint(),
+ contextName.prettyPrint()))
for name, val in varBinds:
print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))
@@ -64,6 +65,6 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send confirmations
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/manager/ntfrcv/multiple-network-interfaces.py b/examples/v3arch/asyncore/manager/ntfrcv/multiple-network-interfaces.py
index 4aae9b66..74ebba45 100644
--- a/examples/v3arch/asyncore/manager/ntfrcv/multiple-network-interfaces.py
+++ b/examples/v3arch/asyncore/manager/ntfrcv/multiple-network-interfaces.py
@@ -65,6 +65,6 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send confirmations
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/manager/ntfrcv/multiple-network-transports-incl-ipv4-and-ipv6.py b/examples/v3arch/asyncore/manager/ntfrcv/multiple-network-transports-incl-ipv4-and-ipv6.py
index 98f8ebd4..83dbad56 100644
--- a/examples/v3arch/asyncore/manager/ntfrcv/multiple-network-transports-incl-ipv4-and-ipv6.py
+++ b/examples/v3arch/asyncore/manager/ntfrcv/multiple-network-transports-incl-ipv4-and-ipv6.py
@@ -66,6 +66,6 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send confirmations
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/manager/ntfrcv/multiple-usm-users.py b/examples/v3arch/asyncore/manager/ntfrcv/multiple-usm-users.py
index fd40aaf3..459ae3d7 100644
--- a/examples/v3arch/asyncore/manager/ntfrcv/multiple-usm-users.py
+++ b/examples/v3arch/asyncore/manager/ntfrcv/multiple-usm-users.py
@@ -87,6 +87,6 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send confirmations
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/manager/ntfrcv/observe-request-processing-over-ipv4-and-ipv6.py b/examples/v3arch/asyncore/manager/ntfrcv/observe-request-processing-over-ipv4-and-ipv6.py
index a8d84813..53658f86 100644
--- a/examples/v3arch/asyncore/manager/ntfrcv/observe-request-processing-over-ipv4-and-ipv6.py
+++ b/examples/v3arch/asyncore/manager/ntfrcv/observe-request-processing-over-ipv4-and-ipv6.py
@@ -91,7 +91,7 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send confirmations
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.observer.unregisterObserver()
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/manager/ntfrcv/regexp-community-name.py b/examples/v3arch/asyncore/manager/ntfrcv/regexp-community-name.py
index b4a6fa0c..5ef940cc 100644
--- a/examples/v3arch/asyncore/manager/ntfrcv/regexp-community-name.py
+++ b/examples/v3arch/asyncore/manager/ntfrcv/regexp-community-name.py
@@ -71,8 +71,10 @@ config.addV1System(snmpEngine, 'my-area', 'public')
# noinspection PyUnusedLocal,PyUnusedLocal,PyUnusedLocal
def cbFun(snmpEngine, stateReference, contextEngineId, contextName,
varBinds, cbCtx):
- print('Notification from ContextEngineId "%s", ContextName "%s"' % (contextEngineId.prettyPrint(),
- contextName.prettyPrint()))
+ print('Notification from ContextEngineId "%s", '
+ 'ContextName "%s"' % (contextEngineId.prettyPrint(),
+ contextName.prettyPrint()))
+
for name, val in varBinds:
print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))
@@ -85,6 +87,6 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send confirmations
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/proxy/command/ipv6-to-ipv4-conversion.py b/examples/v3arch/asyncore/proxy/command/ipv6-to-ipv4-conversion.py
index 2d7e0b3b..2abb1c51 100644
--- a/examples/v3arch/asyncore/proxy/command/ipv6-to-ipv4-conversion.py
+++ b/examples/v3arch/asyncore/proxy/command/ipv6-to-ipv4-conversion.py
@@ -79,6 +79,7 @@ config.addV1System(snmpEngine, '0-distant-area', 'public', transportTag='remote'
config.addTargetParams(
snmpEngine, 'distant-agent-auth', '0-distant-area', 'noAuthNoPriv', 1
)
+
config.addTargetAddr(
snmpEngine, 'distant-agent',
udp.DOMAIN_NAME, ('104.236.166.95', 161),
@@ -90,13 +91,13 @@ config.addContext(snmpEngine, '')
class CommandResponder(cmdrsp.CommandResponderBase):
- cmdGenMap = {
+ CMDGEN_MAP = {
v2c.GetRequestPDU.tagSet: cmdgen.GetCommandGenerator(),
v2c.SetRequestPDU.tagSet: cmdgen.SetCommandGenerator(),
v2c.GetNextRequestPDU.tagSet: cmdgen.NextCommandGeneratorSingleRun(),
v2c.GetBulkRequestPDU.tagSet: cmdgen.BulkCommandGeneratorSingleRun()
}
- SUPPORTED_PDU_TYPES = cmdGenMap.keys() # This app will handle these PDUs
+ SUPPORTED_PDU_TYPES = tuple(CMDGEN_MAP) # This app will handle these PDUs
# SNMP request relay
def handleMgmtOperation(self, snmpEngine, stateReference, contextName,
@@ -104,12 +105,13 @@ class CommandResponder(cmdrsp.CommandResponderBase):
cbCtx = stateReference, PDU
contextEngineId = None # address authoritative SNMP Engine
try:
- self.cmdGenMap[PDU.tagSet].sendPdu(
+ self.CMDGEN_MAP[PDU.tagSet].sendPdu(
snmpEngine, 'distant-agent',
contextEngineId, contextName,
PDU,
self.handleResponsePdu, cbCtx
)
+
except error.PySnmpError:
self.handleResponsePdu(
snmpEngine, stateReference, 'error', None, cbCtx
@@ -139,6 +141,6 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/proxy/command/v2c-to-v1-conversion.py b/examples/v3arch/asyncore/proxy/command/v2c-to-v1-conversion.py
index 69916cb0..b56e7734 100644
--- a/examples/v3arch/asyncore/proxy/command/v2c-to-v1-conversion.py
+++ b/examples/v3arch/asyncore/proxy/command/v2c-to-v1-conversion.py
@@ -89,13 +89,13 @@ config.addContext(snmpEngine, '')
class CommandResponder(cmdrsp.CommandResponderBase):
- cmdGenMap = {
+ CMDGEN_MAP = {
v2c.GetRequestPDU.tagSet: cmdgen.GetCommandGenerator(),
v2c.SetRequestPDU.tagSet: cmdgen.SetCommandGenerator(),
v2c.GetNextRequestPDU.tagSet: cmdgen.NextCommandGeneratorSingleRun(),
v2c.GetBulkRequestPDU.tagSet: cmdgen.BulkCommandGeneratorSingleRun()
}
- SUPPORTED_PDU_TYPES = cmdGenMap.keys() # This app will handle these PDUs
+ SUPPORTED_PDU_TYPES = tuple(CMDGEN_MAP) # This app will handle these PDUs
# SNMP request relay
def handleMgmtOperation(self, snmpEngine, stateReference, contextName,
@@ -103,12 +103,13 @@ class CommandResponder(cmdrsp.CommandResponderBase):
cbCtx = stateReference, PDU
contextEngineId = None # address authoritative SNMP Engine
try:
- self.cmdGenMap[PDU.tagSet].sendPdu(
+ self.CMDGEN_MAP[PDU.tagSet].sendPdu(
snmpEngine, 'distant-agent',
contextEngineId, contextName,
PDU,
self.handleResponsePdu, cbCtx
)
+
except error.PySnmpError:
self.handleResponsePdu(
snmpEngine, stateReference, 'error', None, cbCtx
@@ -138,6 +139,6 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/proxy/command/v2c-to-v3-conversion.py b/examples/v3arch/asyncore/proxy/command/v2c-to-v3-conversion.py
index 3e370e3c..46e3738f 100644
--- a/examples/v3arch/asyncore/proxy/command/v2c-to-v3-conversion.py
+++ b/examples/v3arch/asyncore/proxy/command/v2c-to-v3-conversion.py
@@ -78,6 +78,7 @@ config.addV3User(
config.addTargetParams(
snmpEngine, 'distant-agent-auth', 'usr-md5-none', 'authNoPriv'
)
+
config.addTargetAddr(
snmpEngine, 'distant-agent',
udp.DOMAIN_NAME + (2,), ('104.236.166.95', 161),
@@ -89,26 +90,28 @@ config.addContext(snmpEngine, '')
class CommandResponder(cmdrsp.CommandResponderBase):
- cmdGenMap = {
+ CMDGEN_MAP = {
v2c.GetRequestPDU.tagSet: cmdgen.GetCommandGenerator(),
v2c.SetRequestPDU.tagSet: cmdgen.SetCommandGenerator(),
v2c.GetNextRequestPDU.tagSet: cmdgen.NextCommandGeneratorSingleRun(),
v2c.GetBulkRequestPDU.tagSet: cmdgen.BulkCommandGeneratorSingleRun()
}
- SUPPORTED_PDU_TYPES = cmdGenMap.keys() # This app will handle these PDUs
+ SUPPORTED_PDU_TYPES = tuple(CMDGEN_MAP) # This app will handle these PDUs
# SNMP request relay
def handleMgmtOperation(self, snmpEngine, stateReference, contextName,
PDU, acInfo):
cbCtx = stateReference, PDU
contextEngineId = None # address authoritative SNMP Engine
+
try:
- self.cmdGenMap[PDU.tagSet].sendPdu(
+ self.CMDGEN_MAP[PDU.tagSet].sendPdu(
snmpEngine, 'distant-agent',
contextEngineId, contextName,
PDU,
self.handleResponsePdu, cbCtx
)
+
except error.PySnmpError:
self.handleResponsePdu(
snmpEngine, stateReference, 'error', None, cbCtx
@@ -138,6 +141,6 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/asyncore/proxy/command/v3-to-v2c-conversion.py b/examples/v3arch/asyncore/proxy/command/v3-to-v2c-conversion.py
index 4794f49c..5a2443f3 100644
--- a/examples/v3arch/asyncore/proxy/command/v3-to-v2c-conversion.py
+++ b/examples/v3arch/asyncore/proxy/command/v3-to-v2c-conversion.py
@@ -92,13 +92,14 @@ config.addContext(snmpEngine, '')
class CommandResponder(cmdrsp.CommandResponderBase):
- cmdGenMap = {
+ CMDGEN_MAP = {
v2c.GetRequestPDU.tagSet: cmdgen.GetCommandGenerator(),
v2c.SetRequestPDU.tagSet: cmdgen.SetCommandGenerator(),
v2c.GetNextRequestPDU.tagSet: cmdgen.NextCommandGeneratorSingleRun(),
v2c.GetBulkRequestPDU.tagSet: cmdgen.BulkCommandGeneratorSingleRun()
}
- SUPPORTED_PDU_TYPES = cmdGenMap.keys() # This app will handle these PDUs
+
+ SUPPORTED_PDU_TYPES = tuple(CMDGEN_MAP) # This app will handle these PDUs
# SNMP request relay
def handleMgmtOperation(self, snmpEngine, stateReference, contextName,
@@ -106,12 +107,13 @@ class CommandResponder(cmdrsp.CommandResponderBase):
cbCtx = stateReference, PDU
contextEngineId = None # address authoritative SNMP Engine
try:
- self.cmdGenMap[PDU.tagSet].sendPdu(
+ self.CMDGEN_MAP[PDU.tagSet].sendPdu(
snmpEngine, 'distant-agent',
contextEngineId, contextName,
PDU,
self.handleResponsePdu, cbCtx
)
+
except error.PySnmpError:
self.handleResponsePdu(
snmpEngine, stateReference, 'error', None, cbCtx
@@ -139,6 +141,6 @@ snmpEngine.transportDispatcher.jobStarted(1) # this job would never finish
# Run I/O dispatcher which would receive queries and send responses
try:
snmpEngine.transportDispatcher.runDispatcher()
-except:
+
+finally:
snmpEngine.transportDispatcher.closeDispatcher()
- raise
diff --git a/examples/v3arch/twisted/manager/ntfrcv/multiple-interfaces.py b/examples/v3arch/twisted/manager/ntfrcv/multiple-interfaces.py
index f5839302..76eacbe3 100644
--- a/examples/v3arch/twisted/manager/ntfrcv/multiple-interfaces.py
+++ b/examples/v3arch/twisted/manager/ntfrcv/multiple-interfaces.py
@@ -54,8 +54,9 @@ config.addV1System(snmpEngine, 'my-area', 'public')
# noinspection PyUnusedLocal,PyUnusedLocal,PyUnusedLocal
def cbFun(snmpEngine, stateReference, contextEngineId, contextName,
varBinds, cbCtx):
- print('Notification from ContextEngineId "%s", Context "%s"' % (contextEngineId.prettyPrint(),
- contextName.prettyPrint()))
+ print('Notification from ContextEngineId "%s", '
+ 'Context "%s"' % (contextEngineId.prettyPrint(),
+ contextName.prettyPrint()))
for name, val in varBinds:
print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))
diff --git a/examples/v3arch/twisted/manager/ntfrcv/multiple-usm-users.py b/examples/v3arch/twisted/manager/ntfrcv/multiple-usm-users.py
index eef2f014..a9ec8cb4 100644
--- a/examples/v3arch/twisted/manager/ntfrcv/multiple-usm-users.py
+++ b/examples/v3arch/twisted/manager/ntfrcv/multiple-usm-users.py
@@ -95,8 +95,9 @@ config.addV3User(
# noinspection PyUnusedLocal,PyUnusedLocal,PyUnusedLocal
def cbFun(snmpEngine, stateReference, contextEngineId, contextName,
varBinds, cbCtx):
- print('Notification from ContextEngineId "%s", ContextName "%s"' % (contextEngineId.prettyPrint(),
- contextName.prettyPrint()))
+ print('Notification from ContextEngineId "%s", '
+ 'ContextName "%s"' % (contextEngineId.prettyPrint(),
+ contextName.prettyPrint()))
for name, val in varBinds:
print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))