def __init__(self, server_port, pidfname, logfname, statusfname, workdir='/tmp/', delim=['<<','>>'], sniffer_port=None): """ @param server_port The port to listen on for driver connections. @param pidfname The file name of the process ID file, used by DaemonProcess. @param logfname The file name of the logger logfile where comms traffic is logged, used by DaemonProcess. @param statsfname The name of the logger status file, where logger status info and errors is kept. @param workdir The path of the working directory where logger files are written, used by DaemonProcess. @param delim A 2-element delimter list used to delimit traffic from the driver in the logfile, thus demarking it from the device output. @param sniffer_port The port to listen on for sniffer connections. """ DaemonProcess.__init__(self, pidfname, logfname, workdir) self.server_port = server_port self.sniffer_port = sniffer_port self.driver_server_sock = None self.driver_sock = None self.driver_addr = None self.sniffer_server_sock = None self.sniffer_sock = None self.sniffer_addr = None self.delim = delim self.statusfname = workdir + statusfname
def _cleanup(self): """ Cleanup function prior to logger exit. Close comms, status file and call DaemonProcess cleanup. This is called by the DaemonProcess SIGTERM handler if termination occurs due to signal, or by atexit handler if the run loop concludes normally. """ self._close_device_comms() self._close_driver_comms() if self.statusfile: self.statusfile.write('_cleanup: logger stopping.\n') self.statusfile.flush() self.statusfile.close() self.statusfile = None DaemonProcess._cleanup(self)
def __init__(self, pidfname, logfname, statusfname, portfname, workdir, delim, ppid): """ Base logger process constructor. @param pidfname Process id file name. @param logfname Log file name. @param statusfname Status file name. @param portfname Port file name. @param workdir The work directory. @param delim 2-element delimiter to indicate traffic from the driver in the logfile. @param ppid Parent process ID, used to self destruct when parents die in test cases. """ DaemonProcess.__init__(self, pidfname, logfname, workdir) self.server_port = None self.driver_server_sock = None self.driver_sock = None self.driver_addr = None self.delim = delim self.statusfname = workdir + statusfname self.ppid = ppid self.last_parent_check = None self.portfname = workdir + portfname