Skip to content

Commit

Permalink
Accept message as sole argument to NovaException
Browse files Browse the repository at this point in the history
Fixes bug 860666

Python nose will sometimes recreate an exception to add captured log
information to the string representation of the exception. It assumes
that it can do this by reinstantiating the class of the originally
triggered exception with one argument, a new string description.
NovaException, and some child classes, didn't work well with this
scheme and would result in a further exception during formatting, which
would result in an unformatted string being displayed.

Change-Id: I7152cb7809fa1deb3986c127370f670fb2da342d
  • Loading branch information
Johannes Erdfelt committed Sep 28, 2011
1 parent a264612 commit 82bef28
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions nova/exception.py
Expand Up @@ -138,17 +138,17 @@ class NovaException(Exception):
"""
message = _("An unknown exception occurred.")

def __init__(self, **kwargs):
def __init__(self, message=None, **kwargs):
self.kwargs = kwargs
try:
self._error_string = self.message % kwargs
if not message:
try:
message = self.message % kwargs

except Exception:
# at least get the core message out if something happened
self._error_string = self.message
except Exception as e:
# at least get the core message out if something happened
message = self.message

def __str__(self):
return self._error_string
super(NovaException, self).__init__(message)


class ImagePaginationFailed(NovaException):
Expand All @@ -168,7 +168,7 @@ class NotAuthorized(NovaException):
message = _("Not authorized.")

def __init__(self, *args, **kwargs):
super(NotAuthorized, self).__init__(**kwargs)
super(NotAuthorized, self).__init__(*args, **kwargs)


class AdminRequired(NotAuthorized):
Expand Down Expand Up @@ -317,7 +317,7 @@ class NotFound(NovaException):
message = _("Resource could not be found.")

def __init__(self, *args, **kwargs):
super(NotFound, self).__init__(**kwargs)
super(NotFound, self).__init__(*args, **kwargs)


class FlagNotSet(NotFound):
Expand Down

0 comments on commit 82bef28

Please sign in to comment.