Loading transfer_service/db_connector.py +31 −3 Original line number Diff line number Diff line Loading @@ -113,6 +113,16 @@ class DbConnector(object): out.close() return job def userExists(self, username): """Checks if a user already exists. Returns a boolean.""" if self.conn: self.cursor.execute("SELECT * FROM users WHERE user_name = %s;", (username,)) result = self.cursor.fetchall() if result: return True else: return False def getRapId(self, username): """Returns the RAP id for a given user name.""" if self.conn: Loading Loading @@ -152,12 +162,30 @@ class DbConnector(object): """Inserts/updates a job object.""" if self.conn: self.cursor.execute(""" INSERT INTO job(job_id, owner_id, job_type, phase, start_time, end_time, job_info, results) INSERT INTO job(job_id, owner_id, job_type, phase, start_time, end_time, job_info, results) VALUES (%s, %s, %s, %s, %s, %s, %s, %s) ON CONFLICT (job_id) DO UPDATE SET (owner_id, job_type, phase, start_time, end_time, job_info, results) = (EXCLUDED.owner_id, EXCLUDED.job_type, EXCLUDED.phase, EXCLUDED.start_time, EXCLUDED.end_time, EXCLUDED.job_info, EXCLUDED.results); (owner_id, job_type, phase, start_time, end_time, job_info, results) = (EXCLUDED.owner_id, EXCLUDED.job_type, EXCLUDED.phase, EXCLUDED.start_time, EXCLUDED.end_time, EXCLUDED.job_info, EXCLUDED.results); """, (jobObj.jobId, jobObj.ownerId, Loading transfer_service/store_amqp_server.py +4 −3 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ class StoreAMQPServer(AMQPServer): self.job.setInfo(requestBody) self.job.setPhase("PENDING") self.dbConn.connect() userInDb = self.dbConn.userExists(user) if requestBody["requestType"] == "CSTORE": storageList = self.dbConn.getStorageList("cold") else: Loading @@ -58,11 +59,11 @@ class StoreAMQPServer(AMQPServer): #folderPath = "/home/" + user + "/store" folderPath = self.storageStorePath.replace("{username}", user) userInfo = self.systemUtils.userInfo(user) # Check if the user exists on the transfer node if not userInfo: # Check if the user exists on the transfer node and is registered in the database if not userInfo or not userInDb: response = { "responseType": "ERROR", "errorCode": 2, "errorMsg": "The user does not exist on the transfer node." } "errorMsg": "The user does not exist on the transfer node or is not registered in the database." } else: uid = os.stat(folderPath).st_uid gid = os.stat(folderPath).st_gid Loading Loading
transfer_service/db_connector.py +31 −3 Original line number Diff line number Diff line Loading @@ -113,6 +113,16 @@ class DbConnector(object): out.close() return job def userExists(self, username): """Checks if a user already exists. Returns a boolean.""" if self.conn: self.cursor.execute("SELECT * FROM users WHERE user_name = %s;", (username,)) result = self.cursor.fetchall() if result: return True else: return False def getRapId(self, username): """Returns the RAP id for a given user name.""" if self.conn: Loading Loading @@ -152,12 +162,30 @@ class DbConnector(object): """Inserts/updates a job object.""" if self.conn: self.cursor.execute(""" INSERT INTO job(job_id, owner_id, job_type, phase, start_time, end_time, job_info, results) INSERT INTO job(job_id, owner_id, job_type, phase, start_time, end_time, job_info, results) VALUES (%s, %s, %s, %s, %s, %s, %s, %s) ON CONFLICT (job_id) DO UPDATE SET (owner_id, job_type, phase, start_time, end_time, job_info, results) = (EXCLUDED.owner_id, EXCLUDED.job_type, EXCLUDED.phase, EXCLUDED.start_time, EXCLUDED.end_time, EXCLUDED.job_info, EXCLUDED.results); (owner_id, job_type, phase, start_time, end_time, job_info, results) = (EXCLUDED.owner_id, EXCLUDED.job_type, EXCLUDED.phase, EXCLUDED.start_time, EXCLUDED.end_time, EXCLUDED.job_info, EXCLUDED.results); """, (jobObj.jobId, jobObj.ownerId, Loading
transfer_service/store_amqp_server.py +4 −3 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ class StoreAMQPServer(AMQPServer): self.job.setInfo(requestBody) self.job.setPhase("PENDING") self.dbConn.connect() userInDb = self.dbConn.userExists(user) if requestBody["requestType"] == "CSTORE": storageList = self.dbConn.getStorageList("cold") else: Loading @@ -58,11 +59,11 @@ class StoreAMQPServer(AMQPServer): #folderPath = "/home/" + user + "/store" folderPath = self.storageStorePath.replace("{username}", user) userInfo = self.systemUtils.userInfo(user) # Check if the user exists on the transfer node if not userInfo: # Check if the user exists on the transfer node and is registered in the database if not userInfo or not userInDb: response = { "responseType": "ERROR", "errorCode": 2, "errorMsg": "The user does not exist on the transfer node." } "errorMsg": "The user does not exist on the transfer node or is not registered in the database." } else: uid = os.stat(folderPath).st_uid gid = os.stat(folderPath).st_gid Loading