From 2f24177c361ba4d9deba2d7378f84aa96111db80 Mon Sep 17 00:00:00 2001 From: elie Date: Mon, 14 Sep 2015 05:20:24 +0000 Subject: * synchronous oneliner apps redesigned to offer Python generator-based API along with a more comprehensive set of accepted parameters. * massively documented (in Sphinx, NumPy style) --- .../cmdgen/getnext-v1-with-custom-mibs-location.py | 79 +++++++++++----------- 1 file changed, 41 insertions(+), 38 deletions(-) (limited to 'examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py') diff --git a/examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py b/examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py index 0367eb3..1d459ef 100644 --- a/examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py +++ b/examples/v3arch/asyncore/oneliner/manager/cmdgen/getnext-v1-with-custom-mibs-location.py @@ -1,29 +1,33 @@ -# -# GETNEXT Command Generator Application -# -# Perform SNMP GETNEXT operation with the following options: -# -# with SNMPv1, community 'public' -# over IPv4/UDP -# to an Agent at demo.snmplabs.com:161 -# two columns of the IF-MIB::ifEntry table -# search for pysnmp MIBs at specific filesystem location -# stop when response OIDs leave the scopes of initial OIDs -# -# This script performs similar to the following Net-SNMP command: -# -# $ snmpwalk -v1 -c public -ObentU demo.snmplabs.com IF-MIB::ifDescr IF-MIB::ifType -# -# The pysnmp engine maintains its own MIB search path which is usued -# for searching for MIB modules by name. By default pysnmp will search -# its built-in MIB repository (pysnmp.smi.mibs.instances, pysnmp.smi.mibs) -# and pysnmp-mibs package (pysnmp_mibs). Those two entries are normally -# found relative to $PYTHONPATH. Besides searching MIBs as Python modules -# (which could be egg-ed or not), pysnmp can also search for stand-alone -# files in given directories. The latter could be specified by -# ObjectIdentity.addMibSource() calls. New search path entries are added -# in front of existing ones in search path. -# +""" +Search PySNMP MIBs at custom location ++++++++++++++++++++++++++++++++++++++ + +Perform SNMP GETNEXT operation and resolve received var-binds with +PySNMP MIB(s) found at a custom location. Use the following SNMP options: + +* with SNMPv1, community 'public' +* over IPv4/UDP +* to an Agent at demo.snmplabs.com:161 +* two columns of the IF-MIB::ifEntry table +* search for pysnmp MIBs at specific filesystem location +* stop when response OIDs leave the scopes of initial OIDs + +The pysnmp engine maintains its own MIB search path which is used +for searching for MIB modules by name. By default pysnmp will search +its built-in MIB repository (pysnmp.smi.mibs.instances, pysnmp.smi.mibs) +and pysnmp-mibs package (pysnmp_mibs). Those two entries are normally +found relative to $PYTHONPATH. Besides searching MIBs as Python modules +(which could be egg-ed or not), pysnmp can also search for stand-alone +files in given directories. The latter could be specified by +ObjectIdentity.addMibSource() calls. New search path entries are added +in front of existing ones in search path. + +Functionally similar to: + +| $ snmpwalk -v1 -c public -ObentU demo.snmplabs.com \ +| IF-MIB::ifDescr IF-MIB::ifType + +"""# from pysnmp.entity.rfc3413.oneliner.cmdgen import * for errorIndication, \ @@ -34,19 +38,18 @@ for errorIndication, \ ContextData(), ObjectType(ObjectIdentity('IF-MIB', 'ifDescr').addMibSource('/tmp/mymibs')), ObjectType(ObjectIdentity('IF-MIB', 'ifType')), - lookupNames=True, lookupValues=True): - # Check for errors and print out results + lexicographicMode=False): + if errorIndication: print(errorIndication) break - else: - if errorStatus: - print('%s at %s' % ( - errorStatus.prettyPrint(), - errorIndex and varBinds[int(errorIndex)-1][0] or '?' - ) + elif errorStatus: + print('%s at %s' % ( + errorStatus.prettyPrint(), + errorIndex and varBinds[int(errorIndex)-1][0] or '?' ) - break - else: - for varBind in varBinds: - print(' = '.join([ x.prettyPrint() for x in varBind ])) + ) + break + else: + for varBind in varBinds: + print(' = '.join([ x.prettyPrint() for x in varBind ])) -- cgit v1.2.1