From aaa9115cfd4096a4fb6cf0ffbc2c07c75ed3a751 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Wed, 22 Mar 2017 16:34:15 -0300 Subject: [feature] use 409 status code for existing blob id Raising was generating 500, which is a generic status code for server side errors. This commit adds proper status code of 409 while handling the error on client side by translating the code into a proper exception class. --- server/src/leap/soledad/server/_blobs.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'server/src/leap/soledad/server/_blobs.py') diff --git a/server/src/leap/soledad/server/_blobs.py b/server/src/leap/soledad/server/_blobs.py index 4317deff..25266b18 100644 --- a/server/src/leap/soledad/server/_blobs.py +++ b/server/src/leap/soledad/server/_blobs.py @@ -52,10 +52,6 @@ logger = Logger() # [ ] chunking (should we do it on the client or on the server?) -class BlobAlreadyExists(Exception): - pass - - class IBlobsBackend(Interface): """ @@ -125,8 +121,9 @@ class FilesystemBlobsBackend(object): except: pass if os.path.isfile(path): - # XXX return some 5xx code - raise BlobAlreadyExists() + # 409 - Conflict + request.setResponseCode(409) + return "Blob already exists: %s" % blob_id used = self.get_total_storage(user) if used > self.quota: logger.error("Error 507: Quota exceeded for user: %s" % user) -- cgit v1.2.3