GETBULK command
- async pysnmp.hlapi.asyncio.bulkCmd(snmpEngine, authData, transportTarget, contextData, nonRepeaters, maxRepetitions, *varBinds, **options)
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.get_running_loop().create_future()which gets done whenever response arrives or error occurs.- Parameters:
snmpEngine (
SnmpEngine) – Class instance representing SNMP engine.authData (
CommunityDataorUsmUserData) – Class instance representing SNMP credentials.transportTarget (
UdpTransportTargetorUdp6TransportTarget) – Class instance representing transport type along with SNMP peer address.contextData (
ContextData) – Class instance representing SNMP ContextEngineId and ContextName values.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 (
ObjectType) – 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 True.
- Yields:
errorIndication (
ErrorIndication) – 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 sequence of sequences (e.g. 2-D array) of
ObjectTypeclass instances representing a table of MIB variables returned in SNMP response, with up tomaxRepetitionsrows, i.e.len(varBindTable) <= maxRepetitions.For
0 <= i < len(varBindTable)and0 <= j < len(varBinds),varBindTable[i][j]represents:For non-repeaters (
j < nonRepeaters), the first lexicographic successor ofvarBinds[j], regardless the value ofi, or anObjectTypeinstance with theendOfMibViewvalue if no such successor exists;For repeaters (
j >= nonRepeaters), thei-th lexicographic successor ofvarBinds[j], or anObjectTypeinstance with theendOfMibViewvalue if no such successor exists.
See RFC 3416#section-4.2.3 for details on the underlying
GetBulkRequest-PDUand the associatedGetResponse-PDU, such as specific conditions under which the server may truncate the response, causingvarBindTableto have less thanmaxRepetitionsrows.
- Raises:
PySnmpError – Or its derivative indicating that an error occurred while performing SNMP operation.
Examples
>>> import asyncio >>> from pysnmp.hlapi.asyncio import * >>> >>> async def run(): ... result_bulk = await bulkCmd( ... SnmpEngine(), ... CommunityData('public'), ... UdpTransportTarget(('demo.pysnmp.com', 161)), ... ContextData(), ... 0, 2, ... ObjectType(ObjectIdentity('SNMPv2-MIB', 'system')) ... ) ... errorIndication, errorStatus, errorIndex, varBinds = await result_bulk ... 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'))]]) >>>