Реализация скалярных объектов MIB в PySNMP не работает

Я загружаю пример из:

http://snmplabs.com/pysnmp/examples/v3arch/twisted/agent/cmdrsp/agent-side-mib-implementations.html

И попробуйте запустить:

snmpwalk -v2c -c общедоступный 127.0.0.1 .1.3.6

Получать:

Unhandled Error
Traceback (most recent call last):
  File "implementing-scalar-mib-objects1.py", line 81, in <module>
    reactor.run()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1261, in run
    self.mainLoop()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1270, in mainLoop
    self.runUntilCurrent()
--- <exception caught here> ---
  File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 896, in runUntilCurrent
    call.func(*call.args, **call.kw)
  File "/usr/lib/python2.7/dist-packages/pysnmp/carrier/base.py", line 70, in _cbFun
    self, transportDomain, transportAddress, incomingMessage
  File "/usr/lib/python2.7/dist-packages/pysnmp/entity/engine.py", line 152, in __receiveMessageCbFun
    self, transportDomain, transportAddress, wholeMsg
  File "/usr/lib/python2.7/dist-packages/pysnmp/proto/rfc3412.py", line 433, in receiveMessage
    PDU, maxSizeResponseScopedPDU, stateReference)
  File "/usr/lib/python2.7/dist-packages/pysnmp/entity/rfc3413/cmdrsp.py", line 150, in processPdu
    self.handleMgmtOperation(snmpEngine, stateReference, contextName, PDU)
  File "/usr/lib/python2.7/dist-packages/pysnmp/entity/rfc3413/cmdrsp.py", line 293, in handleMgmtOperation
    rspVarBinds = mgmtFun(*varBinds, **context)
  File "/usr/lib/python2.7/dist-packages/pysnmp/smi/instrum.py", line 261, in readNextVars
    return self.flipFlopFsm(self.fsmReadNextVar, *varBinds, **context)
  File "/usr/lib/python2.7/dist-packages/pysnmp/smi/instrum.py", line 227, in flipFlopFsm
    rval = mgmtFun((tuple(name), val), **context)
  File "/usr/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-SMI.py", line 527, in readGetNext
    return node.readGetNext((nextName, val), **context)
  File "/usr/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-SMI.py", line 660, in readGetNext
    return MibTree.readGetNext(self, varBind, **context)
  File "/usr/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-SMI.py", line 527, in readGetNext
    return node.readGetNext((nextName, val), **context)
  File "/usr/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-SMI.py", line 780, in readGetNext
    return self.readGet(varBind, **context)
  File "/usr/lib/python2.7/dist-packages/pysnmp/smi/mibs/SNMPv2-SMI.py", line 761, in readGet
    return self.name, self.getValue(name, **context)
exceptions.TypeError: getValue() got an unexpected keyword argument 'cbCtx'

В v1 я получаю пустой ответ:

$ snmpwalk -v 1 -c public 127.0.0.1 1.3.6
End of MIB

python3-pysnmp4 4.4.6-1 на тестировании Debian.


person Dmitry Budanov    schedule 06.10.2018    source источник


Ответы (1)


Ваша трассировка исходит из Python 2.7, а вы ссылаетесь на python3-pysnmp-4.4.6. Убедитесь, что вы используете версию pysnmp, совместимую с примерами.

В качестве примечания: пример скрипта, который вы используете, не будет отвечать на запросы SNMP v1, если вы не добавите:

 config.addVacmUser(snmpEngine, 1, 'my-area', 'noAuthNoPriv', (1, 3, 6, 5))

зовите к этому.

person Ilya Etingof    schedule 06.10.2018
comment
Тоже не работа. python3 Introduction-scalar-mib-objects1.py Необработанная трассировка ошибок (последний последний вызов): --- ‹здесь поймано исключение› --- Файл /usr/local/lib/python3.6/dist-packages/twisted/internet /base.py, строка 878, в runUntilCurrent... встроенные.TypeError: getValue() получил неожиданный ключевой аргумент 'snmpEngine' - person Dmitry Budanov; 07.10.2018
comment
Но отлично работает с pysnmp 4.4.5, установленным pip3. Это ошибка в 4.4.6? - person Dmitry Budanov; 07.10.2018