GETNEXT Operation¶
- async pysnmp.hlapi.v1arch.asyncio.next_cmd(snmpDispatcher: SnmpDispatcher, authData: CommunityData, transportTarget: AbstractTransportTarget, *varBinds: ObjectType, **options) tuple[ErrorIndication | None, Integer32 | str | int | None, Integer32 | int | None, tuple[ObjectType, ...]] ¶
Creates a generator to perform SNMP GETNEXT query.
When iterator gets advanced by
asyncio
main loop, SNMP GETNEXT request is send (RFC 1905#section-4.2.2). The iterator yieldsasyncio.Future
which gets done whenever response arrives or error occurs.- Parameters:
snmpDispatcher (
SnmpDispatcher
) – Class instance representing asynio-based asynchronous event loop and associated state information.authData (
CommunityData
) – Class instance representing SNMPv1/v2c credentials.transportTarget (
UdpTransportTarget
or) –Udp6TransportTarget
Class instance representing transport type along with SNMP peer address.*varBinds (
tuple
of OID-value pairs orObjectType
) – One or more class instances representing MIB variables to place into SNMP request.
Note
The SnmpDispatcher object may be expensive to create, therefore it is advised to maintain it for the lifecycle of the application/thread for as long as possible.
- Other Parameters:
**options – Request options:
lookupMib - load MIB and resolve response MIB variables at the cost of slightly reduced performance. Default is False, unless
ObjectType
is present among varBinds in which case lookupMib gets automatically enabled.
- Yields:
errorIndication (str) – True value indicates SNMP engine error.
errorStatus (str) – True value indicates SNMP PDU error.
errorIndex (int) – Non-zero value refers to varBinds[errorIndex-1]
varBinds (tuple) – A sequence of sequences (e.g. 2-D array) of OID-value pairs in form of base SNMP types (if lookupMib is False) or
ObjectType
class instances (if lookupMib is True) a table of MIB variables returned in SNMP response. Inner sequences represent table rows and ordered exactly the same as varBinds in request. Response to GETNEXT always contain a single row.
- Raises:
PySnmpError – Or its derivative indicating that an error occurred while performing SNMP operation.
Examples
>>> import asyncio >>> from pysnmp.hlapi.v1arch.asyncio import * >>> >>> async def run(): ... errorIndication, errorStatus, errorIndex, varBinds = await next_cmd( ... SnmpDispatcher(), ... CommunityData('public'), ... await UdpTransportTarget.create(('demo.pysnmp.com', 161)), ... ContextData(), ... ObjectType(ObjectIdentity('SNMPv2-MIB', 'system')) ... ) ... print(errorIndication, errorStatus, errorIndex, varBinds) >>> >>> asyncio.run(run()) (None, 0, 0, [[ObjectType(ObjectIdentity('1.3.6.1.2.1.1.1.0'), DisplayString('Linux i386'))]]) >>>