thirdparty/google_appengine/google/appengine/ext/remote_api/handler.py
changeset 2273 e4cb9c53db3e
parent 1278 a7766286a7be
child 2864 2e0b0af889be
equal deleted inserted replaced
2272:26491ee91e33 2273:e4cb9c53db3e
    36 
    36 
    37 
    37 
    38 
    38 
    39 
    39 
    40 import google
    40 import google
       
    41 import logging
       
    42 import os
    41 import pickle
    43 import pickle
    42 import sha
    44 import sha
    43 import wsgiref.handlers
    45 import wsgiref.handlers
       
    46 import yaml
       
    47 
    44 from google.appengine.api import api_base_pb
    48 from google.appengine.api import api_base_pb
    45 from google.appengine.api import apiproxy_stub
    49 from google.appengine.api import apiproxy_stub
    46 from google.appengine.api import apiproxy_stub_map
    50 from google.appengine.api import apiproxy_stub_map
    47 from google.appengine.api import users
    51 from google.appengine.api import users
    48 from google.appengine.datastore import datastore_pb
    52 from google.appengine.datastore import datastore_pb
   190   def get(self):
   194   def get(self):
   191     """Handle a GET. Just show an info page."""
   195     """Handle a GET. Just show an info page."""
   192     if not self.CheckIsAdmin():
   196     if not self.CheckIsAdmin():
   193       return
   197       return
   194 
   198 
   195     page = self.InfoPage()
   199     rtok = self.request.get('rtok', '0')
   196     self.response.out.write(page)
   200     app_info = {
       
   201         'app_id': os.environ['APPLICATION_ID'],
       
   202         'rtok': rtok
       
   203         }
       
   204 
       
   205     self.response.out.write(yaml.dump(app_info))
   197 
   206 
   198   def post(self):
   207   def post(self):
   199     """Handle POST requests by executing the API call."""
   208     """Handle POST requests by executing the API call."""
   200     if not self.CheckIsAdmin():
   209     if not self.CheckIsAdmin():
   201       return
   210       return
   207       request.ParseFromString(self.request.body)
   216       request.ParseFromString(self.request.body)
   208       response_data = self.ExecuteRequest(request)
   217       response_data = self.ExecuteRequest(request)
   209       response.mutable_response().set_contents(response_data.Encode())
   218       response.mutable_response().set_contents(response_data.Encode())
   210       self.response.set_status(200)
   219       self.response.set_status(200)
   211     except Exception, e:
   220     except Exception, e:
       
   221       logging.exception('Exception while handling %s', request)
   212       self.response.set_status(200)
   222       self.response.set_status(200)
   213       response.mutable_exception().set_contents(pickle.dumps(e))
   223       response.mutable_exception().set_contents(pickle.dumps(e))
   214     self.response.out.write(response.Encode())
   224     self.response.out.write(response.Encode())
   215 
   225 
   216   def ExecuteRequest(self, request):
   226   def ExecuteRequest(self, request):