Skip to content

Commit 659fb14

Browse files
committed
Make FileChecker().expire_on self-setting-up
So it's easier to use in check-only scneario like autoimages route Also fixed return codes (and signature) for main methods
1 parent f83bb6a commit 659fb14

1 file changed

Lines changed: 17 additions & 7 deletions

File tree

scheduler/src/utils/files.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,20 @@ def next_expiration_on(self):
9090
"""date to expire at based on previous expiration and constant (nb days)"""
9191
return datetime.datetime.now() + datetime.timedelta(days=self.extend_for_days)
9292

93-
def extend_if_expiring_soon(self):
93+
@property
94+
def expire_on(self) -> datetime.datetime:
95+
if not hasattr(self, "_expire_on"):
96+
self._expire_on = self.get_expiry()
97+
return self._expire_on
98+
99+
@expire_on.setter
100+
def expire_on(self, on: datetime.datetime):
101+
self._expire_on = on
102+
103+
def extend_if_expiring_soon(self) -> bool:
94104
"""extend expiration date if it's close to expiration"""
95105
try:
96-
self.expire_on = self.get_expiry()
106+
self.expire_on
97107
except (MarkerNotFound, InvalidExpirationDate):
98108
# set in past so considered expired
99109
self.expire_on = datetime.datetime.now() - datetime.timedelta(
@@ -104,13 +114,13 @@ def extend_if_expiring_soon(self):
104114
logger.error(
105115
f"Failed to check {self.file['_id']},{self.file['download_url']}: {exc!s}"
106116
)
107-
return
117+
return False
108118

109119
if self.expire_on <= self.max_renewal_date:
110120
return self.update_marker_with(days_from_now=self.extend_for_days)
111121
return False
112122

113-
def update_marker_with(self, days_from_now: int):
123+
def update_marker_with(self, days_from_now: int) -> bool:
114124
"""Upload a marker with the new datetime."""
115125
upload_url = (
116126
get_credentials_s3_url(self.file["upload_url"])
@@ -127,12 +137,12 @@ def update_marker_with(self, days_from_now: int):
127137
== 0
128138
)
129139

130-
def remove_if_expired(self):
140+
def remove_if_expired(self) -> bool:
131141
"""remove file both from storage and DB is it expired"""
132142
try:
133-
self.expire_on = self.get_expiry()
143+
self.expire_on
134144
except (MarkerNotFound, InvalidExpirationDate):
135-
self.remove_file_and_entry()
145+
return self.remove_file_and_entry()
136146
except Exception as exc:
137147
# network error? log
138148
logger.error(

0 commit comments

Comments
 (0)