From f2adcbb58e7a99b5fad71a6bac68e7bb529bffe0 Mon Sep 17 00:00:00 2001 From: Peter Silva Date: Wed, 5 Jun 2024 23:35:13 -0400 Subject: [PATCH 1/2] fix #1089, implementing fileAgeMax support in mainline --- sarracenia/flow/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sarracenia/flow/__init__.py b/sarracenia/flow/__init__.py index df27a3ed0..484cc1f7a 100644 --- a/sarracenia/flow/__init__.py +++ b/sarracenia/flow/__init__.py @@ -962,8 +962,13 @@ def filter(self) -> None: if self.o.messageAgeMax != 0 and lag > self.o.messageAgeMax: self.reject( m, 504, - "Excessive lag: %g sec. Skipping download of: %s, " % - (lag, m['new_file'])) + f"message too old (high lag): {lag:g} sec. skipping: {m['new_file']}, " ) + continue + + if self.o.fileAgeMax > 0 and 'mtime' in m: + age = now-sarracenia.timestr2flt(m['mtime']) + if age > self.o.fileAgeMax: + self.reject( m, 410, f"file too old: {age:g} sec. skipping: {m['new_file']}, ") continue if 'fileOp' in m and 'rename' in m['fileOp']: From d028e93f8b02986818415fcd8c7bed0520720a03 Mon Sep 17 00:00:00 2001 From: petersilva Date: Thu, 6 Jun 2024 16:06:45 -0400 Subject: [PATCH 2/2] second shot at 1089, implementing fileAgeMin and Max --- sarracenia/flow/__init__.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sarracenia/flow/__init__.py b/sarracenia/flow/__init__.py index 484cc1f7a..8373d94b2 100644 --- a/sarracenia/flow/__init__.py +++ b/sarracenia/flow/__init__.py @@ -965,11 +965,16 @@ def filter(self) -> None: f"message too old (high lag): {lag:g} sec. skipping: {m['new_file']}, " ) continue - if self.o.fileAgeMax > 0 and 'mtime' in m: + if 'mtime' in m: age = now-sarracenia.timestr2flt(m['mtime']) - if age > self.o.fileAgeMax: + if self.o.fileAgeMax > 0 and age > self.o.fileAgeMax: self.reject( m, 410, f"file too old: {age:g} sec. skipping: {m['new_file']}, ") - continue + continue + + if self.o.fileAgeMin > 0 and age < self.o.fileAgeMin: + logger.warning( f"file too young: queueing for retry.") + self.worklist.failed.append(msg) + continue if 'fileOp' in m and 'rename' in m['fileOp']: url = self.o.variableExpansion(m['baseUrl'],