Simplify _has_recent_snapshot() code, improve date regex

This commit is contained in:
Orsiris de Jong 2023-12-31 11:20:50 +01:00
parent 933b290e2a
commit 94b569063f

View file

@ -874,24 +874,21 @@ class ResticRunner:
if not snapshot_list or not delta:
return False, backup_ts
tz_aware_timestamp = datetime.now(timezone.utc).astimezone()
# Begin with most recent snapshot
snapshot_list.reverse()
for snapshot in snapshot_list:
print(snapshot)
if re.match(
r"[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\..*\+[0-2][0-9]:[0-9]{2}",
snapshot["time"],
# Now just take the last snapshot in list (being the more recent), and check whether it's too old
last_snapshot = snapshot_list[-1]
if re.match(
r"[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9](\.\d*)?(\+[0-2][0-9]:[0-9]{2})?",
last_snapshot["time"],
):
backup_ts = dateutil.parser.parse(snapshot["time"])
snapshot_age_minutes = (
tz_aware_timestamp - backup_ts
).total_seconds() / 60
if delta - snapshot_age_minutes > 0:
logger.info(
f"Recent snapshot {snapshot['short_id']} of {snapshot['time']} exists !"
)
return True, backup_ts
return None, backup_ts
backup_ts = dateutil.parser.parse(last_snapshot["time"])
snapshot_age_minutes = (tz_aware_timestamp - backup_ts).total_seconds() / 60
if delta - snapshot_age_minutes > 0:
logger.info(
f"Recent snapshot {last_snapshot['short_id']} of {last_snapshot['time']} exists !"
)
return True, backup_ts
return False, backup_ts
@check_if_init
def has_recent_snapshot(self, delta: int = None) -> Tuple[bool, Optional[datetime]]: