# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. from cron_servlet import CronServlet from instance_servlet import InstanceServlet from patch_servlet import PatchServlet from servlet import Servlet, Request, Response from test_servlet import TestServlet _DEFAULT_SERVLET = InstanceServlet.GetConstructor() _SERVLETS = { 'cron': CronServlet, 'patch': PatchServlet, 'test': TestServlet, } class Handler(Servlet): def Get(self): path = self._request.path if path.startswith('_'): servlet_path = path[1:] if not '/' in servlet_path: servlet_path += '/' servlet_name, servlet_path = servlet_path.split('/', 1) servlet = _SERVLETS.get(servlet_name) if servlet is None: return Response.NotFound('"%s" servlet not found' % servlet_path) else: servlet_path = path servlet = _DEFAULT_SERVLET return servlet( Request(servlet_path, self._request.host, self._request.headers)).Get()