summaryrefslogtreecommitdiffstats
path: root/core/module/web/ServerThread.py
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2010-08-25 18:22:27 +0200
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2010-08-25 18:22:27 +0200
commit29f9dc8fb3396b03d732ebcbeb1cc8f00fe13897 (patch)
treef2a910cbea747a7b0c0a50d6c66691e54f5ef47f /core/module/web/ServerThread.py
parentmerged gui (diff)
downloadpyload-29f9dc8fb3396b03d732ebcbeb1cc8f00fe13897.tar.xz
new dirs
Diffstat (limited to 'core/module/web/ServerThread.py')
-rw-r--r--core/module/web/ServerThread.py212
1 files changed, 0 insertions, 212 deletions
diff --git a/core/module/web/ServerThread.py b/core/module/web/ServerThread.py
deleted file mode 100644
index c07364243..000000000
--- a/core/module/web/ServerThread.py
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/usr/bin/env python
-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
-from sys import version_info
-from cStringIO import StringIO
-import threading
-import sys
-import logging
-
-core = None
-log = logging.getLogger("log")
-
-class WebServer(threading.Thread):
- def __init__(self, pycore):
- global core
- threading.Thread.__init__(self)
- self.core = pycore
- core = pycore
- self.running = True
- self.server = pycore.config['webinterface']['server']
- self.https = pycore.config['webinterface']['https']
- self.setDaemon(True)
-
- def run(self):
- sys.path.append(join(pypath, "module", "web"))
- avail = ["builtin"]
- host = self.core.config['webinterface']['host']
- port = self.core.config['webinterface']['port']
- serverpath = join(pypath, "module", "web")
- path = join(abspath(""), "servers")
- out = StringIO()
-
- 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 pyLoadCore.py -s"))
- log.warning(_("Go through the setup and create a database and add an user to gain access."))
- return None
-
- try:
- import flup
- avail.append("fastcgi")
- except:
- pass
-
- try:
- call(["lighttpd", "-v"], stdout=PIPE, stderr=PIPE)
- import flup
- avail.append("lighttpd")
-
- except:
- pass
-
- try:
- call(["nginx", "-v"], stdout=PIPE, stderr=PIPE)
- import flup
- avail.append("nginx")
- except:
- pass
-
-
- try:
- 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:
- pass
- except:
- self.https = False
-
-
- if not self.server in avail:
- self.server = "builtin"
- log.warning(_("Can't use %(server)s, either python-flup or %(server)s is not installed!") % {"server": self.server})
-
-
- if self.server == "nginx":
-
- 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 = content.replace("%(path)", join(path, "nginx"))
- content = content.replace("%(host)", host)
- content = content.replace("%(port)", str(port))
- content = content.replace("%(media)", join(serverpath, "media"))
- content = content.replace("%(version)", ".".join(map(str, version_info[0:2])))
-
- if self.https:
- content = content.replace("%(ssl)", """
- ssl on;
- ssl_certificate %s;
- ssl_certificate_key %s;
- """ % (abspath(self.core.config["ssl"]["cert"]), abspath(self.core.config["ssl"]["key"]) ))
- else:
- content = content.replace("%(ssl)", "")
-
- new_config = file(join(path, "nginx.conf"), "wb")
- new_config.write(content)
- new_config.close()
-
- 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":
-
- 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("servers", "lighttpd"))
- content = content.replace("%(host)", host)
- content = content.replace("%(port)", str(port))
- content = content.replace("%(media)", join(serverpath, "media"))
- content = content.replace("%(version)", ".".join(map(str, version_info[0:2])))
-
- if self.https:
- content = content.replace("%(ssl)", """
- ssl.engine = "enable"
- ssl.pemfile = "%s"
- ssl.ca-file = "%s"
- """ % ("ssl.pem" , self.core.config["ssl"]["cert"]) )
- else:
- content = content.replace("%(ssl)", "")
- new_config = file(join("servers", "lighttpd.conf"), "wb")
- new_config.write(content)
- new_config.close()
-
- 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")
-
-
- elif self.server == "fastcgi":
- #run fastcgi on port
- import run_fcgi
- run_fcgi.handle("daemonize=false", "method=threaded", "host=127.0.0.1", "port=%s" % str(port))
- else:
- self.core.log.info(_("Starting django builtin Webserver: %s:%s") % (host, port))
- import run_server
- run_server.handle(host, port)
-
- def quit(self):
-
- try:
- if self.server == "lighttpd" or self.server == "nginx":
- self.p.kill()
- #self.p2.kill()
- return True
-
- else:
- #self.p.kill()
- return True
- except:
- pass
-
-
- self.running = False
-
-class Output:
- def __init__(self, stream):
- self.stream = stream
-
- def fileno(self):
- return 1
-
- def write(self, data): # Do nothing
- return None
- #self.stream.write(data)
- #self.stream.flush()
- def __getattr__(self, attr):
- return getattr(self.stream, attr)