예제 #1
0
    def unloadWebApp(self, vhost, web):
        webapp = self.allWebApps[(vhost, web)]
        name = os.path.split(webapp.getFileSystemPath())[1]
        modulename = "webapps." + name

        # count instances of the web app that we're going to unload...
        instances = [
            wapp for wapp in self.allWebApps.values()
            if wapp.getName() == webapp.getName()
        ]
        if len(instances) > 1:
            return False
        del instances

        for n in sys.modules.keys()[:]:
            if n.startswith(modulename) and type(
                    sys.modules[n]) is types.ModuleType:
                del sys.modules[n]

        if webapp in self.virtualHosts[vhost]:
            self.virtualHosts[vhost].remove(webapp)
        if vhost in self.webRoots and self.webRoots[vhost] is webapp:
            del self.webRoots[vhost]
        try:
            webapp.close()
        except Exception, x:
            log.warn("error during unload: %s", x)
예제 #2
0
파일: server_ssl.py 프로젝트: 20after4/Yaki
 def reloadWebApp(self, vhost, urlprefix):
     # reload the webapp for this url prefix
     numapps=len(self.allWebApps)
     webapp=self.allWebApps[(vhost,urlprefix)]
     webappname=webapp.getName()[0]
     webappid=id(webapp)
     del webapp
     wasRoot=False
     if vhost in self.webRoots:
         wasRoot=self.webRoots[vhost].getName()[0]==webappname
     log.info( "UNLOADING WEBAPP '%s' [%s] id=%08x" % (webappname, vhost, webappid) )
     if self.unloadWebApp(vhost, urlprefix):
         if len(self.allWebApps) != (numapps-1):
             log.warn( "**** WEBAPP '%s' [%s] DIDN'T UNLOAD FULLY ****" % (webappname, vhost))
         WA = self.readWebApp(webappname, vhost, isRoot=wasRoot)
         self._registerWebApp(vhost, WA, isRoot=wasRoot)
         log.info("RELOADED WEBAPP '%s' [%s] id=%08x" % (webappname, vhost, id(WA)))
         return True
     else:
         return False
예제 #3
0
 def reloadWebApp(self, vhost, urlprefix):
     # reload the webapp for this url prefix
     numapps = len(self.allWebApps)
     webapp = self.allWebApps[(vhost, urlprefix)]
     webappname = webapp.getName()[0]
     webappid = id(webapp)
     del webapp
     wasRoot = False
     if vhost in self.webRoots:
         wasRoot = self.webRoots[vhost].getName()[0] == webappname
     log.info("UNLOADING WEBAPP '%s' [%s] id=%08x" %
              (webappname, vhost, webappid))
     if self.unloadWebApp(vhost, urlprefix):
         if len(self.allWebApps) != (numapps - 1):
             log.warn("**** WEBAPP '%s' [%s] DIDN'T UNLOAD FULLY ****" %
                      (webappname, vhost))
         WA = self.readWebApp(webappname, vhost, isRoot=wasRoot)
         self._registerWebApp(vhost, WA, isRoot=wasRoot)
         log.info("RELOADED WEBAPP '%s' [%s] id=%08x" %
                  (webappname, vhost, id(WA)))
         return True
     else:
         return False
예제 #4
0
파일: server_ssl.py 프로젝트: 20after4/Yaki
    def unloadWebApp(self, vhost, web):
        webapp=self.allWebApps[(vhost,web)]
        name=os.path.split(webapp.getFileSystemPath())[1]
        modulename="webapps."+name
        
        # count instances of the web app that we're going to unload...
        instances = [wapp for wapp in self.allWebApps.values() if wapp.getName()==webapp.getName() ]
        if len(instances)>1:
            return False
        del instances
    
        for n in sys.modules.keys()[:]:
            if n.startswith(modulename) and type(sys.modules[n]) is types.ModuleType:
                del sys.modules[n]

        if webapp in self.virtualHosts[vhost]:
            self.virtualHosts[vhost].remove(webapp)
        if vhost in self.webRoots and self.webRoots[vhost] is webapp:
            del self.webRoots[vhost]
        try:
            webapp.close()
        except Exception,x:
            log.warn("error during unload: %s",x)