summaryrefslogtreecommitdiff
path: root/common/src
diff options
context:
space:
mode:
Diffstat (limited to 'common/src')
-rw-r--r--common/src/leap/soledad/common/errors.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/common/src/leap/soledad/common/errors.py b/common/src/leap/soledad/common/errors.py
index 7c2d7296..62de19f8 100644
--- a/common/src/leap/soledad/common/errors.py
+++ b/common/src/leap/soledad/common/errors.py
@@ -57,14 +57,26 @@ class AlreadyLockedError(errors.U1DBError):
wire_description = "lock is locked"
status = 403
+
+class LockTimedOutError(errors.U1DBError):
+ """
+ Exception raised when timing out while trying to lock the shared database.
+ """
+
+ wire_description = "lock timed out"
+ status = 408
+
+
# update u1db "wire description to status" and "wire description to exception"
# maps.
-for e in [InvalidTokenError, NotLockedError, AlreadyLockedError]:
+for e in [InvalidTokenError, NotLockedError, AlreadyLockedError,
+ LockTimedOutError]:
http_errors.wire_description_to_status.update({
e.wire_description: e.status})
errors.wire_description_to_exc.update({
e.wire_description: e})
+
# u1db error statuses also have to be updated
http_errors.ERROR_STATUSES = set(
http_errors.wire_description_to_status.values())