diff --git a/requirements-swh.txt b/requirements-swh.txt --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -1,4 +1,4 @@ swh.core >= 0.0.75 swh.model >= 0.3.0 swh.scheduler -swh.storage >= 0.2.0 +swh.storage >= 0.3.0 diff --git a/swh/loader/core/loader.py b/swh/loader/core/loader.py --- a/swh/loader/core/loader.py +++ b/swh/loader/core/loader.py @@ -18,6 +18,7 @@ SkippedContent, Directory, Origin, + OriginVisit, OriginVisitStatus, Revision, Release, @@ -173,9 +174,16 @@ if not self.visit_date: # now as default visit_date if not provided self.visit_date = datetime.datetime.now(tz=datetime.timezone.utc) - self.visit = self.storage.origin_visit_add( - self.origin.url, self.visit_date, self.visit_type + assert isinstance(self.visit_date, datetime.datetime) + assert isinstance(self.visit_type, str) + visit = OriginVisit( + origin=self.origin.url, + date=self.visit_date, + type=self.visit_type, + status="ongoing", + snapshot=None, ) + self.visit = self.storage.origin_visit_add([visit])[0] @abstractmethod def prepare(self, *args, **kwargs) -> None: diff --git a/swh/loader/core/tests/test_loader.py b/swh/loader/core/tests/test_loader.py --- a/swh/loader/core/tests/test_loader.py +++ b/swh/loader/core/tests/test_loader.py @@ -7,7 +7,7 @@ import hashlib import logging -from swh.model.model import Origin, Snapshot +from swh.model.model import Origin, OriginVisit, Snapshot from swh.loader.core.loader import BaseLoader, DVCSLoader @@ -33,9 +33,14 @@ self.visit_date = datetime.datetime.now(tz=datetime.timezone.utc) self.visit_type = "git" origin_url = self.storage.origin_add_one(ORIGIN) - self.visit = self.storage.origin_visit_add( - origin_url, self.visit_date, self.visit_type + visit = OriginVisit( + origin=origin_url, + date=self.visit_date, + type=self.visit_type, + status="ongoing", + snapshot=None, ) + self.visit = self.storage.origin_visit_add([visit])[0] class DummyDVCSLoader(DummyLoader, DVCSLoader): diff --git a/swh/loader/package/loader.py b/swh/loader/package/loader.py --- a/swh/loader/package/loader.py +++ b/swh/loader/package/loader.py @@ -27,6 +27,7 @@ TargetType, Snapshot, Origin, + OriginVisit, OriginVisitStatus, ) from swh.storage import get_storage @@ -286,6 +287,7 @@ snapshot_id: Optional[bytes] = None if snapshot and snapshot.id: # to prevent the snapshot.id to b"" snapshot_id = snapshot.id + assert visit.visit visit_status = OriginVisitStatus( origin=self.url, visit=visit.visit, @@ -305,9 +307,14 @@ origin = Origin(url=self.url) try: self.storage.origin_add_one(origin) - visit = self.storage.origin_visit_add( - self.url, date=self.visit_date, type=self.visit_type + visit = OriginVisit( + origin=self.url, + date=self.visit_date, + type=self.visit_type, + status="ongoing", + snapshot=None, ) + visit = self.storage.origin_visit_add([visit])[0] except Exception as e: logger.exception("Failed to initialize origin_visit for %s", self.url) sentry_sdk.capture_exception(e) diff --git a/swh/loader/package/tests/test_loader.py b/swh/loader/package/tests/test_loader.py --- a/swh/loader/package/tests/test_loader.py +++ b/swh/loader/package/tests/test_loader.py @@ -1,4 +1,4 @@ -# Copyright (C) 2019 The Software Heritage developers +# Copyright (C) 2019-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information @@ -15,7 +15,7 @@ def origin_add_one(self, origin): return origin - def origin_visit_add(self, origin, date, type): + def origin_visit_add(self, visits): raise ValueError("We refuse to add an origin visit")