From 804fa321fdb7f7233d9dd84ec9f8e928a71abfab Mon Sep 17 00:00:00 2001 From: Cristiano Urban Date: Fri, 13 Aug 2021 12:10:05 +0200 Subject: [PATCH] Standardize some common error codes + minor changes. Signed-off-by: Cristiano Urban --- transfer_service/data_rpc_server.py | 39 ++++++++++++++++---------- transfer_service/import_rpc_server.py | 14 ++++----- transfer_service/storage_rpc_server.py | 10 +++---- 3 files changed, 36 insertions(+), 27 deletions(-) diff --git a/transfer_service/data_rpc_server.py b/transfer_service/data_rpc_server.py index 7eba9f0..3188160 100644 --- a/transfer_service/data_rpc_server.py +++ b/transfer_service/data_rpc_server.py @@ -49,6 +49,15 @@ class DataRPCServer(RedisRPCServer): super(DataRPCServer, self).__init__(host, port, db, rpcQueue) def callback(self, requestBody): + try: + queueLen = self.pendingQueueWrite.len() + except Exception: + errorMsg = "Cache error." + self.logger.exception(errorMsg) + response = { "responseType": "ERROR", + "errorCode": 3, + "errorMsg": errorMsg } + return response # 'requestType' and 'userName' attributes are mandatory if "requestType" not in requestBody or "userName" not in requestBody: errorMsg = "Malformed request, missing parameters." @@ -56,11 +65,11 @@ class DataRPCServer(RedisRPCServer): response = { "responseType":"ERROR", "errorCode": 1, "errorMsg": errorMsg } - elif self.pendingQueueWrite.len() >= self.maxPendingJobs: + elif queueLen >= self.maxPendingJobs: errorMsg = "Pending queue is full, please, retry later." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 2, + "errorCode": 4, "errorMsg": errorMsg } elif requestBody["requestType"] == "CSTORE" or requestBody["requestType"] == "HSTORE": user = requestBody["userName"] @@ -70,7 +79,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Database error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 3, + "errorCode": 2, "errorMsg": errorMsg } return response try: @@ -80,14 +89,14 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Multiple users with the same email address in RAP." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 4, + "errorCode": 5, "errorMsg": errorMsg } return response except HTTPException: errorMsg = "HTTP exception." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 5, + "errorCode": 6, "errorMsg": errorMsg } return response try: @@ -99,7 +108,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Database error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 3, + "errorCode": 2, "errorMsg": errorMsg } return response #folderPath = "/home/" + user + "/store" @@ -111,14 +120,14 @@ class DataRPCServer(RedisRPCServer): errorMsg = "The user does not exist on the transfer node." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 6, + "errorCode": 7, "errorMsg": errorMsg } elif not (userInDb or rapInfo): # the user cannot be found neither in RAP nor in db errorMsg = "The user is not registered neither in RAP nor in the database." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 7, + "errorCode": 8, "errorMsg": errorMsg } else: if not userInDb and rapInfo: @@ -129,7 +138,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Database error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 3, + "errorCode": 2, "errorMsg": errorMsg } return response uid = os.stat(folderPath).st_uid @@ -147,19 +156,19 @@ class DataRPCServer(RedisRPCServer): errorMsg = "The 'store' directory on the transfer node is empty." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 8, + "errorCode": 9, "errorMsg": errorMsg } else: errorMsg = "Service busy. Please, retry later." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 9, + "errorCode": 10, "errorMsg": errorMsg } else: errorMsg = "Permission denied." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 10, + "errorCode": 11, "errorMsg": errorMsg } elif requestBody["requestType"] == "STORE_CON": username = requestBody["userName"] @@ -175,7 +184,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Database error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 3, + "errorCode": 2, "errorMsg": errorMsg } return response jobObj.jobInfo["storageId"] = requestBody["storageId"] @@ -186,7 +195,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Unable to insert the job in the 'write_pending' queue." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 11, + "errorCode": 12, "errorMsg": errorMsg } return response else: @@ -196,7 +205,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Unkown request type." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 12, + "errorCode": 13, "errorMsg": errorMsg } return response diff --git a/transfer_service/import_rpc_server.py b/transfer_service/import_rpc_server.py index 25b0c86..f38072d 100644 --- a/transfer_service/import_rpc_server.py +++ b/transfer_service/import_rpc_server.py @@ -70,14 +70,14 @@ class ImportRPCServer(RedisRPCServer): except MultipleUsersException: errorMsg = "Multiple users with the same email address in RAP." response = { "responseType": "ERROR", - "errorCode": 3, + "errorCode": 4, "errorMsg": errorMsg } return response except HTTPException: errorMsg = "HTTP exception." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 4, + "errorCode": 5, "errorMsg": errorMsg } return response userInfo = self.systemUtils.userInfo(username) @@ -85,7 +85,7 @@ class ImportRPCServer(RedisRPCServer): errorMsg = "The user does not exist on the transfer node." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 5, + "errorCode": 6, "errorMsg": errorMsg } return response elif not (userInDb or rapInfo): @@ -93,7 +93,7 @@ class ImportRPCServer(RedisRPCServer): errorMsg = "The user is not registered neither in RAP nor in the database." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 6, + "errorCode": 7, "errorMsg": errorMsg } return response else: @@ -125,7 +125,7 @@ class ImportRPCServer(RedisRPCServer): errorMsg = "Invalid storage mount point." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 7, + "errorCode": 8, "errorMsg": errorMsg } return response try: @@ -134,7 +134,7 @@ class ImportRPCServer(RedisRPCServer): errorMsg = "Cache error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 8, + "errorCode": 3, "errorMsg": errorMsg } return response if not os.path.exists(path): @@ -191,7 +191,7 @@ class ImportRPCServer(RedisRPCServer): errorMsg = "Cache error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 8, + "errorCode": 3, "errorMsg": errorMsg } return response response = { "responseType": "IMPORT_STARTED" } diff --git a/transfer_service/storage_rpc_server.py b/transfer_service/storage_rpc_server.py index 1f6413b..9fc06f4 100644 --- a/transfer_service/storage_rpc_server.py +++ b/transfer_service/storage_rpc_server.py @@ -53,7 +53,7 @@ class StorageRPCServer(RedisRPCServer): errorMsg = "Base path doesn't exist." self.logger.error(errorMsg) response = { "responseType": "ERROR", - "errorCode": 2, + "errorCode": 3, "errorMsg": errorMsg } return response try: @@ -65,7 +65,7 @@ class StorageRPCServer(RedisRPCServer): errorMsg = "Database error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 3, + "errorCode": 2, "errorMsg": errorMsg } return response else: @@ -84,7 +84,7 @@ class StorageRPCServer(RedisRPCServer): errorMsg = "Database error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 3, + "errorCode": 2, "errorMsg": errorMsg } return response else: @@ -98,7 +98,7 @@ class StorageRPCServer(RedisRPCServer): errorMsg = "Database error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 3, + "errorCode": 2, "errorMsg": errorMsg } return response else: @@ -117,7 +117,7 @@ class StorageRPCServer(RedisRPCServer): errorMsg = "Database error." self.logger.exception(errorMsg) response = { "responseType": "ERROR", - "errorCode": 3, + "errorCode": 2, "errorMsg": errorMsg } return response else: -- GitLab