示例#1
0
 def saveCache(self):
     """Save the current state of the class's cache to the provided file."""
     # we explicity send a pointer to the class variable _cache just in
     # case the instance has a _cache variable defined in it's dictionary.
     filename = self.getCacheFilename()
     if not filename:
         raise ClassObjectError, "no cache filename provided."
     try:
         XMLObject.writeXML(self, data={'_cache': self.__class__._cache},
                        filename=filename, createDir=1)
     except (IOError, OSError):
         tracebackutil.printTraceback()
         pass
示例#2
0
    def saveState(self, filename=None, basedir=None, basename=None, **kwargs):
        """Overloaded so defaults can be set if the caller doesn't provide
        values for where the data should be written to."""
        
        if basedir and basedir[0] != '/':
            basedir = os.path.join(self.rootStateDir, basedir)
        elif not basedir:
            basedir = self.rootStateDir
        if not basename:
            basename = "%s.state" % self.__class__.__name__

        try:
            self.writeXML(filename=filename,
                          basedir=basedir, basename=basename,
                          createDir=True, **kwargs)
        except (IOError, OSError):
            tracebackutil.printTraceback()
            pass
示例#3
0
    def shutdownServer(self, exit=0):
        """Close all connections and file handlers."""

        # there are open exceptions here, which is okay, because
        # we really want to shut down the server here!

        try:
            log("shutdownServer(): %s" % self.closemsg)
        except:
            printTraceback()
            
        for conn in self.conns.values():
            try:
                conn.close()
                self.removeConnection(conn)
            except:
                printTraceback()

        try:
            if self.socket:
                self.socket.close()
        except:
            printTraceback()

        if exit:
            os._exit(2)
示例#4
0
    def shutdownServer(self, exit=0):
        """Close all connections and file handlers."""

        # there are open exceptions here, which is okay, because
        # we really want to shut down the server here!

        try:
            log("shutdownServer(): %s" % self.closemsg)
        except:
            printTraceback()
            
        for conn in self.conns.values():
            try:
                conn.close()
                self.removeConnection(conn)
            except:
                printTraceback()

        try:
            if self.socket:
                self.socket.close()
        except:
            printTraceback()

        if exit:
            os._exit(2)
示例#5
0
                # 'nice' exit point from mainloop()

                if self.shutdown:
                    self.shutdownServer()
                    return 

            except KeyboardInterrupt, errMsg:
                log(str(errMsg))
                self.closemsg = 'Ctrl-C'
                self.shutdownServer()
                return  # this is an exit point from mainloop()
                
            except:
                self.closemsg = 'exception'
                printTraceback()
                if self.notify:
                    try:
                        log('Notify %s of shutdown' % str(self.notify))
                        body = getTraceback()
                        subject = '%s:%d died' % (getlocalhost(), self.servPort)
                        sendmail(self.notify, body, subject=subject)
                    except:
                        pass
                self.shutdownServer()
                return  # this is an exit point from mainloop()
                    
                # time.sleep(1)  # slow down errors to avoid filling drive


# ---------------------------------------------------------------------------
示例#6
0
                # 'nice' exit point from mainloop()

                if self.shutdown:
                    self.shutdownServer()
                    return 

            except KeyboardInterrupt, errMsg:
                log(str(errMsg))
                self.closemsg = 'Ctrl-C'
                self.shutdownServer()
                return  # this is an exit point from mainloop()
                
            except:
                self.closemsg = 'exception'
                printTraceback()
                if self.notify:
                    try:
                        log('Notify %s of shutdown' % str(self.notify))
                        body = getTraceback()
                        subject = '%s:%d died' % (getlocalhost(), self.servPort)
                        sendmail(self.notify, body, subject=subject)
                    except:
                        pass
                self.shutdownServer()
                return  # this is an exit point from mainloop()
                    
                # time.sleep(1)  # slow down errors to avoid filling drive


# ---------------------------------------------------------------------------