From faa4b32bdc6113516ffd3d30761c2bc97a28c062 Mon Sep 17 00:00:00 2001
From: Joao Lopes <joao.pedro.batista.lopes@cern.ch>
Date: Tue, 12 Oct 2021 18:23:56 +0200
Subject: [PATCH] FTS-1731: Migrate FTS-1728
- https://gitlab.cern.ch/fts/fts-rest/-/commit/fe704b5ab73e30f6eb2934d24c8f92c181e3db63
---
src/fts3rest/fts3rest/lib/JobBuilder.py | 18 ++++++++++++++++++
src/fts3rest/fts3rest/lib/JobBuilder_utils.py | 2 ++
2 files changed, 20 insertions(+)
diff --git a/src/fts3rest/fts3rest/lib/JobBuilder.py b/src/fts3rest/fts3rest/lib/JobBuilder.py
index 09aa6281..3e7ffa0b 100644
--- a/src/fts3rest/fts3rest/lib/JobBuilder.py
+++ b/src/fts3rest/fts3rest/lib/JobBuilder.py
@@ -337,6 +337,24 @@ class JobBuilder:
if max_time_in_queue is not None:
expiration_time = time.time() + max_time_in_queue
+ if max_time_in_queue is not None and self.params["bring_online"] > 0:
+ # Ensure that the bringonline and expiration delta is respected
+ timeout_delta = seconds_from_value(
+ app.config.get("fts3.BringOnlineAndExpirationDelta", None)
+ )
+ if timeout_delta is not None:
+ log.debug(
+ "Will enforce BringOnlineAndExpirationDelta="
+ + str(timeout_delta)
+ + "s"
+ )
+ if max_time_in_queue - self.params["bring_online"] < timeout_delta:
+ raise BadRequest(
+ "Bringonline and Expiration timeout must be at least "
+ + str(timeout_delta)
+ + " seconds apart"
+ )
+
if self.params["overwrite"]:
overwrite_flag = "Y"
elif self.params["overwrite_on_retry"]:
diff --git a/src/fts3rest/fts3rest/lib/JobBuilder_utils.py b/src/fts3rest/fts3rest/lib/JobBuilder_utils.py
index 398c9199..8ee8591b 100644
--- a/src/fts3rest/fts3rest/lib/JobBuilder_utils.py
+++ b/src/fts3rest/fts3rest/lib/JobBuilder_utils.py
@@ -276,6 +276,8 @@ def seconds_from_value(value):
return int(value) * 60
elif suffix == "h":
return int(value) * 3600
+ elif suffix == "d":
+ return int(value) * 3600 * 24
else:
return None
except Exception:
--
GitLab