Python 3.4 - последняя версия PYSNMP (pip --update)
Возникли проблемы с установкой значений ifAlias с использованием библиотеки PYSNMP. Надеюсь, что кто-то сможет пролить свет на то, почему я получаю ошибки во второй функции.
Проверено, что этот OID настраивается с помощью стандартного браузера MIB (iReasoning)
Этот отлично работает. Вам просто нужно вставить строку new sys contact value
в функцию, и это хорошо.
def SNMP_SET_SYSCONTACT(syscontact):
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.setCmd(
cmdgen.CommunityData('private'),
cmdgen.UdpTransportTarget(('10.101.0.221', 161)),(cmdgen.MibVariable('.1.3.6.1.2.1.1.4.0'), syscontact),
lookupNames=False,
lookupValues=True)
Этот вообще не работает.
def SNMP_SET_IFALIAS(ifAlias):
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.setCmd(
cmdgen.CommunityData('private'),
cmdgen.UdpTransportTarget(('10.101.0.221', 161)),(cmdgen.MibVariable('1.3.6.1.2.1.31.1.1.1.18.1'), ifAlias),
lookupValues=False,
lookupNames=False)
Я получаю сообщение об ошибке:
Traceback (most recent call last):
File "<pyshell#632>", line 1, in <module>
SNMP_SET_IFALIAS('Check this out')
File "<pyshell#629>", line 2, in SNMP_SET_IFALIAS
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.setCmd(cmdgen.CommunityData('private'),cmdgen.UdpTransportTarget(('10.101.0.221', 161)),(cmdgen.MibVariable('1.3.6.1.2.1.31.1.1.1.18.1'), ifAlias),lookupValues=False, lookupNames=False)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 452, in setCmd
kwargs.get('contextName', null)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 314, in setCmd
self.makeVarBinds(varBinds),
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 212, in makeVarBinds
varVal = varName.getMibNode().getSyntax().clone(varVal)
AttributeError: 'MibIdentifier' object has no attribute ‘getSyntax'
Если потребуется, я с радостью предоставлю дополнительную информацию.
Еще два быстрых вопроса
1) Я попытался загрузить последнюю версию pysnmp 4.2.6.2, но установка блокируется из-за следующей ошибки
Не удалось найти версию, удовлетворяющую требованию pyasn1> = 0.1.8
(из pysnmp) (из версий: 0.0.9a0, 0.0.10a0, 0.0.11a0, 0.0.12a0,
0.0.13a0, 0.0 .13b0, 0.0.13, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7) Соответствующее распределение не найдено для pyasn1> = 0.1.8 (из pysnmp)
2) Могу ли я неправильно понять приведенные выше lookupValues = False и lookupNames = False kwargs? Я подумал, что это должно было позволить мне получить доступ к OID напрямую, без необходимости импортировать MIB. По возможности я хотел избежать любых зависимостей.