示例#1
0
 def task(self, netdev, sessions):
     print('@task(%d):started...' % self.instance)
     ses = SnmpSession(netdev)
     ses.scan_device()
     gevent.sleep(0)
     data = ses.get_data()
     sessions.put_nowait({data['name']: {
             'snmp': data,
             'flow_export_source_ip': netdev.get_flow_export_source_ip(),
                                        },
                         })
     print('@task(%d):%s done!' % (self.instance, data['name']))
 def task(self, netdev, sessions):
     print('@task(%d):started...' % self.instance)
     ses = SnmpSession(netdev)
     if self.restrict:
         data = dict(name=netdev.name, ifOperStatus=ses.get_if_status())
         gevent.sleep(0)
     else:
         ses.scan_device()
         gevent.sleep(0)
         data = ses.get_data()
     if data['name'] != '__no_resp__':
         sessions.put_nowait({data['name']: {
             'name': netdev.name,
             'snmp': data,
             'flow_export_source_ip': netdev.get_flow_export_source_ip(),
                                        },
                         })
     print('@task(%d):%s done!' % (self.instance, data['name']))
示例#3
0
 def task(self, netdev):
     f = NamedTemporaryFile(mode='w+', delete=False)
     pid = os.fork()
     if pid == 0:
         ses = SnmpSession(netdev)
         ses.scan_device()
         json.dump(ses.get_data(), f)
         f.flush()
         f.close()
         sys.exit(0)
     pid, status = os.waitpid(pid, 0)
     f.seek(0, 0)
     data = json.load(f)
     self.uve.send(data)
     f.close()
     os.unlink(f.name)
     if netdev.get_snmp_name() is None:
         netdev.set_snmp_name(data['name'])
         self.uve.send_flow_uve({'name': netdev.get_snmp_name(),
             'flow_export_source_ip': netdev.get_flow_export_source_ip()})