Loading transfer_service/data_rpc_server.py +24 −13 Original line number Diff line number Diff line Loading @@ -10,13 +10,17 @@ import logging import os import sys from rap_client import RapClient from redis_log_handler import RedisLogHandler from redis_rpc_server import RedisRPCServer from http.client import HTTPException from socket import gaierror from config import Config from db_connector import DbConnector from exceptions import MultipleUsersException from job import Job from job_queue import JobQueue from rap_client import RapClient from redis_log_handler import RedisLogHandler from redis_rpc_server import RedisRPCServer from system_utils import SystemUtils Loading Loading @@ -88,17 +92,24 @@ class DataRPCServer(RedisRPCServer): rapCli = RapClient() rapInfo = rapCli.getUserInfo(user) except HTTPException: errorMsg = "HTTP exception." errorMsg = "HTTP exception when trying to connect to RAP." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 6, "errorMsg": errorMsg } return response except (OSError, gaierror): errorMsg = "Unable to connect to RAP." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 7, "errorMsg": errorMsg } return response except MultipleUsersException: errorMsg = "Multiple users with the same email address in RAP." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 7, "errorCode": 8, "errorMsg": errorMsg } return response try: Loading @@ -111,7 +122,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = f"No storage point of type '{storageType}' available." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 8, "errorCode": 9, "errorMsg": errorMsg } return response except Exception: Loading @@ -130,14 +141,14 @@ class DataRPCServer(RedisRPCServer): errorMsg = "The user does not exist on the transfer node." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 9, "errorCode": 10, "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": 10, "errorCode": 11, "errorMsg": errorMsg } else: if not userInDb and rapInfo: Loading Loading @@ -166,19 +177,19 @@ class DataRPCServer(RedisRPCServer): errorMsg = "The 'store' directory on the transfer node is empty." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 11, "errorCode": 12, "errorMsg": errorMsg } else: errorMsg = "Service busy. Please, retry later." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 12, "errorCode": 13, "errorMsg": errorMsg } else: errorMsg = "Permission denied." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 13, "errorCode": 14, "errorMsg": errorMsg } elif requestBody["requestType"] == "STORE_CON": self.logger.info("Checking storage point connection...") Loading Loading @@ -224,7 +235,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Unable to insert the job in the 'write_pending' queue." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 14, "errorCode": 15, "errorMsg": errorMsg } return response else: Loading @@ -234,7 +245,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Unkown request type." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 15, "errorCode": 16, "errorMsg": errorMsg } return response Loading Loading
transfer_service/data_rpc_server.py +24 −13 Original line number Diff line number Diff line Loading @@ -10,13 +10,17 @@ import logging import os import sys from rap_client import RapClient from redis_log_handler import RedisLogHandler from redis_rpc_server import RedisRPCServer from http.client import HTTPException from socket import gaierror from config import Config from db_connector import DbConnector from exceptions import MultipleUsersException from job import Job from job_queue import JobQueue from rap_client import RapClient from redis_log_handler import RedisLogHandler from redis_rpc_server import RedisRPCServer from system_utils import SystemUtils Loading Loading @@ -88,17 +92,24 @@ class DataRPCServer(RedisRPCServer): rapCli = RapClient() rapInfo = rapCli.getUserInfo(user) except HTTPException: errorMsg = "HTTP exception." errorMsg = "HTTP exception when trying to connect to RAP." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 6, "errorMsg": errorMsg } return response except (OSError, gaierror): errorMsg = "Unable to connect to RAP." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 7, "errorMsg": errorMsg } return response except MultipleUsersException: errorMsg = "Multiple users with the same email address in RAP." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 7, "errorCode": 8, "errorMsg": errorMsg } return response try: Loading @@ -111,7 +122,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = f"No storage point of type '{storageType}' available." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 8, "errorCode": 9, "errorMsg": errorMsg } return response except Exception: Loading @@ -130,14 +141,14 @@ class DataRPCServer(RedisRPCServer): errorMsg = "The user does not exist on the transfer node." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 9, "errorCode": 10, "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": 10, "errorCode": 11, "errorMsg": errorMsg } else: if not userInDb and rapInfo: Loading Loading @@ -166,19 +177,19 @@ class DataRPCServer(RedisRPCServer): errorMsg = "The 'store' directory on the transfer node is empty." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 11, "errorCode": 12, "errorMsg": errorMsg } else: errorMsg = "Service busy. Please, retry later." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 12, "errorCode": 13, "errorMsg": errorMsg } else: errorMsg = "Permission denied." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 13, "errorCode": 14, "errorMsg": errorMsg } elif requestBody["requestType"] == "STORE_CON": self.logger.info("Checking storage point connection...") Loading Loading @@ -224,7 +235,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Unable to insert the job in the 'write_pending' queue." self.logger.exception(errorMsg) response = { "responseType": "ERROR", "errorCode": 14, "errorCode": 15, "errorMsg": errorMsg } return response else: Loading @@ -234,7 +245,7 @@ class DataRPCServer(RedisRPCServer): errorMsg = "Unkown request type." self.logger.error(errorMsg) response = { "responseType": "ERROR", "errorCode": 15, "errorCode": 16, "errorMsg": errorMsg } return response Loading