X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9e3bb9b984ff700fc3455f87437a8f1ac5841f0e..f12350f25275fbf4c6c8692122f5eacce89794ee:/sdk/python/arvados/errors.py diff --git a/sdk/python/arvados/errors.py b/sdk/python/arvados/errors.py index 5ea54befde..1d9c77851e 100644 --- a/sdk/python/arvados/errors.py +++ b/sdk/python/arvados/errors.py @@ -1,5 +1,18 @@ # errors.py - Arvados-specific exceptions. +import apiclient.errors +import json + +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): @@ -12,3 +25,7 @@ class KeepWriteError(Exception): pass class NotImplementedError(Exception): pass +class NoKeepServersError(Exception): + pass +class StaleWriterStateError(Exception): + pass