Merge branch '3663-collection-reader-performance'
[arvados.git] / sdk / python / arvados / errors.py
index 5ea54befdebcc735dabb3b13688f50743474f31e..89910aa60f389f7e61ecfc9d4be6d492f09ad25f 100644 (file)
@@ -1,14 +1,33 @@
 # 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):
     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