Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import time | 5 import time |
| 6 | 6 |
| 7 from appengine_wrappers import taskqueue | 7 from appengine_wrappers import taskqueue |
| 8 from commit_tracker import CommitTracker | |
| 8 from cron_servlet import CronServlet | 9 from cron_servlet import CronServlet |
| 9 from instance_servlet import InstanceServlet | 10 from instance_servlet import InstanceServlet |
| 11 from object_store_creator import ObjectStoreCreator | |
| 10 from patch_servlet import PatchServlet | 12 from patch_servlet import PatchServlet |
| 11 from refresh_servlet import RefreshServlet | 13 from refresh_servlet import RefreshServlet |
| 12 from servlet import Servlet, Request, Response | 14 from servlet import Servlet, Request, Response |
| 13 from test_servlet import TestServlet | 15 from test_servlet import TestServlet |
| 14 | 16 |
| 15 | 17 |
| 16 _DEFAULT_SERVLET = InstanceServlet.GetConstructor() | 18 _DEFAULT_SERVLET = InstanceServlet.GetConstructor() |
| 17 | 19 |
| 18 | 20 |
| 19 _FORCE_CRON_TARGET = 'force_cron' | 21 class _EnqueueServlet(Servlet): |
| 22 def __init__(self, request): | |
| 23 Servlet.__init__(self, request) | |
| 24 | |
| 25 def Get(self): | |
| 26 queue = taskqueue.Queue() | |
| 27 queue.add(taskqueue.Task(url='/%s' % self._request.path, | |
| 28 params=self._request.arguments)) | |
| 29 return Response.Ok('Task enqueued.') | |
| 30 | |
| 31 | |
| 32 class _QueryCommitServlet(Servlet): | |
|
not at google - send to devlin
2014/10/25 01:26:14
comments
Ken Rockot(use gerrit already)
2014/10/27 17:02:34
Done.
| |
| 33 def __init__(self, request): | |
| 34 Servlet.__init__(self, request) | |
| 35 | |
| 36 def Get(self): | |
| 37 object_store_creator = ObjectStoreCreator(start_empty=False) | |
| 38 commit_tracker = CommitTracker(object_store_creator) | |
| 39 return Response.Ok(commit_tracker.Get(self._request.path).Get()) | |
| 20 | 40 |
| 21 | 41 |
| 22 _SERVLETS = { | 42 _SERVLETS = { |
| 23 'cron': CronServlet, | 43 'cron': CronServlet, |
| 44 'enqueue': _EnqueueServlet, | |
| 24 'patch': PatchServlet, | 45 'patch': PatchServlet, |
| 46 'query_commit': _QueryCommitServlet, | |
| 25 'refresh': RefreshServlet, | 47 'refresh': RefreshServlet, |
| 26 'test': TestServlet, | 48 'test': TestServlet, |
| 27 } | 49 } |
| 28 | 50 |
| 29 | 51 |
| 30 class Handler(Servlet): | 52 class Handler(Servlet): |
| 31 def Get(self): | 53 def Get(self): |
| 32 path = self._request.path | 54 path = self._request.path |
| 33 | 55 |
| 34 if path.startswith('_'): | 56 if path.startswith('_'): |
| 35 servlet_path = path[1:] | 57 servlet_path = path[1:] |
| 36 if not '/' in servlet_path: | 58 if not '/' in servlet_path: |
| 37 servlet_path += '/' | 59 servlet_path += '/' |
| 38 servlet_name, servlet_path = servlet_path.split('/', 1) | 60 servlet_name, servlet_path = servlet_path.split('/', 1) |
| 39 if servlet_name == _FORCE_CRON_TARGET: | |
| 40 queue = taskqueue.Queue() | |
| 41 queue.purge() | |
| 42 time.sleep(2) | |
| 43 queue.add(taskqueue.Task(url='/_cron')) | |
| 44 return Response.Ok('Cron job started.') | |
| 45 if servlet_name == 'enqueue': | |
| 46 queue = taskqueue.Queue() | |
| 47 queue.add(taskqueue.Task(url='/%s'%servlet_path)) | |
| 48 return Response.Ok('Task enqueued.') | |
| 49 servlet = _SERVLETS.get(servlet_name) | 61 servlet = _SERVLETS.get(servlet_name) |
| 50 if servlet is None: | 62 if servlet is None: |
| 51 return Response.NotFound('"%s" servlet not found' % servlet_path) | 63 return Response.NotFound('"%s" servlet not found' % servlet_path) |
| 52 else: | 64 else: |
| 53 servlet_path = path | 65 servlet_path = path |
| 54 servlet = _DEFAULT_SERVLET | 66 servlet = _DEFAULT_SERVLET |
| 55 | 67 |
| 56 return servlet(Request(servlet_path, | 68 return servlet(Request(servlet_path, |
| 57 self._request.host, | 69 self._request.host, |
| 58 self._request.headers, | 70 self._request.headers, |
| 59 self._request.arguments)).Get() | 71 self._request.arguments)).Get() |
| OLD | NEW |