initscript knows how to initialize db
[sfa.git] / sfa / util / faults.py
1 #
2 # SFA API faults
3 #
4
5 import xmlrpclib
6
7 class SfaFault(xmlrpclib.Fault):
8     def __init__(self, faultCode, faultString, extra = None):
9         if extra:
10             faultString += ": " + str(extra)
11         xmlrpclib.Fault.__init__(self, faultCode, faultString)
12
13 class SfaInvalidAPIMethod(SfaFault):
14     def __init__(self, method, interface = None, extra = None):
15         faultString = "Invalid method " + method
16         if interface:
17             faultString += " for interface " + interface
18         SfaFault.__init__(self, 100, faultString, extra)
19
20 class SfaInvalidArgumentCount(SfaFault):
21     def __init__(self, got, min, max = min, extra = None):
22         if min != max:
23             expected = "%d-%d" % (min, max)
24         else:
25             expected = "%d" % min
26         faultString = "Expected %s arguments, got %d" % \
27                       (expected, got)
28         SfaFault.__init__(self, 101, faultString, extra)
29
30 class SfaInvalidArgument(SfaFault):
31     def __init__(self, extra = None, name = None):
32         if name is not None:
33             faultString = "Invalid %s value" % name
34         else:
35             faultString = "Invalid argument"
36         SfaFault.__init__(self, 102, faultString, extra)
37
38 class SfaAuthenticationFailure(SfaFault):
39     def __init__(self, extra = None):
40         faultString = "Failed to authenticate call"
41         SfaFault.__init__(self, 103, faultString, extra)
42
43 class SfaDBError(SfaFault):
44     def __init__(self, extra = None):
45         faultString = "Database error"
46         SfaFault.__init__(self, 106, faultString, extra)
47
48 class SfaPermissionDenied(SfaFault):
49     def __init__(self, extra = None):
50         faultString = "Permission denied"
51         SfaFault.__init__(self, 108, faultString, extra)
52
53 class SfaNotImplemented(SfaFault):
54     def __init__(self, interface=None, extra = None):
55         faultString = "Not implemented"
56         if interface:
57             faultString += " at interface " + interface 
58         SfaFault.__init__(self, 109, faultString, extra)
59
60 class SfaAPIError(SfaFault):
61     def __init__(self, extra = None):
62         faultString = "Internal API error"
63         SfaFault.__init__(self, 111, faultString, extra)
64
65 class MalformedHrnException(SfaFault):
66     def __init__(self, value, extra = None):
67         self.value = value
68         faultString = "Malformed HRN: %(value)s" % locals()
69         SfaFault.__init__(self, 102, faultString, extra)
70     def __str__(self):
71         return repr(self.value)
72
73 class TreeException(SfaFault):
74     def __init__(self, value, extra = None):
75         self.value = value
76         faultString = "Tree Exception: %(value)s, " % locals()
77         SfaFault.__init__(self, 111, faultString, extra)
78     def __str__(self):
79         return repr(self.value)
80
81 class NonExistingRecord(SfaFault):
82     def __init__(self, value, extra = None):
83         self.value = value
84         faultString = "Non exsiting record %(value)s, " % locals()
85         SfaFault.__init__(self, 111, faultString, extra)
86     def __str__(self):
87         return repr(self.value)
88
89 class ExistingRecord(SfaFault):
90     def __init__(self, value, extra = None):
91         self.value = value
92         faultString = "Existing record: %(value)s, " % locals()
93         SfaFault.__init__(self, 111, faultString, extra)
94     def __str__(self):
95         return repr(self.value)
96
97     
98 class NonexistingCredType(SfaFault):
99     def __init__(self, value, extra = None):
100         self.value = value
101         faultString = "Non existing record: %(value)s, " % locals()
102         SfaFault.__init__(self, 111, faultString, extra)
103     def __str__(self):
104         return repr(self.value)
105
106 class NonexistingFile(SfaFault):
107     def __init__(self, value, extra = None):
108         self.value = value
109         faultString = "Non existing file: %(value)s, " % locals()
110         SfaFault.__init__(self, 111, faultString, extra)
111     def __str__(self):
112         return repr(self.value)
113
114 class InvalidRPCParams(SfaFault):
115     def __init__(self, value, extra = None):
116         self.value = value
117         faultString = "Invalid RPC Params: %(value)s, " % locals()
118         SfaFault.__init__(self, 102, faultString, extra)
119     def __str__(self):
120         return repr(self.value)
121
122 # SMBAKER exceptions follow
123
124 class ConnectionKeyGIDMismatch(SfaFault):
125     def __init__(self, value, extra = None):
126         self.value = value
127         faultString = "Connection Key GID mismatch: %(value)s" % locals()
128         SfaFault.__init__(self, 102, faultString, extra) 
129     def __str__(self):
130         return repr(self.value)
131
132 class MissingCallerGID(SfaFault):
133     def __init__(self, value, extra = None):
134         self.value = value
135         faultString = "Missing Caller GID: %(value)s" % locals()
136         SfaFault.__init__(self, 102, faultString, extra) 
137     def __str__(self):
138         return repr(self.value)
139
140 class RecordNotFound(SfaFault):
141     def __init__(self, value, extra = None):
142         self.value = value
143         faultString = "Record not found: %(value)s" % locals()
144         SfaFault.__init__(self, 102, faultString, extra)
145     def __str__(self):
146         return repr(self.value)
147
148 class UnknownSfaType(SfaFault):
149     def __init__(self, value, extra = None):
150         self.value = value
151         faultString = "Unknown SFA Type: %(value)s" % locals()
152         SfaFault.__init__(self, 102, faultString, extra)
153     def __str__(self):
154         return repr(self.value)
155
156 class MissingAuthority(SfaFault):
157     def __init__(self, value, extra = None):
158         self.value = value
159         faultString = "Missing authority: %(value)s" % locals()
160         SfaFault.__init__(self, 102, faultString, extra)
161     def __str__(self):
162         return repr(self.value)
163
164 class PlanetLabRecordDoesNotExist(SfaFault):
165     def __init__(self, value, extra = None):
166         self.value = value
167         faultString = "PlanetLab record does not exist : %(value)s" % locals()
168         SfaFault.__init__(self, 102, faultString, extra)
169     def __str__(self):
170         return repr(self.value)
171
172 class PermissionError(SfaFault):
173     def __init__(self, value, extra = None):
174         self.value = value
175         faultString = "Permission error: %(value)s" % locals()
176         SfaFault.__init__(self, 108, faultString, extra)
177     def __str__(self):
178         return repr(self.value)
179
180 class InsufficientRights(SfaFault):
181     def __init__(self, value, extra = None):
182         self.value = value
183         faultString = "Insufficient rights: %(value)s" % locals()
184         SfaFault.__init__(self, 108, faultString, extra)
185     def __str__(self):
186         return repr(self.value)
187
188 class MissingDelegateBit(SfaFault):
189     def __init__(self, value, extra = None):
190         self.value = value
191         faultString = "Missing delegate bit: %(value)s" % locals()
192         SfaFault.__init__(self, 108, faultString, extra)
193     def __str__(self):
194         return repr(self.value)
195
196 class ChildRightsNotSubsetOfParent(SfaFault):
197     def __init__(self, value, extra = None):
198         self.value = value
199         faultString = "Child rights not subset of parent: %(value)s" % locals()
200         SfaFault.__init__(self, 103, faultString, extra)
201     def __str__(self):
202         return repr(self.value)
203
204 class CertMissingParent(SfaFault):
205     def __init__(self, value, extra = None):
206         self.value = value
207         faultString = "Cert missing parent: %(value)s" % locals()
208         SfaFault.__init__(self, 103, faultString, extra)
209     def __str__(self):
210         return repr(self.value)
211
212 class CertNotSignedByParent(SfaFault):
213     def __init__(self, value, extra = None):
214         self.value = value
215         faultString = "Cert not signed by parent: %(value)s" % locals()
216         SfaFault.__init__(self, 103, faultString, extra)
217     def __str__(self):
218         return repr(self.value)
219     
220 class GidParentHrn(SfaFault):
221     def __init__(self, value, extra = None):
222         self.value = value
223         faultString = "Cert URN is not an extension of its parent: %(value)s" % locals()
224         SfaFault.__init__(self, 103, faultString, extra)
225     def __str__(self):
226         return repr(self.value)
227         
228 class GidInvalidParentHrn(SfaFault):
229     def __init__(self, value, extra = None):
230         self.value = value
231         faultString = "GID invalid parent hrn: %(value)s" % locals()
232         SfaFault.__init__(self, 102, faultString, extra)
233     def __str__(self):
234         return repr(self.value)
235
236 class SliverDoesNotExist(SfaFault):
237     def __init__(self, value, extra = None):
238         self.value = value
239         faultString = "Sliver does not exist : %(value)s" % locals()
240         SfaFault.__init__(self, 102, faultString, extra)
241     def __str__(self):
242         return repr(self.value)
243
244 class BadRequestHash(xmlrpclib.Fault):
245     def __init__(self, hash = None, extra = None):
246         faultString = "bad request hash: " + str(hash)
247         xmlrpclib.Fault.__init__(self, 902, faultString)
248
249 class MissingTrustedRoots(SfaFault):
250     def __init__(self, value, extra = None):
251         self.value = value
252         faultString = "Trusted root directory does not exist: %(value)s" % locals()
253         SfaFault.__init__(self, 102, faultString, extra) 
254     def __str__(self):
255         return repr(self.value)
256
257 class MissingSfaInfo(SfaFault):
258     def __init__(self, value, extra = None):
259         self.value = value
260         faultString = "Missing information: %(value)s" % locals()
261         SfaFault.__init__(self, 102, faultString, extra) 
262     def __str__(self):
263         return repr(self.value)
264
265 class InvalidRSpec(SfaFault):
266     def __init__(self, value, extra = None):
267         self.value = value
268         faultString = "Invalid RSpec: %(value)s" % locals()
269         SfaFault.__init__(self, 108, faultString, extra)
270     def __str__(self):
271         return repr(self.value)
272
273 class InvalidRSpecElement(SfaFault):
274     def __init__(self, value, extra = None):
275         self.value = value
276         faultString = "Invalid RSpec Element: %(value)s" % locals()
277         SfaFault.__init__(self, 108, faultString, extra)
278     def __str__(self):
279         return repr(self.value)
280
281 class InvalidXML(SfaFault):
282     def __init__(self, value, extra = None):
283         self.value = value
284         faultString = "Invalid XML Document: %(value)s" % locals()
285         SfaFault.__init__(self, 108, faultString, extra)
286     def __str__(self):
287         return repr(self.value)
288
289 class InvalidXMLElement(SfaFault):
290     def __init__(self, value, extra = None):
291         self.value = value
292         faultString = "Invalid XML Element: %(value)s" % locals()
293         SfaFault.__init__(self, 108, faultString, extra)
294     def __str__(self):
295         return repr(self.value)
296
297 class AccountNotEnabled(SfaFault):
298     def __init__(self,  extra = None):
299         faultString = "Account Disabled"
300         SfaFault.__init__(self, 108, faultString, extra)
301     def __str__(self):
302         return repr(self.value)
303
304 class CredentialNotVerifiable(SfaFault):
305     def __init__(self, value, extra = None):
306         self.value = value
307         faultString = "Unable to verify credential: %(value)s, " %locals()
308         SfaFault.__init__(self, 115, faultString, extra)
309     def __str__(self):
310         return repr(self.value)
311
312 class CertExpired(SfaFault):
313     def __init__(self, value, extra=None):
314         self.value = value
315         faultString = "%s cert is expired" % value
316         SfaFault.__init__(self, 102, faultString, extra)
317