Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/cassandra/cql.py
Show All 37 Lines | from swh.model.model import ( | ||||
Person, | Person, | ||||
Content, | Content, | ||||
SkippedContent, | SkippedContent, | ||||
OriginVisit, | OriginVisit, | ||||
OriginVisitStatus, | OriginVisitStatus, | ||||
Origin, | Origin, | ||||
) | ) | ||||
from swh.storage.interface import ListOrder | |||||
from .common import Row, TOKEN_BEGIN, TOKEN_END, hash_url | from .common import Row, TOKEN_BEGIN, TOKEN_END, hash_url | ||||
from .schema import CREATE_TABLES_QUERIES, HASH_ALGORITHMS | from .schema import CREATE_TABLES_QUERIES, HASH_ALGORITHMS | ||||
logger = logging.getLogger(__name__) | logger = logging.getLogger(__name__) | ||||
_execution_profiles = { | _execution_profiles = { | ||||
▲ Show 20 Lines • Show All 675 Lines • ▼ Show 20 Lines | class CqlRunner: | ||||
) -> ResultSet: | ) -> ResultSet: | ||||
return self._execute_with_retries(statement, [origin_url, limit]) | return self._execute_with_retries(statement, [origin_url, limit]) | ||||
def origin_visit_get( | def origin_visit_get( | ||||
self, | self, | ||||
origin_url: str, | origin_url: str, | ||||
last_visit: Optional[int], | last_visit: Optional[int], | ||||
limit: Optional[int], | limit: Optional[int], | ||||
order: str = "asc", | order: ListOrder, | ||||
) -> ResultSet: | ) -> ResultSet: | ||||
order = order.lower() | |||||
assert order in ["asc", "desc"] | |||||
args: List[Any] = [origin_url] | args: List[Any] = [origin_url] | ||||
if last_visit is not None: | if last_visit is not None: | ||||
page_name = "pagination" | page_name = "pagination" | ||||
args.append(last_visit) | args.append(last_visit) | ||||
else: | else: | ||||
page_name = "no_pagination" | page_name = "no_pagination" | ||||
if limit is not None: | if limit is not None: | ||||
limit_name = "limit" | limit_name = "limit" | ||||
args.append(limit) | args.append(limit) | ||||
else: | else: | ||||
limit_name = "no_limit" | limit_name = "no_limit" | ||||
method_name = f"_origin_visit_get_{page_name}_{order}_{limit_name}" | method_name = f"_origin_visit_get_{page_name}_{order.value}_{limit_name}" | ||||
origin_visit_get_method = getattr(self, method_name) | origin_visit_get_method = getattr(self, method_name) | ||||
return origin_visit_get_method(*args) | return origin_visit_get_method(*args) | ||||
@_prepared_insert_statement("origin_visit", _origin_visit_keys) | @_prepared_insert_statement("origin_visit", _origin_visit_keys) | ||||
def origin_visit_add_one(self, visit: OriginVisit, *, statement) -> None: | def origin_visit_add_one(self, visit: OriginVisit, *, statement) -> None: | ||||
self._add_one(statement, "origin_visit", visit, self._origin_visit_keys) | self._add_one(statement, "origin_visit", visit, self._origin_visit_keys) | ||||
_origin_visit_status_keys = [ | _origin_visit_status_keys = [ | ||||
▲ Show 20 Lines • Show All 213 Lines • Show Last 20 Lines |