Пример #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 __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
Пример #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()})
Пример #4
0
 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']))
Пример #5
0
 def set_mibs(self, mib):
     if mib in SnmpSession.TABLES() and mib not in self.mibs:
         self.mibs.append(mib)
Пример #6
0
 def __init__(self, name, cfg={}, mibs=[]):
     self._raw = cfg
     self.name = name
     self.mibs = mibs or SnmpSession.TABLES()  #all