Loading transfer_service/abort_job_amqp_server.py +3 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,9 @@ class AbortJobAMQPServer(AMQPServer): self.params["password"], self.params["host"], self.params.getint("port"), self.params["db"]) self.params["db"], 8, 16) super(AbortJobAMQPServer, self).__init__(host, port, queue) def execute_callback(self, requestBody): Loading transfer_service/db_connector.py +5 −3 Original line number Diff line number Diff line Loading @@ -12,18 +12,20 @@ from node import Node class DbConnector(object): def __init__(self, user, password, host, port, dbname): def __init__(self, user, password, host, port, dbname, minConnNum, maxConnNum): self.user = user self.password = password self.host = host self.port = port self.dbname = dbname self.minConnNum = minConnNum self.maxConnNum = maxConnNum self.createConnectionPool() def createConnectionPool(self): self.connPool = ThreadedConnectionPool( 8, 16, self.minConnNum, self.maxConnNum, user = self.user, password = self.password, host = self.host, Loading transfer_service/get_job_amqp_server.py +3 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,9 @@ class GetJobAMQPServer(AMQPServer): self.params["password"], self.params["host"], self.params.getint("port"), self.params["db"]) self.params["db"], 8, 16) super(GetJobAMQPServer, self).__init__(host, port, queue) def execute_callback(self, requestBody): Loading transfer_service/import_amqp_server.py +17 −17 Original line number Diff line number Diff line Loading @@ -28,8 +28,8 @@ class ImportAMQPServer(AMQPServer): self.params["user"], self.params["pkey_file_path"]) self.systemUtils = SystemUtils() self.path = None self.username = None #self.path = None #self.username = None super(ImportAMQPServer, self).__init__(host, port, queue) def execute_callback(self, requestBody): Loading @@ -37,11 +37,11 @@ class ImportAMQPServer(AMQPServer): if "requestType" not in requestBody or "path" not in requestBody: response = { "errorCode": 1, "errorMsg": "Malformed request, missing parameters." } elif requestBody["requestType"] == "NODE_IMPORT": self.path = os.path.abspath(requestBody["path"]) self.username = requestBody["userName"] path = os.path.abspath(requestBody["path"]) username = requestBody["userName"] #self.dbConn.connect() userInDb = self.dbConn.userExists(self.username) userInfo = self.systemUtils.userInfo(self.username) userInDb = self.dbConn.userExists(username) userInfo = self.systemUtils.userInfo(username) out = open("import_amqp_server_log.txt", "a") if not userInfo or not userInDb: Loading @@ -51,8 +51,8 @@ class ImportAMQPServer(AMQPServer): #self.dbConn.disconnect() return response userId = self.dbConn.getRapId(self.username) pathPrefix = self.dbConn.storageBasePathIsValid(self.path) userId = self.dbConn.getRapId(username) pathPrefix = self.dbConn.storageBasePathIsValid(path) if pathPrefix: storageId = self.dbConn.getStorageId(pathPrefix) Loading @@ -64,44 +64,44 @@ class ImportAMQPServer(AMQPServer): #self.dbConn.disconnect() return response if not os.path.exists(self.path): if not os.path.exists(path): response = { "responseType": "ERROR", "errorCode": 4, "errorMsg": "Path not found." } #self.dbConn.disconnect() return response elif not os.path.isdir(self.path): elif not os.path.isdir(path): response = { "responseType": "ERROR", "errorCode": 5, "errorMsg": "Directory path expected." } #self.dbConn.disconnect() return response elif self.username not in self.path: elif username not in path: response = { "responseType": "ERROR", "errorCode": 6, "errorMsg": "Directory path does not contain the username." } #self.dbConn.disconnect() return response elif os.path.dirname(self.path) != pathPrefix + '/' + self.username: elif os.path.dirname(path) != pathPrefix + '/' + username: response = { "responseType": "ERROR", "errorCode": 7, "errorMsg": "Invalid path, directory must be located in " + pathPrefix + '/' + self.username } "errorMsg": "Invalid path, directory must be located in " + pathPrefix + '/' + username } #self.dbConn.disconnect() return response else: if storageType == "cold": self.tapeClient.connect() self.tapeClient.recallChecksumFiles(self.path) self.tapeClient.recallChecksumFiles(path) self.tapeClient.disconnect() [ dirs, files ] = self.systemUtils.scanRecursive(os.path.dirname(self.path)) [ dirs, files ] = self.systemUtils.scanRecursive(os.path.dirname(path)) tstampWrapperDirPattern = re.compile("/[0-9]{4}_[0-9]{2}_[0-9]{2}-[0-9]{2}_[0-9]{2}_[0-9]{2}-vos_wrapper") for dir in dirs: out.write(f"DIR dir: {dir}\n") out.write(f"DIR pathPrefix: {pathPrefix}\n\n") if self.path in dir: if path in dir: parentPath = os.path.dirname(dir).split(pathPrefix)[1] nodeName = os.path.basename(dir) Loading Loading @@ -131,7 +131,7 @@ class ImportAMQPServer(AMQPServer): for flist in files: for file in flist: if self.md5calc.fileIsValid(file) and self.path in os.path.dirname(file): if self.md5calc.fileIsValid(file) and path in os.path.dirname(file): out.write(f"FILE files: {files}\n") out.write(f"FILE flist: {flist}\n") out.write(f"FILE file: {file}\n") Loading transfer_service/job_amqp_server.py +13 −11 Original line number Diff line number Diff line Loading @@ -15,9 +15,11 @@ class JobAMQPServer(AMQPServer): self.params["password"], self.params["host"], self.params.getint("port"), self.params["db"]) self.jobId = None self.jobPhase = None self.params["db"], 8, 16) #self.jobId = None #self.jobPhase = None super(JobAMQPServer, self).__init__(host, port, queue) def execute_callback(self, requestBody): Loading @@ -32,16 +34,16 @@ class JobAMQPServer(AMQPServer): #self.dbConn.disconnect() response = { "responseType": "LST_DONE", "jobList": result } elif requestBody["requestType"] == "JOB_BY_PHASE": self.jobPhase = requestBody["jobPhase"] jobPhase = requestBody["jobPhase"] #self.dbConn.connect() result = self.dbConn.listJobsByPhase(self.jobPhase) result = self.dbConn.listJobsByPhase(jobPhase) #self.dbConn.disconnect() response = { "responseType": "LST_BY_PHASE_DONE", "jobList": result } elif requestBody["requestType"] == "JOB_INFO": self.jobId = requestBody["jobId"] jobId = requestBody["jobId"] #self.dbConn.connect() if self.dbConn.jobExists(self.jobId): result = self.dbConn.getJobInfo(self.jobId) if self.dbConn.jobExists(jobId): result = self.dbConn.getJobInfo(jobId) response = { "responseType": "LST_INFO_DONE", "jobInfo": result } else: response = { "responseType": "ERROR", Loading @@ -49,10 +51,10 @@ class JobAMQPServer(AMQPServer): "errorMsg": "Wrong job ID." } #self.dbConn.disconnect() elif requestBody["requestType"] == "JOB_RESULTS": self.jobId = requestBody["jobId"] jobId = requestBody["jobId"] #self.dbConn.connect() if self.dbConn.jobExists(self.jobId): result = self.dbConn.getJobResults(self.jobId) if self.dbConn.jobExists(jobId): result = self.dbConn.getJobResults(jobId) response = { "responseType": "LST_RESULTS_DONE", "jobResults": result } else: response = { "responseType": "ERROR", Loading Loading
transfer_service/abort_job_amqp_server.py +3 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,9 @@ class AbortJobAMQPServer(AMQPServer): self.params["password"], self.params["host"], self.params.getint("port"), self.params["db"]) self.params["db"], 8, 16) super(AbortJobAMQPServer, self).__init__(host, port, queue) def execute_callback(self, requestBody): Loading
transfer_service/db_connector.py +5 −3 Original line number Diff line number Diff line Loading @@ -12,18 +12,20 @@ from node import Node class DbConnector(object): def __init__(self, user, password, host, port, dbname): def __init__(self, user, password, host, port, dbname, minConnNum, maxConnNum): self.user = user self.password = password self.host = host self.port = port self.dbname = dbname self.minConnNum = minConnNum self.maxConnNum = maxConnNum self.createConnectionPool() def createConnectionPool(self): self.connPool = ThreadedConnectionPool( 8, 16, self.minConnNum, self.maxConnNum, user = self.user, password = self.password, host = self.host, Loading
transfer_service/get_job_amqp_server.py +3 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,9 @@ class GetJobAMQPServer(AMQPServer): self.params["password"], self.params["host"], self.params.getint("port"), self.params["db"]) self.params["db"], 8, 16) super(GetJobAMQPServer, self).__init__(host, port, queue) def execute_callback(self, requestBody): Loading
transfer_service/import_amqp_server.py +17 −17 Original line number Diff line number Diff line Loading @@ -28,8 +28,8 @@ class ImportAMQPServer(AMQPServer): self.params["user"], self.params["pkey_file_path"]) self.systemUtils = SystemUtils() self.path = None self.username = None #self.path = None #self.username = None super(ImportAMQPServer, self).__init__(host, port, queue) def execute_callback(self, requestBody): Loading @@ -37,11 +37,11 @@ class ImportAMQPServer(AMQPServer): if "requestType" not in requestBody or "path" not in requestBody: response = { "errorCode": 1, "errorMsg": "Malformed request, missing parameters." } elif requestBody["requestType"] == "NODE_IMPORT": self.path = os.path.abspath(requestBody["path"]) self.username = requestBody["userName"] path = os.path.abspath(requestBody["path"]) username = requestBody["userName"] #self.dbConn.connect() userInDb = self.dbConn.userExists(self.username) userInfo = self.systemUtils.userInfo(self.username) userInDb = self.dbConn.userExists(username) userInfo = self.systemUtils.userInfo(username) out = open("import_amqp_server_log.txt", "a") if not userInfo or not userInDb: Loading @@ -51,8 +51,8 @@ class ImportAMQPServer(AMQPServer): #self.dbConn.disconnect() return response userId = self.dbConn.getRapId(self.username) pathPrefix = self.dbConn.storageBasePathIsValid(self.path) userId = self.dbConn.getRapId(username) pathPrefix = self.dbConn.storageBasePathIsValid(path) if pathPrefix: storageId = self.dbConn.getStorageId(pathPrefix) Loading @@ -64,44 +64,44 @@ class ImportAMQPServer(AMQPServer): #self.dbConn.disconnect() return response if not os.path.exists(self.path): if not os.path.exists(path): response = { "responseType": "ERROR", "errorCode": 4, "errorMsg": "Path not found." } #self.dbConn.disconnect() return response elif not os.path.isdir(self.path): elif not os.path.isdir(path): response = { "responseType": "ERROR", "errorCode": 5, "errorMsg": "Directory path expected." } #self.dbConn.disconnect() return response elif self.username not in self.path: elif username not in path: response = { "responseType": "ERROR", "errorCode": 6, "errorMsg": "Directory path does not contain the username." } #self.dbConn.disconnect() return response elif os.path.dirname(self.path) != pathPrefix + '/' + self.username: elif os.path.dirname(path) != pathPrefix + '/' + username: response = { "responseType": "ERROR", "errorCode": 7, "errorMsg": "Invalid path, directory must be located in " + pathPrefix + '/' + self.username } "errorMsg": "Invalid path, directory must be located in " + pathPrefix + '/' + username } #self.dbConn.disconnect() return response else: if storageType == "cold": self.tapeClient.connect() self.tapeClient.recallChecksumFiles(self.path) self.tapeClient.recallChecksumFiles(path) self.tapeClient.disconnect() [ dirs, files ] = self.systemUtils.scanRecursive(os.path.dirname(self.path)) [ dirs, files ] = self.systemUtils.scanRecursive(os.path.dirname(path)) tstampWrapperDirPattern = re.compile("/[0-9]{4}_[0-9]{2}_[0-9]{2}-[0-9]{2}_[0-9]{2}_[0-9]{2}-vos_wrapper") for dir in dirs: out.write(f"DIR dir: {dir}\n") out.write(f"DIR pathPrefix: {pathPrefix}\n\n") if self.path in dir: if path in dir: parentPath = os.path.dirname(dir).split(pathPrefix)[1] nodeName = os.path.basename(dir) Loading Loading @@ -131,7 +131,7 @@ class ImportAMQPServer(AMQPServer): for flist in files: for file in flist: if self.md5calc.fileIsValid(file) and self.path in os.path.dirname(file): if self.md5calc.fileIsValid(file) and path in os.path.dirname(file): out.write(f"FILE files: {files}\n") out.write(f"FILE flist: {flist}\n") out.write(f"FILE file: {file}\n") Loading
transfer_service/job_amqp_server.py +13 −11 Original line number Diff line number Diff line Loading @@ -15,9 +15,11 @@ class JobAMQPServer(AMQPServer): self.params["password"], self.params["host"], self.params.getint("port"), self.params["db"]) self.jobId = None self.jobPhase = None self.params["db"], 8, 16) #self.jobId = None #self.jobPhase = None super(JobAMQPServer, self).__init__(host, port, queue) def execute_callback(self, requestBody): Loading @@ -32,16 +34,16 @@ class JobAMQPServer(AMQPServer): #self.dbConn.disconnect() response = { "responseType": "LST_DONE", "jobList": result } elif requestBody["requestType"] == "JOB_BY_PHASE": self.jobPhase = requestBody["jobPhase"] jobPhase = requestBody["jobPhase"] #self.dbConn.connect() result = self.dbConn.listJobsByPhase(self.jobPhase) result = self.dbConn.listJobsByPhase(jobPhase) #self.dbConn.disconnect() response = { "responseType": "LST_BY_PHASE_DONE", "jobList": result } elif requestBody["requestType"] == "JOB_INFO": self.jobId = requestBody["jobId"] jobId = requestBody["jobId"] #self.dbConn.connect() if self.dbConn.jobExists(self.jobId): result = self.dbConn.getJobInfo(self.jobId) if self.dbConn.jobExists(jobId): result = self.dbConn.getJobInfo(jobId) response = { "responseType": "LST_INFO_DONE", "jobInfo": result } else: response = { "responseType": "ERROR", Loading @@ -49,10 +51,10 @@ class JobAMQPServer(AMQPServer): "errorMsg": "Wrong job ID." } #self.dbConn.disconnect() elif requestBody["requestType"] == "JOB_RESULTS": self.jobId = requestBody["jobId"] jobId = requestBody["jobId"] #self.dbConn.connect() if self.dbConn.jobExists(self.jobId): result = self.dbConn.getJobResults(self.jobId) if self.dbConn.jobExists(jobId): result = self.dbConn.getJobResults(jobId) response = { "responseType": "LST_RESULTS_DONE", "jobResults": result } else: response = { "responseType": "ERROR", Loading