Найти - Пользователи
Полная версия: pysnmp, AsynCommandGenerator.
Начало » Python для экспертов » pysnmp, AsynCommandGenerator.
1
plusplus
Пытаюсь использовать асинхронный диспетчер.
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from pysnmp.entity.rfc3413.oneliner import cmdgen
def cbFun(sendRequestHandle, errorIndication, errorStatus, errorIndex,
          varBinds, cbCtx):
    print varBinds
def main():
    #Синхронный диспетчер
    ip = '127.0.0.1'
    cmdGen = cmdgen.CommandGenerator()
    errorIndication, errorStatus, errorIndex, varBinds = cmdGen.nextCmd(
        cmdgen.CommunityData('mymypub'),
        cmdgen.UdpTransportTarget((ip, 161)),
        '1.3.6.1.2.1.17.7.1.2.2.1.2')
    #Выводит список varBinds, в котором около 200 элементов
    print varBinds
    #Асинхронный диспетчер
    cmdGen = cmdgen.AsynCommandGenerator()
    cmdGen.asyncNextCmd(
            cmdgen.CommunityData('mymypub'),
            cmdgen.UdpTransportTarget((ip, 161)),
            ((1,3,6,1,2,1,17,7,1,2,2,1,2),),
            (cbFun, ip))
    cmdGen.snmpEngine.transportDispatcher.runDispatcher()
    #После вызова callback-функции cbFun выведется varBinds, в котором будет только 1 элемент
if __name__ == '__main__':
    main()

Почему при асинхронном диспетчере я получаю одно значение? Как получить все, что я не так делаю?
plusplus
Ответ нашел, надо было добавить return True в функции cbFun
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB