Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/cassandra/storage.py
Show First 20 Lines • Show All 1,008 Lines • ▼ Show 20 Lines | def origin_visit_add(self, visits: List[OriginVisit]) -> Iterable[OriginVisit]: | ||||
origin = self.origin_get_one(visit.origin) | origin = self.origin_get_one(visit.origin) | ||||
if not origin: # Cannot add a visit without an origin | if not origin: # Cannot add a visit without an origin | ||||
raise StorageArgumentException("Unknown origin %s", visit.origin) | raise StorageArgumentException("Unknown origin %s", visit.origin) | ||||
all_visits = [] | all_visits = [] | ||||
nb_visits = 0 | nb_visits = 0 | ||||
for visit in visits: | for visit in visits: | ||||
nb_visits += 1 | nb_visits += 1 | ||||
if not visit.visit: | if visit.visit: | ||||
# Set origin.next_visit_id = max(origin.next_visit_id, visit.visit+1) | |||||
# so the next loader run does not reuse the id. | |||||
self._cql_runner.origin_bump_next_visit_id(visit.origin, visit.visit) | |||||
else: | |||||
visit_id = self._cql_runner.origin_generate_unique_visit_id( | visit_id = self._cql_runner.origin_generate_unique_visit_id( | ||||
visit.origin | visit.origin | ||||
) | ) | ||||
visit = attr.evolve(visit, visit=visit_id) | visit = attr.evolve(visit, visit=visit_id) | ||||
self.journal_writer.origin_visit_add([visit]) | self.journal_writer.origin_visit_add([visit]) | ||||
self._cql_runner.origin_visit_add_one(OriginVisitRow(**visit.to_dict())) | self._cql_runner.origin_visit_add_one(OriginVisitRow(**visit.to_dict())) | ||||
assert visit.visit is not None | assert visit.visit is not None | ||||
all_visits.append(visit) | all_visits.append(visit) | ||||
▲ Show 20 Lines • Show All 526 Lines • Show Last 20 Lines |