diff options
author | Jesse Andrews <anotherjesse@gmail.com> | 2010-05-30 15:21:34 -0700 |
---|---|---|
committer | Jesse Andrews <anotherjesse@gmail.com> | 2010-05-30 15:21:34 -0700 |
commit | 94518726fbb850ad5e81a7f937e197052f26bef2 (patch) | |
tree | 8cf585bb3f83db07ad2f5585c6bc37bad4602533 /nova/exception.py | |
parent | fd278ade0bf19ba9deba65976ce6af7c59c4443a (diff) | |
download | nova-94518726fbb850ad5e81a7f937e197052f26bef2.tar.gz nova-94518726fbb850ad5e81a7f937e197052f26bef2.tar.xz nova-94518726fbb850ad5e81a7f937e197052f26bef2.zip |
Merged Vish's work on adding projects to nova
Diffstat (limited to 'nova/exception.py')
-rw-r--r-- | nova/exception.py | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/nova/exception.py b/nova/exception.py index dc7b16cdb..82d08e840 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -1,12 +1,12 @@ # vim: tabstop=4 shiftwidth=4 softtabstop=4 # Copyright [2010] [Anso Labs, LLC] -# +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -14,7 +14,7 @@ # limitations under the License. """ -Nova base exception handling, including decorator for re-raising +Nova base exception handling, including decorator for re-raising Nova-type exceptions. SHOULD include dedicated exception logging. """ @@ -23,16 +23,21 @@ import traceback import sys class Error(Exception): - pass + def __init__(self, message=None): + super(Error, self).__init__(message) -class ApiError(Error): +class ApiError(Error): def __init__(self, message='Unknown', code='Unknown'): self.message = message self.code = code + super(ApiError, self).__init__('%s: %s'% (code, message)) class NotFound(Error): pass +class Duplicate(Error): + pass + class NotAuthorized(Error): pass @@ -42,12 +47,12 @@ def wrap_exception(f): return f(*args, **kw) except Exception, e: if not isinstance(e, Error): - # exc_type, exc_value, exc_traceback = sys.exc_info() + # exc_type, exc_value, exc_traceback = sys.exc_info() logging.exception('Uncaught exception') - # logging.debug(traceback.extract_stack(exc_traceback)) + # logging.debug(traceback.extract_stack(exc_traceback)) raise Error(str(e)) raise _wrap.func_name = f.func_name return _wrap - + |