diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-10-16 21:34:04 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-10-16 21:34:04 +0000 |
| commit | 6bf2e41cc3ad636b9d4c493a2a61f97aacefd4cf (patch) | |
| tree | 9f92e593d8d2e1748a00b29306386a050768b4d0 /nova/api | |
| parent | 7eea0b9dfeb5efe50eaf76697e8dc9fe2e16d4d7 (diff) | |
| parent | 7a70bc33aca8428f38c70c6b85bba29977a41aaf (diff) | |
Merge "Handle invalid xml request to return BadRequest"
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/wsgi.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/nova/api/openstack/wsgi.py b/nova/api/openstack/wsgi.py index 33db3e714..a7a3823e9 100644 --- a/nova/api/openstack/wsgi.py +++ b/nova/api/openstack/wsgi.py @@ -881,8 +881,17 @@ class Resource(wsgi.Application): # function. If we try to audit __call__(), we can # run into troubles due to the @webob.dec.wsgify() # decorator. - return self._process_stack(request, action, action_args, + try: + return self._process_stack(request, action, action_args, content_type, body, accept) + except expat.ExpatError: + msg = _("Invalid XML in request body") + return Fault(webob.exc.HTTPBadRequest(explanation=msg)) + except LookupError as e: + #NOTE(Vijaya Erukala): XML input such as + # <?xml version="1.0" encoding="TF-8"?> + # raises LookupError: unknown encoding: TF-8 + return Fault(webob.exc.HTTPBadRequest(explanation=unicode(e))) def _process_stack(self, request, action, action_args, content_type, body, accept): |
