Mercurial > p > roundup > code
diff roundup/scripts/roundup_server.py @ 2838:91b2d50f0b1a
eliminate as many pychecker warnings as possible:
unused imports, string exception, unused local variables etc.
| author | Alexander Smishlajev <a1s@users.sourceforge.net> |
|---|---|
| date | Fri, 29 Oct 2004 17:57:17 +0000 |
| parents | 9a6b451b1ba6 |
| children | a212699c21f2 |
line wrap: on
line diff
--- a/roundup/scripts/roundup_server.py Fri Oct 29 15:55:16 2004 +0000 +++ b/roundup/scripts/roundup_server.py Fri Oct 29 17:57:17 2004 +0000 @@ -17,13 +17,12 @@ """Command-line script that runs a server over roundup.cgi.client. -$Id: roundup_server.py,v 1.67 2004-10-29 13:41:25 a1s Exp $ +$Id: roundup_server.py,v 1.68 2004-10-29 17:57:17 a1s Exp $ """ __docformat__ = 'restructuredtext' -import socket -import sys, os, urllib, StringIO, traceback, cgi, binascii, getopt, imp -import SocketServer, BaseHTTPServer, socket, errno, ConfigParser +import errno, cgi, getopt, os, socket, sys, traceback, urllib +import ConfigParser, BaseHTTPServer, SocketServer, StringIO # python version check from roundup import configuration, version_check @@ -34,11 +33,6 @@ import roundup.instance from roundup.i18n import _ -try: - import signal -except: - signal = None - # "default" favicon.ico # generate by using "icotool" and tools/base64 import zlib, base64 @@ -146,7 +140,8 @@ # no tracker - spit out the index if rest == '/': - return self.index() + self.index() + return # figure the tracker l_path = rest.split('/') @@ -182,7 +177,6 @@ env['PATH_INFO'] = urllib.unquote(rest) if query: env['QUERY_STRING'] = query - host = self.address_string() if self.headers.typeheader is None: env['CONTENT_TYPE'] = self.headers.type else: @@ -199,14 +193,8 @@ env['SERVER_PORT'] = str(self.server.server_port) env['HTTP_HOST'] = self.headers['host'] - decoded_query = query.replace('+', ' ') - # do the roundup thang - if hasattr(tracker, 'Client'): - c = tracker.Client(tracker, self, env) - else: - c = client.Client(tracker, self, env) - c.main() + tracker.Client(tracker, self, env).main() def address_string(self): if self.LOG_IPADDRESS: @@ -366,7 +354,7 @@ ): options.update(self.OPTIONS) return configuration.Config.getopt(self, args, - short_options, long_options, **options) + short_options, long_options, config_load_options, **options) def _get_name(self): return "Roundup server" @@ -383,44 +371,46 @@ """Return HTTP server object to run""" # redirect stdout/stderr to our logfile # this is done early to have following messages go to this logfile - if self.LOGFILE: + if self["LOGFILE"]: # appending, unbuffered sys.stdout = sys.stderr = open(self["LOGFILE"], 'a', 0) # we don't want the cgi module interpreting the command-line args ;) sys.argv = sys.argv[:1] # build customized request handler class class RequestHandler(RoundupRequestHandler): - LOG_IPADDRESS = not self.LOG_HOSTNAMES + LOG_IPADDRESS = not self["LOG_HOSTNAMES"] TRACKER_HOMES = dict(self.trackers()) # obtain request server class - if self.MULTIPROCESS not in MULTIPROCESS_TYPES: + if self["MULTIPROCESS"] not in MULTIPROCESS_TYPES: print _("Multiprocess mode \"%s\" is not available, " - "switching to single-process") % self.MULTIPROCESS - self.MULTIPROCESS = "none" + "switching to single-process") % self["MULTIPROCESS"] + self["MULTIPROCESS"] = "none" server_class = BaseHTTPServer.HTTPServer - elif self.MULTIPROCESS == "fork": - class server_class(SocketServer.ForkingMixIn, + elif self["MULTIPROCESS"] == "fork": + class ForkingServer(SocketServer.ForkingMixIn, BaseHTTPServer.HTTPServer): pass - elif self.MULTIPROCESS == "thread": - class server_class(SocketServer.ThreadingMixIn, + server_class = ForkingServer + elif self["MULTIPROCESS"] == "thread": + class ThreadingServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): pass + server_class = ThreadingServer else: server_class = BaseHTTPServer.HTTPServer # obtain server before changing user id - allows to # use port < 1024 if started as root try: - httpd = server_class((self.HOST, self.PORT), RequestHandler) + httpd = server_class((self["HOST"], self["PORT"]), RequestHandler) except socket.error, e: if e[0] == errno.EADDRINUSE: raise socket.error, \ _("Unable to bind to port %s, port already in use.") \ - % self.PORT + % self["PORT"] raise # change user and/or group - setgid(self.GROUP) - setuid(self.USER) + setgid(self["GROUP"]) + setuid(self["USER"]) # return the server return httpd @@ -435,7 +425,8 @@ import win32event import win32file - SvcShutdown = "ServiceShutdown" + class SvcShutdown(Exception): + pass class RoundupService(win32serviceutil.ServiceFramework, BaseHTTPServer.HTTPServer): @@ -630,8 +621,9 @@ # if running in windows service mode, don't do any other stuff if ("-c", "") in optlist: - return win32serviceutil.HandleCommandLine(RoundupService, + win32serviceutil.HandleCommandLine(RoundupService, argv=sys.argv[:1] + args) + return # add tracker names from command line. # this is done early to let '--save-config' handle the trackers. @@ -663,13 +655,13 @@ config.PORT = port # fork the server from our parent if a pidfile is specified - if config.PIDFILE: + if config["PIDFILE"]: if not hasattr(os, 'fork'): print _("Sorry, you can't run the server as a daemon" " on this Operating System") sys.exit(0) else: - daemonize(config.PIDFILE) + daemonize(config["PIDFILE"]) # create the server httpd = config.get_server()
