Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/storage.py
Show First 20 Lines • Show All 853 Lines • ▼ Show 20 Lines | ) -> OriginVisit: | ||||
"type": type, | "type": type, | ||||
"visit": visit_id, | "visit": visit_id, | ||||
# TODO: Remove when we remove those fields from the model | # TODO: Remove when we remove those fields from the model | ||||
"status": status, | "status": status, | ||||
"metadata": None, | "metadata": None, | ||||
"snapshot": None, | "snapshot": None, | ||||
} | } | ||||
) | ) | ||||
self.journal_writer.origin_visit_add([visit]) | |||||
with convert_validation_exceptions(): | with convert_validation_exceptions(): | ||||
visit_status = OriginVisitStatus( | visit_status = OriginVisitStatus( | ||||
origin=origin_url, | origin=origin_url, | ||||
visit=visit_id, | visit=visit_id, | ||||
date=date, | date=date, | ||||
status=status, | status=status, | ||||
snapshot=None, | snapshot=None, | ||||
metadata=None, | metadata=None, | ||||
) | ) | ||||
self._origin_visit_status_add(visit_status, db=db, cur=cur) | self._origin_visit_status_add(visit_status, db=db, cur=cur) | ||||
self.journal_writer.origin_visit_add([visit]) | |||||
send_metric("origin_visit:add", count=1, method_name="origin_visit") | send_metric("origin_visit:add", count=1, method_name="origin_visit") | ||||
return visit | return visit | ||||
def _origin_visit_status_add( | def _origin_visit_status_add( | ||||
self, origin_visit_status: OriginVisitStatus, db, cur | self, visit_status: OriginVisitStatus, db, cur | ||||
) -> None: | ) -> None: | ||||
"""Add an origin visit status""" | """Add an origin visit status""" | ||||
db.origin_visit_status_add(origin_visit_status, cur=cur) | self.journal_writer.origin_visit_status_add([visit_status]) | ||||
# TODO: write to the journal the origin visit status | db.origin_visit_status_add(visit_status, cur=cur) | ||||
send_metric( | send_metric( | ||||
"origin_visit_status:add", count=1, method_name="origin_visit_status" | "origin_visit_status:add", count=1, method_name="origin_visit_status" | ||||
) | ) | ||||
@timed | @timed | ||||
@db_transaction() | @db_transaction() | ||||
def origin_visit_status_add( | def origin_visit_status_add( | ||||
self, visit_statuses: Iterable[OriginVisitStatus], db=None, cur=None, | self, visit_statuses: Iterable[OriginVisitStatus], db=None, cur=None, | ||||
) -> None: | ) -> None: | ||||
# First round to check existence (fail early if any is ko) | # First round to check existence (fail early if any is ko) | ||||
for visit_status in visit_statuses: | for visit_status in visit_statuses: | ||||
origin_url = self.origin_get({"url": visit_status.origin}, db=db, cur=cur) | origin_url = self.origin_get({"url": visit_status.origin}, db=db, cur=cur) | ||||
if not origin_url: | if not origin_url: | ||||
raise StorageArgumentException(f"Unknown origin {visit_status.origin}") | raise StorageArgumentException(f"Unknown origin {visit_status.origin}") | ||||
self.journal_writer.origin_visit_status_add(visit_statuses) | |||||
for visit_status in visit_statuses: | for visit_status in visit_statuses: | ||||
self._origin_visit_status_add(visit_status, db, cur) | self._origin_visit_status_add(visit_status, db, cur) | ||||
@timed | @timed | ||||
@db_transaction() | @db_transaction() | ||||
def origin_visit_update( | def origin_visit_update( | ||||
self, | self, | ||||
origin: str, | origin: str, | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | ): | ||||
visit_status = OriginVisitStatus( | visit_status = OriginVisitStatus( | ||||
origin=origin_url, | origin=origin_url, | ||||
visit=visit_id, | visit=visit_id, | ||||
date=date or now(), | date=date or now(), | ||||
status=status, | status=status, | ||||
snapshot=snapshot or last_visit_status["snapshot"], | snapshot=snapshot or last_visit_status["snapshot"], | ||||
metadata=metadata or last_visit_status["metadata"], | metadata=metadata or last_visit_status["metadata"], | ||||
) | ) | ||||
self._origin_visit_status_add(visit_status, db=db, cur=cur) | db.origin_visit_status_add(visit_status, cur=cur) | ||||
send_metric( | |||||
"origin_visit_status:add", | |||||
count=1, | |||||
method_name="origin_visit_status", | |||||
) | |||||
# self._origin_visit_status_add(visit_status, db=db, cur=cur) | |||||
def _origin_visit_get_updated( | def _origin_visit_get_updated( | ||||
self, origin: str, visit_id: int, db, cur | self, origin: str, visit_id: int, db, cur | ||||
) -> Optional[Dict[str, Any]]: | ) -> Optional[Dict[str, Any]]: | ||||
"""Retrieve origin visit and latest origin visit status and merge them | """Retrieve origin visit and latest origin visit status and merge them | ||||
into an origin visit. | into an origin visit. | ||||
""" | """ | ||||
▲ Show 20 Lines • Show All 449 Lines • Show Last 20 Lines |