Example #1
0
    def process_request(self, request):
        # Abort early if we don't have any work to do
        params_json = request.body
        if not params_json:
            return

        # Reject unrecognized content types. Empty string indicates
        # the client did not explicitly set the header
        if request.content_type not in ('application/json', ''):
            e = exception.ValidationError(attribute='application/json',
                                          target='Content-Type header')
            return wsgi.render_exception(e)

        params_parsed = {}
        try:
            params_parsed = jsonutils.loads(params_json)
        except ValueError:
            e = exception.ValidationError(attribute='valid JSON',
                                          target='request body')
            return wsgi.render_exception(e)
        finally:
            if not params_parsed:
                params_parsed = {}

        params = {}
        for k, v in params_parsed.iteritems():
            if k in ('self', 'context'):
                continue
            if k.startswith('_'):
                continue
            params[k] = v

        request.environ[PARAMS_ENV] = params
Example #2
0
 def process_response(self, request, response):
     """Transform the response from JSON to XML."""
     outgoing_xml = 'application/xml' in str(request.accept)
     if outgoing_xml and response.body:
         response.content_type = 'application/xml'
         try:
             body_obj = jsonutils.loads(response.body)
             response.body = serializer.to_xml(body_obj)
         except Exception:
             LOG.exception('Serializer failed')
             raise exception.Error(message=response.body)
     return response
Example #3
0
 def main():
     from mytest.common.sql import nova
     dump_data = jsonutils.loads(open(CONF.command.dump_file).read())
     nova.import_auth(dump_data)