summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/api/openstack/wsgi.py13
-rw-r--r--nova/exception.py1
2 files changed, 6 insertions, 8 deletions
diff --git a/nova/api/openstack/wsgi.py b/nova/api/openstack/wsgi.py
index f7e8d0c6a..79382d864 100644
--- a/nova/api/openstack/wsgi.py
+++ b/nova/api/openstack/wsgi.py
@@ -651,11 +651,12 @@ class ResourceExceptionHandler(object):
return True
if isinstance(ex_value, exception.NotAuthorized):
- msg = unicode(ex_value)
+ msg = unicode(ex_value.message % ex_value.kwargs)
raise Fault(webob.exc.HTTPForbidden(explanation=msg))
elif isinstance(ex_value, exception.Invalid):
+ msg = unicode(ex_value.message % ex_value.kwargs)
raise Fault(exception.ConvertedException(
- code=ex_value.code, explanation=unicode(ex_value)))
+ code=ex_value.code, explanation=msg))
# Under python 2.6, TypeError's exception value is actually a string,
# so test # here via ex_type instead:
@@ -1158,12 +1159,8 @@ class Fault(webob.exc.HTTPException):
code = self.wrapped_exc.status_int
fault_name = self._fault_names.get(code, "computeFault")
explanation = self.wrapped_exc.explanation
- offset = explanation.find("Traceback")
- if offset is not -1:
- LOG.debug(_("API request failed, fault raised to the top of"
- " the stack. Detailed stacktrace %s") %
- explanation)
- explanation = explanation[0:offset - 1]
+ LOG.debug(_("Returning %(code)s to user: %(explanation)s"),
+ {'code': code, 'explanation': explanation})
fault_data = {
fault_name: {
diff --git a/nova/exception.py b/nova/exception.py
index 046df24c9..3db724fa9 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -388,6 +388,7 @@ class InvalidDevicePath(Invalid):
class DevicePathInUse(Invalid):
message = _("The supplied device path (%(path)s) is in use.")
+ code = 409
class DeviceIsBusy(Invalid):