diff options
| author | 2010-08-10 14:01:40 +0200 | |
|---|---|---|
| committer | 2010-08-10 14:01:40 +0200 | |
| commit | 85f50861e44565a8ce722cbb1fed2c98f9e5d256 (patch) | |
| tree | 38ad593a1e574e8c6a98123e7e7ebac0a785e25e /module/web/ServerThread.py | |
| parent | little fix (diff) | |
| download | pyload-85f50861e44565a8ce722cbb1fed2c98f9e5d256.tar.xz | |
webservers working, hotfolder hook
Diffstat (limited to 'module/web/ServerThread.py')
| -rw-r--r-- | module/web/ServerThread.py | 87 | 
1 files changed, 49 insertions, 38 deletions
diff --git a/module/web/ServerThread.py b/module/web/ServerThread.py index f7bf11b3c..40683004a 100644 --- a/module/web/ServerThread.py +++ b/module/web/ServerThread.py @@ -2,6 +2,8 @@  from __future__ import with_statement  from os.path import exists  from os.path import join +from os.path import abspath +from os import makedirs  from subprocess import PIPE  from subprocess import Popen  from subprocess import call @@ -30,21 +32,19 @@ class WebServer(threading.Thread):          avail = ["builtin"]          host = self.core.config['webinterface']['host']          port = self.core.config['webinterface']['port'] -        path = join(pypath, "module", "web") +        serverpath = join(pypath, "module", "web") +        path = join(abspath(""), "servers")          out = StringIO() -        #@TODO rewrite, maybe as hook -         -        if exists(join("module", "web", "pyload.db")): +        if not exists("pyload.db"):              #print "########## IMPORTANT ###########"              #print "###        Database for Webinterface does not exitst, it will not be available."              #print "###        Please run: python %s syncdb" % join(self.pycore.path, "module", "web", "manage.py")              #print "###        You have to add at least one User, to gain access to webinterface: python %s createsuperuser" % join(self.pycore.path, "module", "web", "manage.py")              #print "###        Dont forget to restart pyLoad if you are done."              log.warning(_("Database for Webinterface does not exitst, it will not be available.")) -            log.warning(_("Please run: python %s syncdb") % join(pypath, "module", "web", "manage.py")) -            log.warning(_("You have to add at least one User, to gain access to webinterface: python %s createsuperuser") % join(configdir, "module", "web", "manage.py")) -            log.warning(_("Dont forget to restart pyLoad if you are done.")) +            log.warning(_("Please run: python pyLoadCore -s")) +            log.warning(_("Go through the setup and create a database and add an user to gain access."))              return None          try: @@ -70,42 +70,47 @@ class WebServer(threading.Thread):          try: -            if exists(self.core.config["ssl"]["cert"]) and exists(self.core.config["ssl"]["key"]): -                if not exists("ssl.pem"): -                    key = file(self.core.config["ssl"]["key"], "rb") -                    cert = file(self.core.config["ssl"]["cert"], "rb") - -                    pem = file("ssl.pem", "wb") -                    pem.writelines(key.readlines()) -                    pem.writelines(cert.readlines()) - -                    key.close() -                    cert.close() -                    pem.close() - +            if self.https: +                if exists(self.core.config["ssl"]["cert"]) and exists(self.core.config["ssl"]["key"]): +                    if not exists("ssl.pem"): +                        key = file(self.core.config["ssl"]["key"], "rb") +                        cert = file(self.core.config["ssl"]["cert"], "rb") +     +                        pem = file("ssl.pem", "wb") +                        pem.writelines(key.readlines()) +                        pem.writelines(cert.readlines()) +     +                        key.close() +                        cert.close() +                        pem.close() +     +                else: +                    log.warning(_("SSL certificates not found.")) +                    self.https = False              else: -                self.https = False +                pass          except:              self.https = False          if not self.server in avail:              self.server = "builtin" -            logger.warning(_("Can't use %(server)s, either python-flup or %(server)s is not installed!") % {"server": self.server}) +            log.warning(_("Can't use %(server)s, either python-flup or %(server)s is not installed!") % {"server": self.server})          if self.server == "nginx": -            self.core.logger.info(_("Starting nginx Webserver: %s:%s") % (host, port)) -            config = file(join(path, "servers", "nginx_default.conf"), "rb") -            content = config.readlines() +            if not exists(join(path, "nginx")): +                makedirs(join(path, "nginx")) +             +            config = file(join(serverpath, "servers", "nginx_default.conf"), "rb") +            content = config.read()              config.close() -            content = "".join(content) -            content = content.replace("%(path)", join(path, "servers")) +            content = content.replace("%(path)", join(path, "nginx"))              content = content.replace("%(host)", host)              content = content.replace("%(port)", str(port)) -            content = content.replace("%(media)", join(path, "media")) +            content = content.replace("%(media)", join(serverpath, "media"))              content = content.replace("%(version)", ".".join(map(str, version_info[0:2])))              if self.https: @@ -113,32 +118,37 @@ class WebServer(threading.Thread):              ssl    on;              ssl_certificate    %s;              ssl_certificate_key    %s; -            """ % (self.core.config["ssl"]["cert"], self.core.config["ssl"]["key"])) +            """ % (abspath(self.core.config["ssl"]["cert"]), abspath(self.core.config["ssl"]["key"]) ))              else:                  content = content.replace("%(ssl)", "") -            new_config = file(join(path, "servers", "nginx.conf"), "wb") +            new_config = file(join(path, "nginx.conf"), "wb")              new_config.write(content)              new_config.close() -            command = ['nginx', '-c', join(path, "servers", "nginx.conf"),] +            command = ['nginx', '-c', join(path, "nginx.conf")]              self.p = Popen(command, stderr=PIPE, stdin=PIPE, stdout=Output(out)) +            log.info(_("Starting nginx Webserver: %s:%s") % (host, port))              import run_fcgi              run_fcgi.handle("daemonize=false", "method=threaded", "host=127.0.0.1", "port=9295")          elif self.server == "lighttpd": -            self.core.logger.info(_("Starting lighttpd Webserver: %s:%s") % (host, port)) -            config = file(join(path, "servers", "lighttpd_default.conf"), "rb") +             +            if not exists(join(path, "lighttpd")): +                makedirs(join(path, "lighttpd")) +             +             +            config = file(join(serverpath, "servers", "lighttpd_default.conf"), "rb")              content = config.readlines()              config.close()              content = "".join(content) -            content = content.replace("%(path)", join(path, "servers")) +            content = content.replace("%(path)", join("servers", "lighttpd"))              content = content.replace("%(host)", host)              content = content.replace("%(port)", str(port)) -            content = content.replace("%(media)", join(path, "media")) +            content = content.replace("%(media)", join(serverpath, "media"))              content = content.replace("%(version)", ".".join(map(str, version_info[0:2])))              if self.https: @@ -146,16 +156,17 @@ class WebServer(threading.Thread):              ssl.engine = "enable"              ssl.pemfile = "%s"              ssl.ca-file = "%s" -            """ % (join(selcorere.path, "ssl.pem"), self.core.config["ssl"]["cert"])) +            """ % ("ssl.pem" , self.core.config["ssl"]["cert"]) )              else:                  content = content.replace("%(ssl)", "") -            new_config = file(join(path, "servers", "lighttpd.conf"), "wb") +            new_config = file(join("servers", "lighttpd.conf"), "wb")              new_config.write(content)              new_config.close() -            command = ['lighttpd', '-D', '-f', join(path, "servers", "lighttpd.conf")] +            command = ['lighttpd', '-D', '-f', join(path, "lighttpd.conf")]              self.p = Popen(command, stderr=PIPE, stdin=PIPE, stdout=Output(out)) +            log.info(_("Starting lighttpd Webserver: %s:%s") % (host, port))              import run_fcgi              run_fcgi.handle("daemonize=false", "method=threaded", "host=127.0.0.1", "port=9295")  | 
