diff --git a/transfer_service/import_executor.py b/transfer_service/import_executor.py index ed9c43008b02a29395aa849a4c79b7bcd4f5da7a..c95a1b2cc1961b9a55d21d6ea10a17086fe04d87 100644 --- a/transfer_service/import_executor.py +++ b/transfer_service/import_executor.py @@ -83,7 +83,7 @@ class ImportExecutor(TaskExecutor): if self.storageType == "cold": self.tapeClient.connect() - self.tapeClient.recallChecksumFiles(self.path) + self.tapeClient.recallChecksumFiles(self.path, self.jobId) self.tapeClient.disconnect() self.logger.info(f"Checking for invalid file/dir names in '{self.path}'") diff --git a/transfer_service/tape_client.py b/transfer_service/tape_client.py index 65c91c282725b1fd894360580887a4bd5486cf00..aeebfabd0b74a0321a8f18f7f6ba8238f991fefe 100644 --- a/transfer_service/tape_client.py +++ b/transfer_service/tape_client.py @@ -176,13 +176,14 @@ class TapeClient(object): raise TapeClientException(cmd, exitCode, stderr) return exitCode - def recallChecksumFiles(self, dirName): + def recallChecksumFiles(self, dirName, jobId): """ Recursively recalls from tape all the checksum files related to the 'dirName' directory. + A VOSpace job ID is also required as parameter. """ self.logger.info("Starting RECALL_CHECKSUM operation...") - checksumFileList = "vos_recall_checksum_files-{jobId}.lst" + checksumFileList = f"vos_recall_checksum_files-{jobId}.lst" cmd = f"find $(dirname {dirName}) -type f \( -iname \"*-md5sum.txt\" \) > {self.VOSPACE_WD}/{checksumFileList} && {self.DSMRECALL} -filelist={self.VOSPACE_WD}/{checksumFileList} > /dev/null 2>&1" try: stdin, stdout, stderr = self.client.exec_command(cmd)