blob: a26383dbb135538fb286e579ef49a94ea3e1ac2b [file] [log] [blame]
mbligh906b9f72007-11-29 18:56:17 +00001"""
2Internal global error types
3"""
4
5import sys
6from traceback import format_exception
7
8def format_error():
9 t, o, tb = sys.exc_info()
10 trace = format_exception(t, o, tb)
11 # Clear the backtrace to prevent a circular reference
12 # in the heap -- as per tutorial
13 tb = ''
14
15 return ''.join(trace)
16
17class JobContinue(SystemExit):
18 """Allow us to bail out requesting continuance."""
19 pass
20
21class JobComplete(SystemExit):
22 """Allow us to bail out indicating continuation not required."""
23 pass
24
25class AutotestError(Exception):
26 """The parent of all errors deliberatly thrown within the client code."""
27 pass
28
29class JobError(AutotestError):
30 """Indicates an error which terminates and fails the whole job."""
31 pass
32
33class TestError(AutotestError):
34 """Indicates an error which terminates and fails the test."""
35 pass
36
37class CmdError(TestError):
38 """Indicates that a command failed, is fatal to the test unless caught."""
39 def __str__(self):
40 return "Command <" + self.args[0] + "> failed, rc=%d" % (self.args[1])
41
42class PackageError(TestError):
43 """Indicates an error trying to perform a package operation."""
44
45class UnhandledError(TestError):
46 """Indicates an unhandled exception in a test."""
47 def __init__(self, prefix):
48 msg = prefix + format_error()
49 TestError.__init__(self, msg)
mbligh03f4fc72007-11-29 20:56:14 +000050
51
52# server-specific errors
53
54class AutoservError(Exception):
55 pass
56
57
58class AutoservRunError(AutoservError):
59 """Errors raised by one of the run functions"""
60 pass
61
62
63class AutoservVirtError(AutoservError):
64 """Vitualization related error"""
65 pass
66
67
68class AutoservUnsupportedError(AutoservError):
69 """Error raised when you try to use an unsupported optional feature"""
70 pass
71
72class AutoservHostError(AutoservError):
73 """Error reaching a host"""
74 pass
75
76class AutoservRebootError(AutoservError):
77 """Error occured while rebooting a machine"""
78 pass