Update exception.wrap_exception so that all exceptions (not just Error

and NovaException types) get logged correctly.
This commit is contained in:
Dan Prince 2011-09-15 22:53:42 -04:00
parent 23fefd1772
commit 19b3b7a0c5
2 changed files with 3 additions and 11 deletions

View File

@ -121,13 +121,6 @@ def wrap_exception(notifier=None, publisher_id=None, event_type=None,
notifier.notify(publisher_id, temp_type, temp_level,
payload)
if (not isinstance(e, Error) and
not isinstance(e, NovaException)):
#exc_type, exc_value, exc_traceback = sys.exc_info()
LOG.exception(_('Uncaught exception'))
#logging.error(traceback.extract_stack(exc_traceback))
raise Error(str(e))
# re-raise original exception since it may have been clobbered
raise exc_info[0], exc_info[1], exc_info[2]

View File

@ -74,14 +74,13 @@ class WrapExceptionTestCase(test.TestCase):
def test_wrap_exception_throws_exception(self):
wrapped = exception.wrap_exception()
# Note that Exception is converted to Error ...
self.assertRaises(exception.Error, wrapped(bad_function_exception))
self.assertRaises(Exception, wrapped(bad_function_exception))
def test_wrap_exception_with_notifier(self):
notifier = FakeNotifier()
wrapped = exception.wrap_exception(notifier, "publisher", "event",
"level")
self.assertRaises(exception.Error, wrapped(bad_function_exception))
self.assertRaises(Exception, wrapped(bad_function_exception))
self.assertEquals(notifier.provided_publisher, "publisher")
self.assertEquals(notifier.provided_event, "event")
self.assertEquals(notifier.provided_priority, "level")
@ -91,7 +90,7 @@ class WrapExceptionTestCase(test.TestCase):
def test_wrap_exception_with_notifier_defaults(self):
notifier = FakeNotifier()
wrapped = exception.wrap_exception(notifier)
self.assertRaises(exception.Error, wrapped(bad_function_exception))
self.assertRaises(Exception, wrapped(bad_function_exception))
self.assertEquals(notifier.provided_publisher, None)
self.assertEquals(notifier.provided_event, "bad_function_exception")
self.assertEquals(notifier.provided_priority, notifier.ERROR)