* Asyncio and Twisted API moved entirely into high-level domain to
be aligned with other high-level APIs. This WILL BREAK backward
compatibility for those apps that use Twisted API.
* oneliner API moved to pysnmp.hlapi.asyncore location
* all hlapi components now pulled from inner modules to into
pysnmp.hlapi.asyncore.
* LCD configuration moved from SNMP apps classes to be stand-alone
* var-binds MIB<->protocol representation code moved from SNMP apps
classes to be stand-alone
API redesign:
* MibVariable becomes ObjectIdentity and moves to pysnmp.smi.rfc1902
* ObjectType and NotificationType classes resempling corresponding MIB MACROs
implemented
* SNMP Standard Applications and examples modified to support ObjectType
and NotificationType parameters
applications towards the following goals:
* avoid bonding with particular SNMP engine instance to promote single
app instance using many SNMP engine instances
* support two APIs for working with request data: one operates on the
whole PDU object while the other on PDU contents
* keep callback context data in stack rather than in stateful application
cache
* newly introduced sendVarBinds() method offers a more functional and
logical signatures.
* keep backward compatibility for all existing major/documented interfaces
apps objects to [a singular] snmpEngine object. That would allow
for better cache reuse and allow for a single app working with
many snmpEngine instances.
- Legacy interfaces and APIs dropped in new oneliner AsyncCommandGenerator
and AsyncNotificationOriginator classes (notice 'c' in Async). Original
AsynCommandGenerator and AsynNotificationOriginator implementations
rebuilt on top of these new optimized versions keeping all the legacy
for compatibility reasons. These classes no more keep references to
SnmpEngine what makes them reusable with many SnmpEngine class instances.
- Example on a single Transport Dispatcher use with multiple SnmpEngine's
in oneliner AsyncCommandGenerator & AsyncNotificationOriginator basaed
applicatons added.
apps objects to [a singular] snmpEngine object. That would allow
for better cache reuse and allow for a single app working with
many snmpEngine instances.
methods now accept optional authData parameter to remove specific entries
from LCD. This can be useful for modifying security parameters for
specific securityName.
* AsynNotificationOriginator.cfgCmdGen() does not take into account
securityModel & securityLevel when reducing LCD access via addTrapUser().
This improves LCD consistency on sparse add/del operatons but also
does not let you to configure different securityModels per securityname
at VACM though the cfgCmdGen() wrapper.
request is now implemented at Notification Originator app. The return
value of NotificationOriginator.sendNotification is now a composite object
that includes errorStatus, errorIndex and varBinds.
* The missing functionality of passing lookupNames & lookupValues params
to Notification Originator is now implemented. It may make sense for
INFORMs.
* The missing functionality of passing contextName to oneliner
version of NotificationOriginator.sendNotification is now implemented.
1) CommunityData and TransportTarget classes now take optional
tag and tagList initializers respectively
2) NotificationOriginator.cfgNtfOrg() method does not take tagList parameter
anymore but uses tag values carried by CommunityData and TransportTarget
instances
3) If no tag information is specified, use TransportTarget instance hash
as a tag which binds CommunityData instance with TransportTarget instance
(the above is needed for notification generation)