diff --git a/requirements-swh.txt b/requirements-swh.txt --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -1,4 +1,4 @@ swh.model >= 0.3.0 -swh.storage >= 0.0.114 +swh.storage >= 0.5.0 swh.scheduler >= 0.0.39 swh.loader.core >= 0.0.78 diff --git a/swh/loader/mercurial/loader.py b/swh/loader/mercurial/loader.py --- a/swh/loader/mercurial/loader.py +++ b/swh/loader/mercurial/loader.py @@ -117,6 +117,7 @@ self.bundle_path = None self.heads = {} self.releases = {} + self.last_visit_status = None def pre_cleanup(self): """Cleanup potential dangling files from prior runs (e.g. OOM killed @@ -168,9 +169,11 @@ if isinstance(visit_date, str): # visit_date can be string or datetime visit_date = parser.parse(visit_date) self.visit_date = visit_date - self.last_visit = self.storage.origin_visit_get_latest( - self.origin_url, require_snapshot=True - ) + last_visit = self.storage.origin_visit_get_latest(self.origin_url) + if last_visit is not None: + self.last_visit_status = self.storage.origin_visit_status_get_latest( + self.origin_url, last_visit["visit"], require_snapshot=True + ) @staticmethod def clone_with_timeout(log, origin, destination, timeout): @@ -598,7 +601,10 @@ def load_status(self): snapshot = self.get_snapshot() load_status = "eventful" - if self.last_visit is not None and self.last_visit["snapshot"] == snapshot.id: + if ( + self.last_visit_status is not None + and self.last_visit_status.snapshot == snapshot.id + ): load_status = "uneventful" return { "status": load_status,