From b9a7b9c955df98b1e5eec250f418c3df3b7d0199 Mon Sep 17 00:00:00 2001 From: Ilya Etingof Date: Tue, 12 Feb 2019 09:16:17 +0100 Subject: Reformat example scripts for easier reading (#241) --- .../asyncore/agent/cmdrsp/alternative-mib-tree.py | 7 +++--- .../asyncore/agent/cmdrsp/custom-mib-controller.py | 5 ++-- .../asyncore/agent/cmdrsp/custom-snmp-engine-id.py | 4 +-- .../cmdrsp/implementing-scalar-mib-objects.py | 4 +-- .../agent/cmdrsp/implementing-snmp-table.py | 29 +++++++++++++++------- .../cmdrsp/listen-on-ipv4-and-ipv6-interfaces.py | 5 ++-- .../agent/cmdrsp/listen-on-multiple-interfaces.py | 5 ++-- .../listening-on-virtual-network-interface.py | 4 +-- .../agent/cmdrsp/multiple-snmp-communities.py | 4 +-- .../asyncore/agent/cmdrsp/multiple-snmp-engines.py | 4 +-- .../asyncore/agent/cmdrsp/multiple-usm-users.py | 6 +++-- .../agent/cmdrsp/observe-request-processing.py | 11 +++++--- .../multiple-different-notifications-at-once.py | 3 +++ .../ntforg/send-inform-to-multiple-managers.py | 3 +++ .../ntforg/send-notification-over-ipv4-and-ipv6.py | 2 ++ .../ntforg/send-packet-from-specific-address.py | 1 + .../agent/ntforg/send-trap-to-multiple-managers.py | 3 +++ .../v3arch/asyncore/agent/ntforg/usm-md5-none.py | 6 ++--- examples/v3arch/asyncore/agent/ntforg/v1-trap.py | 1 + .../v3arch/asyncore/agent/ntforg/v2c-inform.py | 5 ++-- .../ntforg/v2c-trap-with-notification-objects.py | 2 ++ examples/v3arch/asyncore/agent/ntforg/v2c-trap.py | 5 ++-- examples/v3arch/asyncore/agent/ntforg/v3-trap.py | 2 ++ .../custom-contextengineid-and-contextname.py | 4 +++ .../manager/cmdgen/custom-timeout-and-retries.py | 3 +++ .../manager/cmdgen/fetch-variables-over-ipv6.py | 5 ++++ .../getbulk-fetch-scalar-and-table-variables.py | 4 +++ .../manager/cmdgen/getbulk-multiple-oids-to-eom.py | 4 +++ .../getnext-multiple-oids-and-resolve-with-mib.py | 6 ++++- .../manager/cmdgen/getnext-multiple-oids-to-eom.py | 6 ++++- .../manager/cmdgen/observe-request-processing.py | 4 +++ .../v3arch/asyncore/manager/cmdgen/pull-subtree.py | 8 +++++- .../cmdgen/send-packets-from-specific-interface.py | 8 ++++-- .../manager/cmdgen/set-multiple-scalar-values.py | 3 +++ .../manager/cmdgen/spoof-source-address.py | 2 ++ .../asyncore/manager/cmdgen/usm-sha-aes128.py | 4 +++ .../v3arch/asyncore/manager/cmdgen/usm-sha-none.py | 3 +++ examples/v3arch/asyncore/manager/cmdgen/v1-get.py | 3 +++ examples/v3arch/asyncore/manager/cmdgen/v2c-set.py | 3 +++ .../ntfrcv/determine-peer-network-address.py | 11 ++++---- .../manager/ntfrcv/multiple-network-interfaces.py | 4 +-- ...ltiple-network-transports-incl-ipv4-and-ipv6.py | 4 +-- .../asyncore/manager/ntfrcv/multiple-usm-users.py | 4 +-- ...bserve-request-processing-over-ipv4-and-ipv6.py | 4 +-- .../manager/ntfrcv/regexp-community-name.py | 10 +++++--- .../proxy/command/ipv6-to-ipv4-conversion.py | 12 +++++---- .../asyncore/proxy/command/v2c-to-v1-conversion.py | 11 ++++---- .../asyncore/proxy/command/v2c-to-v3-conversion.py | 13 ++++++---- .../asyncore/proxy/command/v3-to-v2c-conversion.py | 12 +++++---- 49 files changed, 191 insertions(+), 85 deletions(-) (limited to 'examples/v3arch/asyncore') 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 -- cgit v1.2.1