diff options
| author | Sandy Walsh <sandy.walsh@rackspace.com> | 2011-06-28 21:04:50 -0700 |
|---|---|---|
| committer | Sandy Walsh <sandy.walsh@rackspace.com> | 2011-06-28 21:04:50 -0700 |
| commit | a0f968235332e5400d507bbafa99bc0728aa8479 (patch) | |
| tree | ef67f6404ed19906d0129adb73de220e45e3661c /nova/exception.py | |
| parent | 4c98425ba7a53c8b966317444abe2d4f7b6556d8 (diff) | |
| download | nova-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.py | 8 |
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')) |
