diff --git a/webservice/webservice.py b/webservice/webservice.py index ffcdb21a9a9b20a770e3fdb765f73d5f233d100f..57644a00a165b4878ec9f640ab63de7191fd1bf6 100644 --- a/webservice/webservice.py +++ b/webservice/webservice.py @@ -586,19 +586,21 @@ async def wait_on_transfer( # Resolving is done here in case the symlink target changed during the loop run_dir = run_dir.resolve() - # TODO: this should use path.is_relative_to, but that is isn't available - # in python 3.8 - gpfs_transfer_done = ( - str(run_dir).startswith("/gpfs/exfel/d") - and any("XFEL_GPFS_OFFLINE" in r for r in repositories) - ) + required_repository = None + logging.debug(f"{run_dir.parts}") + if run_dir.parts[1:4] == ("pnfs", "xfel.eu", "exfel"): + required_repository = "DESY_DCACHE_RAW" + elif run_dir.parts[1:4] == ("gpfs", "exfel", "d"): + required_repository = "XFEL_GPFS_OFFLINE" + else: + logging.warning( + f"Proposal {proposal} run {run} resolved path is not relative to" + f"`/pnfs/xfel.eu/exfel` or `/gpfs/exfel/d`: {run_dir}" + ) - dcache_transfer_done = ( - str(run_dir).startswith("/pnfs") - and any("DESY_DCACHE" in r for r in repositories) - ) + logging.debug(f"{required_repository=}") - if gpfs_transfer_done or dcache_transfer_done: + if any(required_repository in r for r in repositories): return repositories logging.info(