def __call__(self, environ, start_response):
   remote_api_stub.RemoteStub._SetRequestId(
       environ[http_runtime_constants.REQUEST_ID_ENVIRON])
   request_type = environ.pop(http_runtime_constants.REQUEST_TYPE_HEADER, None)
   request_state.start_request(
       environ[http_runtime_constants.REQUEST_ID_ENVIRON])
   try:
     if request_type == 'background':
       response = self.handle_background_request(environ)
     elif request_type == 'shutdown':
       response = self.handle_shutdown_request(environ)
     elif request_type == 'interactive':
       response = self.handle_interactive_request(environ)
     else:
       response = self.handle_normal_request(environ)
   finally:
     request_state.end_request(
         environ[http_runtime_constants.REQUEST_ID_ENVIRON])
   error = response.get('error', 0)
   self._flush_logs(response.get('logs', []))
   if error == 0:
     response_code = response.get('response_code', 200)
     status = '%d %s' % (response_code, httplib_responses.get(
         response_code, 'Unknown Status Code'))
     start_response(status, response.get('headers', []))
     return [response.get('body', '')]
   elif error == 2:
     start_response('404 Not Found', [])
     return []
   else:
     start_response('500 Internal Server Error',
                    [(http_runtime_constants.ERROR_CODE_HEADER, str(error))])
     return []
Beispiel #2
0
 def __call__(self, environ, start_response):
     remote_api_stub.RemoteStub._SetRequestId(environ[http_runtime_constants.REQUEST_ID_ENVIRON])
     request_type = environ.pop(http_runtime_constants.REQUEST_TYPE_HEADER, None)
     request_state.start_request(environ[http_runtime_constants.REQUEST_ID_ENVIRON])
     try:
         if request_type == "background":
             response = self.handle_background_request(environ)
         elif request_type == "shutdown":
             response = self.handle_shutdown_request(environ)
         elif request_type == "interactive":
             response = self.handle_interactive_request(environ)
         else:
             response = self.handle_normal_request(environ)
     finally:
         request_state.end_request(environ[http_runtime_constants.REQUEST_ID_ENVIRON])
     error = response.get("error", 0)
     self._flush_logs(response.get("logs", []))
     if error == 0:
         response_code = response.get("response_code", 200)
         status = "%d %s" % (response_code, httplib_responses.get(response_code, "Unknown Status Code"))
         start_response(status, response.get("headers", []))
         return [response.get("body", "")]
     elif error == 2:
         start_response("404 Not Found", [])
         return []
     else:
         start_response("500 Internal Server Error", [(http_runtime_constants.ERROR_CODE_HEADER, str(error))])
         return []
 def test_end_request_function(self):
     request_state._request_states = {'id': self.request_state}
     self.mox.StubOutWithMock(self.request_state, 'end_request')
     self.request_state.end_request()
     self.mox.ReplayAll()
     request_state.end_request('id')
     self.mox.VerifyAll()
     self.assertEqual([], request_state.get_request_states())
Beispiel #4
0
 def test_end_request_function(self):
   request_state._request_states = {'id': self.request_state}
   self.mox.StubOutWithMock(self.request_state, 'end_request')
   self.request_state.end_request()
   self.mox.ReplayAll()
   request_state.end_request('id')
   self.mox.VerifyAll()
   self.assertEqual([], request_state.get_request_states())