~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to start-loggerhead

  • Committer: Michael Hudson
  • Date: 2009-08-04 04:51:44 UTC
  • Revision ID: michael.hudson@canonical.com-20090804045144-o81w2bjdajr50a79
the only place setuptools was imported was to report its version, which is silly! (bug #402758)

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
# along with this program; if not, write to the Free Software
14
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
15
15
 
16
 
"""A script for starting the loggerhead process."""
 
16
"""
 
17
WARNING! This script has been deprecated and will go away soon!
 
18
A script for starting the loggerhead process.
 
19
"""
17
20
 
18
21
 
19
22
import logging
23
26
import sys
24
27
import urlparse
25
28
 
26
 
from configobj import ConfigObj
 
29
from bzrlib.plugin import load_plugins
 
30
from bzrlib.util.configobj.configobj import ConfigObj
27
31
 
28
32
from paste import httpserver
29
33
from paste.httpexceptions import make_middleware
34
38
from loggerhead.trace import make_handler, setup_logging
35
39
from loggerhead.apps.error import ErrorHandlerApp
36
40
 
 
41
 
37
42
def main():
 
43
    sys.stderr.write('\n\n')
 
44
    sys.stderr.write('WARNING!!! This script has been deprecated by '
 
45
                     'serve-branches, and will be removed in the next '
 
46
                     'release. Please migrate to serve-branches and report '
 
47
                     'any missing features.\n')
 
48
    sys.stderr.write('\n\n')
 
49
 
38
50
    home = os.path.realpath(os.path.dirname(__file__))
39
51
    default_pidfile = os.path.join(home, 'loggerhead.pid')
40
52
    default_configfile = os.path.join(home, 'loggerhead.conf')
41
53
    default_log_folder = os.path.join(home, 'logs')
42
54
    parser = OptionParser(usage='usage: %prog [options]', version='%prog')
43
 
    parser.add_option('-f', '--foreground', action='store_true', dest='foreground', default=False,
 
55
    parser.add_option('-f', '--foreground',
 
56
                      action='store_true', dest='foreground', default=False,
44
57
                      help="run in the foreground; don't daemonize")
45
 
    parser.add_option('-C', '--check', action='store_true', dest='check', default=False,
46
 
                      help="only start if not already running (useful for cron jobs)")
47
 
    parser.add_option('-p', '--pidfile', dest="pidfile", default=default_pidfile,
 
58
    parser.add_option('-C', '--check', action='store_true',
 
59
                      dest='check', default=False,
 
60
                      help=("only start if not already running (useful for "
 
61
                            "cron jobs)"))
 
62
    parser.add_option('-p', '--pidfile', dest="pidfile",
 
63
                      default=default_pidfile,
48
64
                      type=str, help="override pidfile location")
49
 
    parser.add_option('-c', '--config-file', dest="configfile", default=default_configfile,
50
 
                                          type=str, help="override configuration file location")
51
 
    parser.add_option('-L', '--log-folder', dest="log_folder", default=default_log_folder,
 
65
    parser.add_option('-c', '--config-file', dest="configfile",
 
66
                      default=default_configfile,
 
67
                      type=str, help="override configuration file location")
 
68
    parser.add_option('-L', '--log-folder', dest="log_folder",
 
69
                      default=default_log_folder,
52
70
                      type=str, help="override log file directory")
53
71
    options, args = parser.parse_args()
54
72
    if len(args) > 0:
57
75
    if options.check:
58
76
        if daemon.is_running(options.pidfile):
59
77
            sys.exit(0)
60
 
        sys.stderr.write('Did not find loggerhead running in %r; restarting...\n' % (options.pidfile,))
 
78
        sys.stderr.write('Did not find loggerhead running in %r;' % (
 
79
                         options.pidfile))
 
80
        sys.stderr.write(' restarting...\n')
61
81
 
62
82
    # read loggerhead config
63
83
 
66
86
    if extra_path:
67
87
        sys.path.insert(0, extra_path)
68
88
 
69
 
    potential_overrides = [ ('server.socket_port', int),
70
 
                            ('server.webpath', str),
71
 
                            ('server.thread_pool', int),
72
 
                            ('server.socket_host' ,str) ]
 
89
    potential_overrides = [('server.socket_port', int),
 
90
                           ('server.webpath', str),
 
91
                           ('server.thread_pool', int),
 
92
                           ('server.socket_host', str)]
73
93
    server_port = int(config.get('server.socket_port', 8080))
74
94
    nworkers = int(config.get('server.thread_pool', 10))
75
95
    server_host = config.get('server.socket_host', '0.0.0.0')
83
103
    if not options.foreground:
84
104
        sys.stderr.write('\n')
85
105
        sys.stderr.write('Launching loggerhead into the background.\n')
86
 
        sys.stderr.write('PID file: %s\n' % (options.pidfile,))
 
106
        sys.stderr.write('PID file: %s\n' % options.pidfile)
87
107
        sys.stderr.write('\n')
88
108
 
89
109
        daemon.daemonize(options.pidfile, home)
102
122
 
103
123
    if webpath:
104
124
        scheme, netloc, path, blah, blah, blah = urlparse.urlparse(webpath)
 
125
 
105
126
        def app(environ, start_response, orig=app):
106
127
            environ['SCRIPT_NAME'] = path
107
128
            environ['HTTP_HOST'] = netloc
 
129
            environ['wsgi.url_scheme'] = scheme
108
130
            return orig(environ, start_response)
109
131
 
 
132
    load_plugins()
 
133
 
110
134
    try:
111
135
        httpserver.serve(
112
136
            app, host=server_host, port=server_port,