GETBULK Operation
- async pysnmp.hlapi.v1arch.asyncio.bulk_cmd(snmpDispatcher: SnmpDispatcher, authData: CommunityData, transportTarget: AbstractTransportTarget, nonRepeaters: int, maxRepetitions: int, *varBinds: ObjectType, **options) tuple[ErrorIndication | None, Integer32 | str | int | None, Integer32 | int | None, tuple[ObjectType, ...]]
Creates a generator to perform SNMP GETBULK query.
When iterator gets advanced by
asynciomain loop, SNMP GETBULK request is send (RFC 1905 Section 4.2.3). The iterator yieldsasyncio.Futurewhich 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 SNMPv2c credentials. (SNMPv1 / mpModel=0 is not allowed)transportTarget (
UdpTransportTargetor) –Udp6TransportTargetClass instance representing transport type along with SNMP peer address.nonRepeaters (int) – One MIB variable is requested in response for the first nonRepeaters MIB variables in request.
maxRepetitions (int) – maxRepetitions MIB variables are requested in response for each of the remaining MIB variables in the request (e.g. excluding nonRepeaters). Remote SNMP engine may choose lesser value than requested.
*varBinds (
tupleof OID-value pairs orObjectType) – One or more class instances representing MIB variables to place into SNMP request.
- Other Parameters:
**options – Request options:
lookupMib - load MIB and resolve response MIB variables at the cost of slightly reduced performance. Default is False, unless
ObjectTypeis 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]
varBindTable (tuple) – A flat sequence of variables returned in the SNMP GETBULK response. If
lookupMibisTrue, elements areObjectTypeinstances; otherwise they are OID-value pairs of base types. The order is the raw wire order: first the non-repeaters (at most one each), then up tomaxRepetitionsgroups of the repeaters in request order.The maximum length is
nonRepeaters + maxRepetitions * (len(varBinds) - nonRepeaters), but the agent may return fewer items (e.g., due toendOfMibViewor truncation).See RFC 3416 Section 4.2.3 for details on the underlying
GetBulkRequest-PDUand the associatedGetResponse-PDU.
- 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 bulk_cmd( ... SnmpDispatcher(), ... CommunityData('public'), ... await UdpTransportTarget.create(('demo.pysnmp.com', 161)), ... 0, 2, ... ObjectType(ObjectIdentity('SNMPv2-MIB', 'system')) ... ) ... print(errorIndication, errorStatus, errorIndex, varBinds) >>> >>> asyncio.run(run()) (None, 0, 0, [ObjectType(ObjectIdentity(ObjectName('1.3.6.1.2.1.1.1.0')), DisplayString('SunOS zeus.pysnmp.com 4.1.3_U1 1 sun4m')), ObjectType(ObjectIdentity(ObjectName('1.3.6.1.2.1.1.2.0')), ObjectIdentifier('1.3.6.1.4.1.424242.1.1'))]) >>>