X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7cf55dce1df774d2c3daa3e54c0d4f27c38d4b11..a70e6990cd6903cd30b1c54b7454fffc1848e63c:/sdk/python/arvados/errors.py diff --git a/sdk/python/arvados/errors.py b/sdk/python/arvados/errors.py index e4c69a3c83..4740a2d919 100644 --- a/sdk/python/arvados/errors.py +++ b/sdk/python/arvados/errors.py @@ -1,16 +1,33 @@ # errors.py - Arvados-specific exceptions. +import json +from apiclient import errors as apiclient_errors + +class ApiError(apiclient_errors.HttpError): + def _get_reason(self): + try: + return '; '.join(json.loads(self.content)['errors']) + except (KeyError, TypeError, ValueError): + return super(ApiError, self)._get_reason() + + class ArgumentError(Exception): pass class SyntaxError(Exception): pass class AssertionError(Exception): pass -class NotFoundError(Exception): - pass class CommandFailedError(Exception): pass +class KeepReadError(Exception): + pass class KeepWriteError(Exception): pass +class NotFoundError(KeepReadError): + pass class NotImplementedError(Exception): pass +class NoKeepServersError(Exception): + pass +class StaleWriterStateError(Exception): + pass