5 import tornado
.httpserver
10 from .. import Backend
11 from ..decorators
import *
13 from . import handlers
16 tornado
.options
.define("debug", default
=False, help="Run in debug mode", type=bool)
17 tornado
.options
.parse_command_line()
19 class Application(tornado
.web
.Application
):
22 debug
= tornado
.options
.options
.debug
,
26 tornado
.web
.Application
.__init
__(self
, [
27 # Redirect strayed users.
28 #(r"/", handlers.RedirectHandler),
31 (r
"/noop", handlers
.NoopHandler
),
32 (r
"/error/test", handlers
.ErrorTestHandler
),
33 (r
"/error/test/(\d+)", handlers
.ErrorTestHandler
),
36 (r
"/builds/create", handlers
.BuildsCreateHandler
),
37 (r
"/builds/(.*)", handlers
.BuildsGetHandler
),
40 (r
"/builders/info", handlers
.BuildersInfoHandler
),
41 (r
"/builders/jobs/queue", handlers
.BuildersJobsQueueHandler
),
42 (r
"/builders/jobs/(.*)/addfile/(.*)", handlers
.BuildersJobsAddFileHandler
),
43 (r
"/builders/jobs/(.*)/buildroot", handlers
.BuildersJobsBuildrootHandler
),
44 (r
"/builders/jobs/(.*)/state/(.*)", handlers
.BuildersJobsStateHandler
),
45 (r
"/builders/keepalive", handlers
.BuildersKeepaliveHandler
),
48 (r
"/jobs/active", handlers
.JobsGetActiveHandler
),
49 (r
"/jobs/latest", handlers
.JobsGetLatestHandler
),
50 (r
"/jobs/queue", handlers
.JobsGetQueueHandler
),
51 (r
"/jobs/(.*)", handlers
.JobsGetHandler
),
54 (r
"/packages/(.*)", handlers
.PackagesGetHandler
),
57 (r
"/uploads/create", handlers
.UploadsCreateHandler
),
58 (r
"/uploads/(.*)/sendchunk", handlers
.UploadsSendChunkHandler
),
59 (r
"/uploads/(.*)/finished", handlers
.UploadsFinishedHandler
),
60 (r
"/uploads/(.*)/destroy", handlers
.UploadsDestroyHandler
),
63 logging
.info("Successfully initialied application")
70 logging
.info("Shutting down application")
74 return tornado
.ioloop
.IOLoop
.instance()
76 def shutdown(self
, *args
):
77 logging
.debug("Caught shutdown signal")
80 def run(self
, port
=81):
81 logging
.debug("Going to background")
83 http_server
= tornado
.httpserver
.HTTPServer(self
, xheaders
=True)
85 # If we are not running in debug mode, we can actually run multiple
86 # frontends to get best performance out of our service.
87 if not self
.settings
["debug"]:
88 http_server
.bind(port
)
89 http_server
.start(num_processes
=4)
91 http_server
.listen(port
)
93 # All requests should be done after 30 seconds or they will be killed.
94 self
.ioloop
.set_blocking_log_threshold(30)
99 logging
.debug("Caught reload signal")