diff --git a/requirements-swh.txt b/requirements-swh.txt --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -2,5 +2,5 @@ swh.model >= 0.0.15 swh.objstorage >= 0.0.43 swh.scheduler >= 0.0.47 -swh.storage >= 0.3.0 +swh.storage >= 0.5.0 swh.journal >= 0.1.0 diff --git a/swh/indexer/origin_head.py b/swh/indexer/origin_head.py --- a/swh/indexer/origin_head.py +++ b/swh/indexer/origin_head.py @@ -32,14 +32,19 @@ # Dispatch def index(self, origin_url): - latest_visit = self.storage.origin_visit_get_latest( - origin_url, allowed_statuses=["full"], require_snapshot=True + visit = self.storage.origin_visit_get_latest(origin_url) + if visit is None: + return None + visit_status = self.storage.origin_visit_status_get_latest( + origin_url, visit["visit"], allowed_statuses=["full"] ) - if latest_visit is None: + if visit_status is None: + return None + latest_snapshot = self.storage.snapshot_get(visit_status.snapshot) + if latest_snapshot is None: return None - latest_snapshot = self.storage.snapshot_get(latest_visit["snapshot"]) method = getattr( - self, "_try_get_%s_head" % latest_visit["type"], self._try_get_head_generic + self, "_try_get_%s_head" % visit["type"], self._try_get_head_generic ) rev_id = method(latest_snapshot)