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']))
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()})