Expose over-quota exceptions via native API.

Fixes bug LP 1021373.

Previously an over-quota condition would be exposed via the EC2 API,
but hidden in the corresponding call via the native API (in the sense
of the exception detail being replaced with a generic 500 Server Error
response).

We now report any NovaException declared to be safe. In this patch,
the set of safe exception types includes any subclass of QuotaError,
but in subsequent patches the net should be widened to include
exceptions that do not expose senstive information.

Change-Id: I3cc36337c7e67cf487ca49de646c437c217ae538
This commit is contained in:
Eoghan Glynn
2012-07-06 10:10:28 +00:00
parent 8226531088
commit c3a76588a5

View File

@@ -129,6 +129,7 @@ class NovaException(Exception):
""" """
message = _("An unknown exception occurred.") message = _("An unknown exception occurred.")
safe = False
def __init__(self, message=None, **kwargs): def __init__(self, message=None, **kwargs):
self.kwargs = kwargs self.kwargs = kwargs
@@ -994,6 +995,7 @@ class WillNotSchedule(NovaException):
class QuotaError(NovaException): class QuotaError(NovaException):
message = _("Quota exceeded") + ": code=%(code)s" message = _("Quota exceeded") + ": code=%(code)s"
safe = True
class TooManyInstances(QuotaError): class TooManyInstances(QuotaError):