Я пытаюсь выполнить обход по протоколу snmp на определенных сетевых устройствах.
На некоторых сетевых устройствах мне удается просмотреть все идентификаторы устройств, а на некоторых сетевых устройствах мне не удается просмотреть все идентификаторы устройств.
Вот мой код:
cmdGen = cmdgen.AsynCommandGenerator()
cmdGen.asyncNextCmd(
cmdgen.CommunityData('public', mpModel=0),
cmdgen.UdpTransportTarget(('ip', 161),timeout=timeout,retries=retries),
((1,3),),
(cbFun_Walk, None))
cmdGen.snmpEngine.transportDispatcher.runDispatcher()
Проблема в том, что иногда asyncCommandGenerator получает тайм-аут на certaion oid и существует вне потока.
Как вы можете видеть, поток достигает некоторого oid, получает ошибку тайм-аута и затем завершает поток.
Поэтому я хотел бы знать, как продолжить snmpwalk, даже если был достигнут тайм-аут oid.
В основном, если asyncCommandGenerator достигает oid с истекшим временем ожидания, он должен просто продолжить обход и получить остальные oids.
Как я могу этого добиться?