diff --git a/transfer_service/start_job_rpc_server.py b/transfer_service/start_job_rpc_server.py index c601a054b6e00ee59b24208a7f51c706c0f88fd0..39cb845145bc0912e7ce9165c6f2ecc8beb980e4 100644 --- a/transfer_service/start_job_rpc_server.py +++ b/transfer_service/start_job_rpc_server.py @@ -52,8 +52,8 @@ class StartJobRPCServer(RedisRPCServer): def callback(self, requestBody): # debug block... - out = open("start_job_rpc_server_log.txt", "a") - out.write(json.dumps(requestBody)) + #out = open("start_job_rpc_server_log.txt", "a") + #out.write(json.dumps(requestBody)) job = Job() job.setId(requestBody["job"]["jobId"]) @@ -71,10 +71,28 @@ class StartJobRPCServer(RedisRPCServer): "errorCode": 3, "errorMsg": errorMsg } return response + + # Check if 'read_pending_queue' is full if pendingQueueLen >= self.maxPendingJobs: job.setPhase("ERROR") job.setErrorType("transient") - job.setErrorMessage("Pending queue is full, please, retry later.") + errorMsg = "Pending queue is full, please, retry later." + job.setErrorMessage(errorMsg) + self.logger.warning(errorMsg) + errorFlag = True + # Check if the user is already present in the VOSpace database. If not, change the job phase to 'ERROR'. + # The user must be created in the database using the 'vos_user' admin command. + elif not self.dbConn.getUserName(requestBody["job"]["ownerId"]): + job.setPhase("ERROR") + job.setErrorType("transient") + errorMsg = "The user is registered in the authentication system (RAP), but is not present into the 'users' table of the VOSpace database." + job.setErrorMessage(errorMsg) + self.logger.warning(errorMsg) + errorFlag = True + else: + errorFlag = False + + if errorFlag: try: self.dbConn.insertJob(job) except Exception: