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 __init__(self, name, cfg={}, mibs=[], flow_export_source_ip=None, mgmt_ip=None): self._raw = cfg self.name = name self.snmp_ip = mgmt_ip or name self.mibs = mibs or SnmpSession.TABLES() #all self.flow_export_source_ip = flow_export_source_ip self.snmp_name = None
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()})
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 set_mibs(self, mib): if mib in SnmpSession.TABLES() and mib not in self.mibs: self.mibs.append(mib)
def __init__(self, name, cfg={}, mibs=[]): self._raw = cfg self.name = name self.mibs = mibs or SnmpSession.TABLES() #all