Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/cassandra/storage.py
Show First 20 Lines • Show All 537 Lines • ▼ Show 20 Lines | class CassandraStorage: | ||||
def release_get_random(self): | def release_get_random(self): | ||||
return self._cql_runner.release_get_random().id | return self._cql_runner.release_get_random().id | ||||
def snapshot_add(self, snapshots: Iterable[Snapshot]) -> Dict: | def snapshot_add(self, snapshots: Iterable[Snapshot]) -> Dict: | ||||
missing = self._cql_runner.snapshot_missing([snp.id for snp in snapshots]) | missing = self._cql_runner.snapshot_missing([snp.id for snp in snapshots]) | ||||
snapshots = [snp for snp in snapshots if snp.id in missing] | snapshots = [snp for snp in snapshots if snp.id in missing] | ||||
for snapshot in snapshots: | for snapshot in snapshots: | ||||
self.journal_writer.snapshot_add(snapshot) | self.journal_writer.snapshot_add([snapshot]) | ||||
# Add branches | # Add branches | ||||
for (branch_name, branch) in snapshot.branches.items(): | for (branch_name, branch) in snapshot.branches.items(): | ||||
if branch is None: | if branch is None: | ||||
target_type = None | target_type = None | ||||
target = None | target = None | ||||
else: | else: | ||||
target_type = branch.target_type.value | target_type = branch.target_type.value | ||||
▲ Show 20 Lines • Show All 227 Lines • ▼ Show 20 Lines | def origin_add(self, origins: Iterable[Origin]) -> List[Dict]: | ||||
return results | return results | ||||
def origin_add_one(self, origin: Origin) -> str: | def origin_add_one(self, origin: Origin) -> str: | ||||
known_origin = self.origin_get_one(origin.to_dict()) | known_origin = self.origin_get_one(origin.to_dict()) | ||||
if known_origin: | if known_origin: | ||||
origin_url = known_origin["url"] | origin_url = known_origin["url"] | ||||
else: | else: | ||||
self.journal_writer.origin_add_one(origin) | self.journal_writer.origin_add([origin]) | ||||
self._cql_runner.origin_add_one(origin) | self._cql_runner.origin_add_one(origin) | ||||
origin_url = origin.url | origin_url = origin.url | ||||
return origin_url | return origin_url | ||||
def origin_visit_add( | def origin_visit_add( | ||||
self, origin_url: str, date: Union[str, datetime.datetime], type: str | self, origin_url: str, date: Union[str, datetime.datetime], type: str | ||||
Show All 17 Lines | ) -> OriginVisit: | ||||
"type": type, | "type": type, | ||||
"status": visit_state, | "status": visit_state, | ||||
"snapshot": None, | "snapshot": None, | ||||
"metadata": None, | "metadata": None, | ||||
"visit": visit_id, | "visit": visit_id, | ||||
} | } | ||||
) | ) | ||||
self.journal_writer.origin_visit_add(visit) | self.journal_writer.origin_visit_add([visit]) | ||||
self._cql_runner.origin_visit_add_one(visit) | self._cql_runner.origin_visit_add_one(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=visit_state, | status=visit_state, | ||||
Show All 30 Lines | ): | ||||
if metadata and metadata != visit.metadata: | if metadata and metadata != visit.metadata: | ||||
updates["metadata"] = metadata | updates["metadata"] = metadata | ||||
if snapshot and snapshot != visit.snapshot: | if snapshot and snapshot != visit.snapshot: | ||||
updates["snapshot"] = snapshot | updates["snapshot"] = snapshot | ||||
with convert_validation_exceptions(): | with convert_validation_exceptions(): | ||||
visit = attr.evolve(visit, **updates) | visit = attr.evolve(visit, **updates) | ||||
self.journal_writer.origin_visit_update(visit) | self.journal_writer.origin_visit_update([visit]) | ||||
last_visit_update = self._origin_visit_get_updated(visit.origin, visit.visit) | last_visit_update = self._origin_visit_get_updated(visit.origin, visit.visit) | ||||
assert last_visit_update is not None | assert last_visit_update is not None | ||||
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, | ||||
▲ Show 20 Lines • Show All 237 Lines • Show Last 20 Lines |