From e20c912fb08a0732211300404e7778cb69abc678 Mon Sep 17 00:00:00 2001
From: Robert Rosca <robert.rosca@xfel.eu>
Date: Wed, 11 May 2022 17:08:05 +0200
Subject: [PATCH] Simplify checks

---
 webservice/webservice.py | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/webservice/webservice.py b/webservice/webservice.py
index ffcdb21a9..57644a00a 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(
-- 
GitLab