]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
ReST API: Return 400 for malformed JSON input
authorZane Bitter <zbitter@redhat.com>
Mon, 21 Jan 2013 15:36:21 +0000 (16:36 +0100)
committerZane Bitter <zbitter@redhat.com>
Mon, 21 Jan 2013 15:36:21 +0000 (16:36 +0100)
Previously we had an unhandled exception that resulted in a 500 (Internal
Server Error) result and a stack trace when an invalid JSON file was
submitted in a POST/PUT request. Change to catching the exception and
returning a 400 (Bad Request) result.

bug 1102391

Change-Id: I7dde33ae732d9addbf988b1d36d4f06eacb634bf
Signed-off-by: Zane Bitter <zbitter@redhat.com>
heat/common/wsgi.py

index 02a046dc5d264ab41df7a11a9f7fe176997f316e..0970e0607085d4fae91512ab150d9a6eeee53e06 100644 (file)
@@ -436,7 +436,10 @@ class JSONRequestDeserializer(object):
         return False
 
     def from_json(self, datastring):
-        return json.loads(datastring)
+        try:
+            return json.loads(datastring)
+        except ValueError as ex:
+            raise webob.exc.HTTPBadRequest(str(ex))
 
     def default(self, request):
         if self.has_body(request):