Revision 6797ec29 lib/luxi.py
b/lib/luxi.py | ||
---|---|---|
36 | 36 |
|
37 | 37 |
from ganeti import serializer |
38 | 38 |
from ganeti import constants |
39 |
from ganeti import errors |
|
39 | 40 |
|
40 | 41 |
|
41 | 42 |
KEY_METHOD = 'method' |
... | ... | |
275 | 276 |
KEY_RESULT not in data): |
276 | 277 |
raise DecodingError("Invalid response from server: %s" % str(data)) |
277 | 278 |
|
279 |
result = data[KEY_RESULT] |
|
280 |
|
|
278 | 281 |
if not data[KEY_SUCCESS]: |
279 | 282 |
# TODO: decide on a standard exception |
280 |
raise RequestError(data[KEY_RESULT]) |
|
283 |
if (isinstance(result, (tuple, list)) and len(result) == 2 and |
|
284 |
isinstance(result[1], (tuple, list))): |
|
285 |
# custom ganeti errors |
|
286 |
err_class = errors.GetErrorClass(result[0]) |
|
287 |
if err_class is not None: |
|
288 |
raise err_class, tuple(result[1]) |
|
289 |
|
|
290 |
raise RequestError(result) |
|
281 | 291 |
|
282 |
return data[KEY_RESULT]
|
|
292 |
return result
|
|
283 | 293 |
|
284 | 294 |
def SubmitJob(self, ops): |
285 | 295 |
ops_state = map(lambda op: op.__getstate__(), ops) |
Also available in: Unified diff