1d0825bca7fe65beaee391d30da42e937db621564Steve Block# Copyright (C) 2009 Google Inc. All rights reserved.
20bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#
30bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# Redistribution and use in source and binary forms, with or without
40bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# modification, are permitted provided that the following conditions are
50bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# met:
60bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#
70bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#     * Redistributions of source code must retain the above copyright
80bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# notice, this list of conditions and the following disclaimer.
90bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#     * Redistributions in binary form must reproduce the above
100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# copyright notice, this list of conditions and the following disclaimer
110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# in the documentation and/or other materials provided with the
120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# distribution.
130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#     * Neither the name of Google Inc. nor the names of its
140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# contributors may be used to endorse or promote products derived from
150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# this software without specific prior written permission.
160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#
170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
200bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
220bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
250bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
29d0825bca7fe65beaee391d30da42e937db621564Steve Block# Request a modern Django
30d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom google.appengine.dist import use_library
31d0825bca7fe65beaee391d30da42e937db621564Steve Blockuse_library('django', '1.1')
32d0825bca7fe65beaee391d30da42e937db621564Steve Block
33d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom google.appengine.ext import webapp
34d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom google.appengine.ext.webapp.util import run_wsgi_app
35d0825bca7fe65beaee391d30da42e937db621564Steve Block
36d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom handlers.dashboard import Dashboard
37d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom handlers.gc import GC
3868513a70bcd92384395513322f1b801e7bf9c729Steve Blockfrom handlers.nextpatch import NextPatch
39d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom handlers.patch import Patch
40d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom handlers.patchstatus import PatchStatus
41dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochfrom handlers.queuestatus import QueueStatus
42dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochfrom handlers.recentstatus import QueuesOverview
43a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochfrom handlers.releasepatch import ReleasePatch
44d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom handlers.showresults import ShowResults
45d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom handlers.statusbubble import StatusBubble
46a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochfrom handlers.submittoews import SubmitToEWS
47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockfrom handlers.svnrevision import SVNRevision
48d0825bca7fe65beaee391d30da42e937db621564Steve Blockfrom handlers.updatestatus import UpdateStatus
49dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockfrom handlers.updatesvnrevision import UpdateSVNRevision
506c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenfrom handlers.updateworkitems import UpdateWorkItems
516c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen
52d0825bca7fe65beaee391d30da42e937db621564Steve Block
53d0825bca7fe65beaee391d30da42e937db621564Steve Blockwebapp.template.register_template_library('filters.webkit_extras')
54d0825bca7fe65beaee391d30da42e937db621564Steve Block
55d0825bca7fe65beaee391d30da42e937db621564Steve Blockroutes = [
56dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    ('/', QueuesOverview),
57d0825bca7fe65beaee391d30da42e937db621564Steve Block    ('/dashboard', Dashboard),
58d0825bca7fe65beaee391d30da42e937db621564Steve Block    ('/gc', GC),
59d0825bca7fe65beaee391d30da42e937db621564Steve Block    (r'/patch-status/(.*)/(.*)', PatchStatus),
60d0825bca7fe65beaee391d30da42e937db621564Steve Block    (r'/patch/(.*)', Patch),
61a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    (r'/submit-to-ews', SubmitToEWS),
62d0825bca7fe65beaee391d30da42e937db621564Steve Block    (r'/results/(.*)', ShowResults),
63d0825bca7fe65beaee391d30da42e937db621564Steve Block    (r'/status-bubble/(.*)', StatusBubble),
64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    (r'/svn-revision/(.*)', SVNRevision),
65cad810f21b803229eb11403f9209855525a25d57Steve Block    (r'/queue-status/(.*)/bots/(.*)', QueueStatus),
66dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    (r'/queue-status/(.*)', QueueStatus),
6768513a70bcd92384395513322f1b801e7bf9c729Steve Block    (r'/next-patch/(.*)', NextPatch),
68a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    (r'/release-patch', ReleasePatch),
69d0825bca7fe65beaee391d30da42e937db621564Steve Block    ('/update-status', UpdateStatus),
706c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen    ('/update-work-items', UpdateWorkItems),
71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    ('/update-svn-revision', UpdateSVNRevision),
72d0825bca7fe65beaee391d30da42e937db621564Steve Block]
73d0825bca7fe65beaee391d30da42e937db621564Steve Block
74d0825bca7fe65beaee391d30da42e937db621564Steve Blockapplication = webapp.WSGIApplication(routes, debug=True)
75d0825bca7fe65beaee391d30da42e937db621564Steve Block
76d0825bca7fe65beaee391d30da42e937db621564Steve Blockdef main():
77d0825bca7fe65beaee391d30da42e937db621564Steve Block    run_wsgi_app(application)
780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
790bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochif __name__ == "__main__":
80d0825bca7fe65beaee391d30da42e937db621564Steve Block    main()
81