diff --git a/transfer_service/data_rpc_server.py b/transfer_service/data_rpc_server.py index 7eba9f04b7508c389b34eb2784ec3eadf8d8a088..31881603cfbbde469f2427eb807ee2957baa9df1 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 25b0c86d98e434179a2490e7778be0ceba34cf3e..f38072daf5bef7f6d384c397490b8da49fe67d9d 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 1f6413b20ab3dc05137b75b70146aaaf9483506f..9fc06f4a5bbfe5ece0bb078c09473bace785231e 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: