Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/in_memory.py
Show First 20 Lines • Show All 740 Lines • ▼ Show 20 Lines | def origin_visit_add(self, origin: Origin, | ||||
('origin_visit', None)) | ('origin_visit', None)) | ||||
self.journal_writer.origin_visit_add(visit) | self.journal_writer.origin_visit_add(visit) | ||||
# return last visit | # return last visit | ||||
return visit | return visit | ||||
def origin_visit_update( | def origin_visit_update( | ||||
self, origin: Origin, visit: OriginVisit, | self, visit: OriginVisit, | ||||
status: Optional[str] = None, metadata: Optional[Dict] = None, | status: Optional[str] = None, metadata: Optional[Dict] = None, | ||||
snapshot: Optional[bytes] = None) -> None: | snapshot: Optional[bytes] = None) -> None: | ||||
visit_id = visit.visit if visit.visit else -1 | visit_id = visit.visit if visit.visit else -1 | ||||
if visit_id == -1: | if visit_id == -1: | ||||
raise StorageArgumentException( | raise StorageArgumentException( | ||||
'origin visit %s for origin %s does not exist.', | 'origin visit %s for origin %s does not exist.', | ||||
visit.visit, origin.url) from None | visit.visit, visit.origin) from None | ||||
try: | try: | ||||
visit = self._origin_visits[origin.url][visit_id - 1] | visit = self._origin_visits[visit.origin][visit_id - 1] | ||||
except IndexError: | except IndexError: | ||||
raise StorageArgumentException( | raise StorageArgumentException( | ||||
'origin visit %s for origin %s does not exist.', | 'origin visit %s for origin %s does not exist.', | ||||
visit.visit, origin.url) from None | visit.visit, visit.origin) from None | ||||
updates: Dict[str, Any] = {} | updates: Dict[str, Any] = {} | ||||
if status: | if status: | ||||
updates['status'] = status | updates['status'] = status | ||||
if metadata: | if metadata: | ||||
updates['metadata'] = metadata | updates['metadata'] = metadata | ||||
if snapshot: | if snapshot: | ||||
updates['snapshot'] = snapshot | updates['snapshot'] = snapshot | ||||
try: | try: | ||||
visit = attr.evolve(visit, **updates) | visit = attr.evolve(visit, **updates) | ||||
except (KeyError, TypeError, ValueError) as e: | except (KeyError, TypeError, ValueError) as e: | ||||
raise StorageArgumentException(*e.args) | raise StorageArgumentException(*e.args) | ||||
self.journal_writer.origin_visit_update(visit) | self.journal_writer.origin_visit_update(visit) | ||||
self._origin_visits[origin.url][visit_id - 1] = visit | self._origin_visits[visit.origin][visit_id - 1] = visit | ||||
def origin_visit_upsert(self, visits: Iterable[OriginVisit]) -> None: | def origin_visit_upsert(self, visits: Iterable[OriginVisit]) -> None: | ||||
self.journal_writer.origin_visit_upsert(visits) | self.journal_writer.origin_visit_upsert(visits) | ||||
for visit in visits: | for visit in visits: | ||||
visit_id = visit.visit | visit_id = visit.visit | ||||
origin_url = visit.origin | origin_url = visit.origin | ||||
▲ Show 20 Lines • Show All 220 Lines • Show Last 20 Lines |