diff options
-rw-r--r-- | CHANGES | 146 | ||||
-rw-r--r-- | README | 80 | ||||
-rw-r--r-- | setup.py | 18 |
3 files changed, 203 insertions, 41 deletions
@@ -1,3 +1,149 @@ +Thu Jun 07 19:23:33 MSD 2003 + +Changes to version 3.3.4 +------------------------ + +- Raw values access interface of asn1.base.SimpleAsn1Object reworked for + better performance +- initialValue of asn1.base.SimpleAsn1Object class objects may now be + defined as method +- Bugfix to asn1.base.SimpleAsn1Object value assignment -- copy mutable + values rather then store a reference to the passed one +- The tree-making facility of asn1.univ.ObjectIdentifier class reworked + for better performance and clearer protocol +- Bugfix initial value assignment of proto.rfc1157.RequestId & + proto.rfc1905.RequestId classes to get much less repetitive values +- The getTerminal() method implemented to all base ASN1 data types + (simple & structed) for a more constent API +- Bugfix to examples/* var-bind pretty printing (IpAddress wouldn't print). +- UCD command line interface mixins now support the rest of SNMP data types + (Gauge, Counter32 etc.) + +Thu Mar 20 18:43:55 MSD 2003 + +Changes to version 3.3.3 +------------------------ + +- The constraints methods set of asn1.base.Asn1Object converted to + a set of flags accompanied by a single constraints checking + method for better efficiency. +- The asn1.base.ChoiceTypeAsn1Object.get() method converted to + getTerminal() to handle possible structured Choice elements + (may cause incompatibilities!). +- ber.base.decodeTag() function substitutes functionally similar + code scattered over a few BER decoders. +- asn1.univ.ObjectIdentifier.str2num()/num2str() methods code optimized + for better performance. +- Bugfix to handle_error() methods of udp.asynrole.manager/agent. +- Bugfix to examples/snmpwalk.py v2c.EndOfMibView handling in + response. +- examples/ converted to use `env' for interpreter invocation. +- Many minor optimization changes. + +Wed Mar 19 18:01:05 MSD 2003 + +Changes to version 3.3.2 +------------------------ + +- Bugfix to examples/asyncmgr.py to make the tool simultaneous + request safe +- Bugfix to setup.py -- some sub-packages were not installed +- The request-specific match() method of proto.v1 and proto.v2c + split on request and PDU-specific parts +- Half-baked SNMP v.3 files appeared in 3.3.1 by mistake (rfc2571.py, + rfc2572.py) excluded + +Tue Jan 14 19:41:21 MSD 2003 + +Changes to version 3.3.1 +------------------------ + +- role.manager() now uses a user-specified callback function to + verify received SNMP messages (this mostly addresses the out-of-order + SNMP messages problem). +- examples/* tools updated to utilize role.manager()'s message verification + callback function +- Net-SNMP-style command-line interface implemented (as a sub-package + pysnmp.proto.cli) +- High-level API to SNMP message objects implemented (as a sub-package + pysnmp.proto.api) +- The examples/asyncmgr.py tool now supports all available SNMP message + types +- pysnmp.asn1.ber sub-package re-written to act as an optional mix-in + to base ASN.1 objects (and moved under pysnmp.asn1.encoding package) +- quite a few small fixes + +Thu Nov 14 18:09:53 MSD 2002 + +Changes to version 3.2.2 +------------------------ + +- Bugfix to default value for 'dst' address parameter in + mapping/udp/role.py, mapping/udp/asynrole.py and + mapping/udp/bulkrole.py. +- asyncode compatibility bugfix to asynrole.manager.handle_error() + and asynrole.agent.handle_error() parameters list. Affected the + mapping/udp/asynrole.py and examples/asyncmgr.py scripts. +- Bugfix to transport-level exceptions handling code in + examples/snmpbulk.py and mapping/udp/bulkrole.py. +- Bugfix to reportTypeFlag handling at examples/snmpbulk.py. +- Command line parameters support implemented to the + examples/asyncmgr.py script. + +Thu Oct 31 08:32:49 MSD 2002 + +Changes to version 3.2.1 +------------------------ + +- asn1.base.ChoiceTypeAsn1Object.get() method added for recursively + fetching enclosed scalar terminals whenever possible. +- examples/*.py scripts updated to make use of the above feature + (by means of -R command line swich). + +Tue Oct 15 23:53:32 MSD 2002 + +Changes to version 3.1.3 +------------------------ + +- A few bugs fixed in example/snmptrap.py and example/snmpset.py + +Sat Oct 12 10:43:46 MSD 2002 + +Changes to version 3.1.2 +------------------------ + +- Incorrect params to role.agent() constructor in examples/snmptrapd.py fixed +- The __all__ list memebers in rfc1155.py and rfc1902.py updated + +Fri Oct 11 18:34:31 MSD 2002 + +Changes to version 3.1.1 +------------------------ + +- A bug in setup.py (that prevents package installation) has been fixed. +- Syntax typo in asynrole.py has been fixed. + +Mon Oct 7 08:29:58 MSD 2002 + +Changes to version 3.1.0 +------------------------ + +- The snmpy compatibility sub-package added. +- __hash__() methods implelented for Asn1Object-based + objects. +- Many stupid typos fixed thoughout the code. + +Tue Oct 1 08:02:43 MSD 2002 + +Changes to version 3.0.0 +------------------------ + +- Major re-write of the whole package aimed at a more accurate, standards + compliant and extensible ASN.1 and SNMP protocol objects implementation. + + Backward compatibility with earlier PySMMP versions is preserved by means + of compatibility sub-packages. + Wed Dec 18 20:39:00 MSD 2002 Changes to version 2.0.8 @@ -1,8 +1,8 @@ -SNMP engine for Python, version 2.0.8 -------------------------------------- +SNMP engine for Python, version 3.x +----------------------------------- -This is a Python implementation of SNMP v.1/v.2c engine. It's general +This is a Python implementation of SNMP v.1/v.2c engine. Its general functionality is to assemble/disassemble SNMP messages from/into given SNMP Object IDs along with associated values. PySNMP also provides a few transport methods specific to TCP/IP networking. @@ -10,30 +10,37 @@ a few transport methods specific to TCP/IP networking. PySNMP is written entirely in Python and is self-sufficient in terms that it does not rely on any third party tool (it is not a wrapper!). -This code is known to be used under Python interpreter versions 1.5.2, -1.6 and 2.0. - -This package is distributed under terms and conditions of BSD-style +The PySNMP package is distributed under terms and conditions of BSD-style license. See the LICENSE file for details. -PRECAUTIONS +FEATURES +-------- + +* Complete SNMPv1 and SNMPv2c support +* Seamless SNMP manager and agent roles support +* Both synchronous and asynchronous IO API support +* Fully documented API with many examples +* Generic, objective ASN.1 framework +* Partial MIB I/II data types and macros implementation (check + CVS at SF for recent development) +* 100% Python, works with Python 1.x and later +* MT-safe + +MISFEATURES ----------- -If you are starting a new project, consider trying the 3.x branch -of PySNMP which is written in a more standards-compliant way and is -[hopefully] stable enough by the time of this writing. +* No MIB compiler (though, it's possible to compile ASN.1 code into PySNMP + classes by hand, oh...) +* No SNMP v.3 support (though, it's almost implemented, check CVS at SF) -Unfortunately, version 2.x of PySNMP software is *INCOMPATIBLE* with -its 1.x branch at the moment. For a fully compatible solution, use the -3.x branch of PySNMP package. +PRECAUTIONS +----------- -While the pure-Python MIB compiler project is underway, the ASN.1 -types of Object IDs associated values must be explicitly specified -whenever user application passes values to SNMP engine. +For notes on backward compatibility with previous PySNMP revisions, please, +refer to the COMPATIBILITY file in the PySNMP distribution. -Lack of MIB support leads to another limitation -- all the PySNMP -methods accept and report Object IDs only in dotted numeric (that is -not symbolic) representation. +Since MIB support is not integrated into PySNMP package at the moment, this +software accept and report Object IDs only in a non-symbolic (dotted) notation. INSTALLATION ------------ @@ -50,13 +57,13 @@ directory in the following way (assuming your Python distribution resides under /usr/local/lib/python): $ cd /usr/local/lib/python/site-packages -$ tar xvf /tmp/pysnmp-2.0.8.tar -$ echo pysnmp-2.0.8 > pysnmp.pth +$ tar xvf /tmp/pysnmp-3.3.1.tar +$ echo pysnmp-3.3.1 > pysnmp.pth Alternatively, the $PYTHONPATH environment variable can be updated to point to your PySNMP package location (assuming your UNIX shell is bash): -export PYTHONPATH=/home/ilya/src/py/pysnmp-2.0.8:$PYTHONPATH +export PYTHONPATH=/home/ilya/src/py/pysnmp-3.3.1:$PYTHONPATH The latter trick is also known to work on Windows. @@ -74,23 +81,18 @@ Here is an example of using pysnmp package for querying SNMP agent Python 1.5.2 (#3, Aug 25 1999, 19:14:24) [GCC 2.8.1] on sunos5 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam ->>> from pysnmp import role, v2c, asn1 ->>> req = v2c.GETREQUEST() ->>> req['encoded_oids'] = [ asn1.OBJECTID().encode('1.3.6.1.2.1.1.1.0') ] +>>> from pysnmp.proto import v1 +>>> from pysnmp.proto.api import generic +>>> from pysnmp.mapping.udp import role +>>> req = v1.GetRequest() +>>> req.apiGetPdu().apiSetVarBind([('1.3.6.1.2.1.1.1.0', None)]) >>> tr = role.manager(('router-1.glas.net', 161)) ->>> (rawrsp, src) = tr.send_and_receive(req.encode()) ->>> rsp = v2c.RESPONSE() ->>> rsp.decode(rawrsp) ->>> oids = map(lambda x:x[0], map(asn1.OBJECTID().decode, rsp['encoded_oids'])) ->>> print oids -['.1.3.6.1.2.1.1.1.0'] ->>> vals = map(lambda x: x[0](), map(asn1.decode, rsp['encoded_vals'])) ->>> print vals -['Cisco Internetwork Operating System Software \015\012IOS (tm) 5300 Software -(C5300-J-M), Experimental Version 12.1(20001115:152556) [haag-V121_4 102] -\015\012Copyright (c) 1986-2000 by cisco Systems, Inc.\015\012Compiled -Mon 20-Nov-00 19:22 by haag'] ->>> +>>> (answer, src) = tr.send_and_receive(req.encode()) +>>> rsp = v1.GetResponse() +>>> rsp.decode(answer) +>>> vars = rsp.apiGetPdu().apiGetVarBind() +>>> print vars +[('.1.3.6.1.2.1.1.1.0', OctetString('Cisco Internetwork Operating System Software \015\012IOS (tm) 5400 Software(C5400-JS-M), Version 12.2(11.8b), MAINTENANCE INTERIM SOFTWARE\015\012 Copyright (c) 1986-2002 by cisco Systems, Inc.\015\012Compiled Tue 30-Jul-02 19:02 by pwade'))] 8X---------------- cut here -------------------- @@ -3,11 +3,25 @@ from distutils.core import setup setup(name="pysnmp", - version="2.0.8", + version="3.3.4", description="Python SNMP Toolkit", author="Ilya Etingof", author_email="ilya@glas.net ", url="http://sourceforge.net/projects/pysnmp/", - packages=['pysnmp'], + packages = [ 'pysnmp', + 'pysnmp.asn1', + 'pysnmp.asn1.encoding', + 'pysnmp.asn1.encoding.ber', + 'pysnmp.proto', + 'pysnmp.proto.api', + 'pysnmp.proto.api.generic', + 'pysnmp.proto.cli', + 'pysnmp.proto.cli.ucd', + 'pysnmp.mapping', + 'pysnmp.mapping.udp', + 'pysnmp.compat', + 'pysnmp.compat.pysnmp1x', + 'pysnmp.compat.pysnmp2x', + 'pysnmp.compat.snmpy' ], license="BSD" ) |