Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/cassandra/storage.py
Show First 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | |||||
from ..utils import remove_keys | from ..utils import remove_keys | ||||
from .common import TOKEN_BEGIN, TOKEN_END, hash_url | from .common import TOKEN_BEGIN, TOKEN_END, hash_url | ||||
from .cql import CqlRunner | from .cql import CqlRunner | ||||
from .model import ( | from .model import ( | ||||
ContentRow, | ContentRow, | ||||
DirectoryEntryRow, | DirectoryEntryRow, | ||||
DirectoryRow, | DirectoryRow, | ||||
ExtIDByTargetRow, | ExtIDByTargetRow, | ||||
ExtIDByTargetVersionRow, | |||||
ExtIDRow, | ExtIDRow, | ||||
MetadataAuthorityRow, | MetadataAuthorityRow, | ||||
MetadataFetcherRow, | MetadataFetcherRow, | ||||
OriginRow, | OriginRow, | ||||
OriginVisitRow, | OriginVisitRow, | ||||
OriginVisitStatusRow, | OriginVisitStatusRow, | ||||
RawExtrinsicMetadataByIdRow, | RawExtrinsicMetadataByIdRow, | ||||
RawExtrinsicMetadataRow, | RawExtrinsicMetadataRow, | ||||
▲ Show 20 Lines • Show All 1,541 Lines • ▼ Show 20 Lines | def extid_add(self, ids: List[ExtID]) -> Dict[str, int]: | ||||
target_type=target_type, | target_type=target_type, | ||||
target=target, | target=target, | ||||
) | ) | ||||
(token, insertion_finalizer) = self._cql_runner.extid_add_prepare(extidrow) | (token, insertion_finalizer) = self._cql_runner.extid_add_prepare(extidrow) | ||||
indexrow = ExtIDByTargetRow( | indexrow = ExtIDByTargetRow( | ||||
target_type=target_type, target=target, target_token=token, | target_type=target_type, target=target, target_token=token, | ||||
) | ) | ||||
self._cql_runner.extid_index_add_one(indexrow) | self._cql_runner.extid_index_add_one(indexrow) | ||||
index2row = ExtIDByTargetVersionRow( | |||||
target_type=target_type, | |||||
target=target, | |||||
extid_version=extid.extid_version, | |||||
target_token=token, | |||||
) | |||||
self._cql_runner.extid_index_version_add_one(index2row) | |||||
insertion_finalizer() | insertion_finalizer() | ||||
inserted += 1 | inserted += 1 | ||||
return {"extid:add": inserted} | return {"extid:add": inserted} | ||||
@timed | @timed | ||||
def extid_get_from_extid(self, id_type: str, ids: List[bytes]) -> List[ExtID]: | def extid_get_from_extid( | ||||
self, id_type: str, ids: List[bytes], version: Optional[int] = None | |||||
) -> List[ExtID]: | |||||
result: List[ExtID] = [] | result: List[ExtID] = [] | ||||
for extid in ids: | for extid in ids: | ||||
extidrows = list(self._cql_runner.extid_get_from_extid(id_type, extid)) | if version is not None: | ||||
extidrows = self._cql_runner.extid_get_from_extid_and_version( | |||||
id_type, extid, version | |||||
) | |||||
else: | |||||
extidrows = self._cql_runner.extid_get_from_extid(id_type, extid) | |||||
result.extend( | result.extend( | ||||
ExtID( | ExtID( | ||||
extid_type=extidrow.extid_type, | extid_type=extidrow.extid_type, | ||||
extid_version=extidrow.extid_version, | extid_version=extidrow.extid_version, | ||||
extid=extidrow.extid, | extid=extidrow.extid, | ||||
target=CoreSWHID( | target=CoreSWHID( | ||||
object_type=extidrow.target_type, object_id=extidrow.target, | object_type=extidrow.target_type, object_id=extidrow.target, | ||||
), | ), | ||||
) | ) | ||||
for extidrow in extidrows | for extidrow in extidrows | ||||
) | ) | ||||
return result | return result | ||||
@timed | @timed | ||||
def extid_get_from_target( | def extid_get_from_target( | ||||
self, target_type: SwhidObjectType, ids: List[Sha1Git] | self, | ||||
target_type: SwhidObjectType, | |||||
ids: List[Sha1Git], | |||||
version: Optional[int] = None, | |||||
) -> List[ExtID]: | ) -> List[ExtID]: | ||||
result: List[ExtID] = [] | result: List[ExtID] = [] | ||||
for target in ids: | for target in ids: | ||||
extidrows = list( | extidrows = self._cql_runner.extid_get_from_target( | ||||
self._cql_runner.extid_get_from_target(target_type.value, target) | target_type.value, target, version=version | ||||
) | ) | ||||
result.extend( | result.extend( | ||||
ExtID( | ExtID( | ||||
extid_type=extidrow.extid_type, | extid_type=extidrow.extid_type, | ||||
extid_version=extidrow.extid_version, | extid_version=extidrow.extid_version, | ||||
extid=extidrow.extid, | extid=extidrow.extid, | ||||
target=CoreSWHID( | target=CoreSWHID( | ||||
object_type=SwhidObjectType(extidrow.target_type), | object_type=SwhidObjectType(extidrow.target_type), | ||||
object_id=extidrow.target, | object_id=extidrow.target, | ||||
Show All 15 Lines |