summaryrefslogtreecommitdiffstats
path: root/nova/exception.py
diff options
context:
space:
mode:
authorSandy Walsh <sandy.walsh@rackspace.com>2011-06-28 21:04:50 -0700
committerSandy Walsh <sandy.walsh@rackspace.com>2011-06-28 21:04:50 -0700
commita0f968235332e5400d507bbafa99bc0728aa8479 (patch)
treeef67f6404ed19906d0129adb73de220e45e3661c /nova/exception.py
parent4c98425ba7a53c8b966317444abe2d4f7b6556d8 (diff)
downloadnova-a0f968235332e5400d507bbafa99bc0728aa8479.tar.gz
nova-a0f968235332e5400d507bbafa99bc0728aa8479.tar.xz
nova-a0f968235332e5400d507bbafa99bc0728aa8479.zip
moved to wrap_exception decorator
Diffstat (limited to 'nova/exception.py')
-rw-r--r--nova/exception.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/nova/exception.py b/nova/exception.py
index f3a452228..4b625dd04 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -81,11 +81,17 @@ def wrap_db_error(f):
_wrap.func_name = f.func_name
-def wrap_exception(f):
+def wrap_exception(f, notifier=None, publisher_id=None, level=None):
def _wrap(*args, **kw):
try:
return f(*args, **kw)
except Exception, e:
+ if notifier != None and 'safe_notify' in notifier.dir():
+ event_type = f.__name__
+ payload = dict(args=args, exception=e)
+ payload.update(kw)
+ notifier.safe_notify(publisher_id, event_type, level, payload)
+
if not isinstance(e, Error):
#exc_type, exc_value, exc_traceback = sys.exc_info()
LOG.exception(_('Uncaught exception'))