bin/pvl.syslog-dhcp
changeset 169 a81ca751664d
parent 150 f12e83f8c34b
child 174 6f339a8a87dc
equal deleted inserted replaced
168:4e120851ff52 169:a81ca751664d
     8 
     8 
     9 import pvl.args
     9 import pvl.args
    10 import pvl.syslog.args
    10 import pvl.syslog.args
    11 
    11 
    12 import pvl.verkko.db as db
    12 import pvl.verkko.db as db
    13 import pvl.syslog.dhcp
    13 import pvl.dhcp.syslog
    14 import pvl.verkko.dhcp.leases
    14 import pvl.dhcp.leases
    15 
    15 
    16 import logging, optparse
    16 import logging, optparse
    17 
    17 
    18 log = logging.getLogger('main')
    18 log = logging.getLogger('main')
    19 
    19 
   292 
   292 
   293         self.hostdb = DHCPHostsDatabase(db)
   293         self.hostdb = DHCPHostsDatabase(db)
   294         self.leasedb = DHCPLeasesDatabase(db)
   294         self.leasedb = DHCPLeasesDatabase(db)
   295 
   295 
   296         # XXX
   296         # XXX
   297         self.filter = pvl.syslog.dhcp.DHCPSyslogFilter()
   297         self.parser = pvl.dhcp.syslog.DHCPSyslogParser()
   298 
   298 
   299     def createdb (self) :
   299     def createdb (self) :
   300         """
   300         """
   301             Initialize database tables.
   301             Initialize database tables.
   302         """
   302         """
   307     def process_syslog (self, item) :
   307     def process_syslog (self, item) :
   308         """
   308         """
   309             Handle a single item read from syslog to DB.
   309             Handle a single item read from syslog to DB.
   310         """
   310         """
   311 
   311 
   312         dhcp_item = self.filter.parse(item['msg'])
   312         dhcp_item = self.parser.parse(item['msg'])
   313 
   313 
   314         log.debug("%s: %s", item, dhcp_item)
   314         log.debug("%s: %s", item, dhcp_item)
   315         
   315         
   316         if not dhcp_item :
   316         if not dhcp_item :
   317             # ignore
   317             # ignore
   358                 for item in self.syslog :
   358                 for item in self.syslog :
   359                     self.process_syslog(item)
   359                     self.process_syslog(item)
   360             
   360             
   361             if self.leases :
   361             if self.leases :
   362                 # process internally
   362                 # process internally
   363                 #sync, leases = self.leases.process()
       
   364                 leases = self.leases.process()
   363                 leases = self.leases.process()
   365 
   364 
   366                 #if sync :
       
   367                 #    self.sync_leases(leases)
       
   368                 if leases :
   365                 if leases :
   369                     self.process_leases(leases)
   366                     self.process_leases(leases)
   370                 #else :
       
   371                 #    pass
       
   372 
   367 
   373             if not poll :
   368             if not poll :
   374                 # done
   369                 # done
   375                 break
   370                 break
   376 
   371 
   406         poll = None
   401         poll = None
   407 
   402 
   408     # leases
   403     # leases
   409     if options.leases_file :
   404     if options.leases_file :
   410         log.info("Open up DHCP leases...")
   405         log.info("Open up DHCP leases...")
   411         leases = pvl.verkko.dhcp.leases.DHCPLeasesDatabase(options.leases_file)
   406         leases = pvl.dhcp.leases.DHCPLeasesDatabase(options.leases_file)
   412 
   407 
   413         # force polling interval
   408         # force polling interval
   414         if options.leases_tail :
   409         if options.leases_tail :
   415             # XXX: min between syslog/leases?
   410             # XXX: min between syslog/leases?
   416             poll = options.leases_tail
   411             poll = options.leases_tail