~ubuntu-branches/ubuntu/quantal/nova/quantal-proposed

« back to all changes in this revision

Viewing changes to nova/exception.py

  • Committer: Bazaar Package Importer
  • Author(s): Chuck Short
  • Date: 2011-01-21 11:48:06 UTC
  • mto: This revision was merged to the branch mainline in revision 9.
  • Revision ID: james.westby@ubuntu.com-20110121114806-v8fvnnl6az4m4ohv
Tags: upstream-2011.1~bzr597
ImportĀ upstreamĀ versionĀ 2011.1~bzr597

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
Nova-type exceptions. SHOULD include dedicated exception logging.
22
22
"""
23
23
 
24
 
import logging
25
 
import sys
26
 
import traceback
 
24
from nova import log as logging
 
25
LOG = logging.getLogger('nova.exception')
27
26
 
28
27
 
29
28
class ProcessExecutionError(IOError):
 
29
 
30
30
    def __init__(self, stdout=None, stderr=None, exit_code=None, cmd=None,
31
31
                 description=None):
32
32
        if description is None:
33
 
            description = "Unexpected error while running command."
 
33
            description = _("Unexpected error while running command.")
34
34
        if exit_code is None:
35
35
            exit_code = '-'
36
 
        message = "%s\nCommand: %s\nExit code: %s\nStdout: %r\nStderr: %r" % (
37
 
                  description, cmd, exit_code, stdout, stderr)
 
36
        message = _("%s\nCommand: %s\nExit code: %s\nStdout: %r\nStderr: %r")\
 
37
                % (description, cmd, exit_code, stdout, stderr)
38
38
        IOError.__init__(self, message)
39
39
 
40
40
 
41
41
class Error(Exception):
 
42
 
42
43
    def __init__(self, message=None):
43
44
        super(Error, self).__init__(message)
44
45
 
45
46
 
46
47
class ApiError(Error):
 
48
 
47
49
    def __init__(self, message='Unknown', code='Unknown'):
48
50
        self.message = message
49
51
        self.code = code
74
76
    pass
75
77
 
76
78
 
 
79
class TimeoutException(Error):
 
80
    pass
 
81
 
 
82
 
77
83
def wrap_exception(f):
78
84
    def _wrap(*args, **kw):
79
85
        try:
81
87
        except Exception, e:
82
88
            if not isinstance(e, Error):
83
89
                #exc_type, exc_value, exc_traceback = sys.exc_info()
84
 
                logging.exception('Uncaught exception')
 
90
                LOG.exception(_('Uncaught exception'))
85
91
                #logging.error(traceback.extract_stack(exc_traceback))
86
92
                raise Error(str(e))
87
93
            raise