swh.storage.algos.snapshot module#
- swh.storage.algos.snapshot.snapshot_get_all_branches(storage: StorageInterface, snapshot_id: bytes, max_branches_per_page: int = 1000, target_types: List[str] | None = None, branch_name_include_substring: bytes | None = None, branch_name_exclude_prefix: bytes | None = None) Snapshot | None[source]#
Get all the branches for a given snapshot
- Parameters:
storage (swh.storage.interface.StorageInterface) – the storage instance
snapshot_id (bytes) – the snapshot’s identifier
max_branches_per_page – optional parameter used to restrain the amount of returned branches per page while iteratively fetching all branches
target_types – optional parameter used to filter the target types of branch to return (possible values that can be contained in that list are
content,directory,revision,release,snapshot,alias)branch_name_include_substring – if provided, only return branches whose name contains given substring
branch_name_exclude_prefix – if provided, do not return branches whose name contains given prefix
- Returns:
A snapshot objects populated with all known branches (possibly filtered) if the snapshot is found,
Noneotherwise.
- swh.storage.algos.snapshot.snapshot_get_latest(storage: StorageInterface, origin: str, allowed_statuses: List[str] | None = None, branches_count: int | None = None, visit_type: str | None = None) Snapshot | None[source]#
Get the latest snapshot for the given origin, optionally only from visits that have one of the given allowed_statuses.
The branches of the snapshot are iterated in the lexicographical order of their names.
- Parameters:
storage – Storage instance
origin – the origin’s URL
allowed_statuses – list of visit statuses considered to find the latest snapshot for the visit. For instance,
allowed_statuses=['full']will only consider visits that have successfully run to completion.branches_count – Optional parameter to retrieve snapshot with all branches (default behavior when None) or not. If set to positive number, the snapshot will be partial with only that number of branches.
visit_type – Optional parameter to retrieve snapshot produced by a specific visit type
- Raises:
ValueError if branches_count is not a positive value –
- Returns:
The snapshot object if one is found matching the criteria or None.
- swh.storage.algos.snapshot.snapshot_id_get_from_revision(storage: StorageInterface, origin: str, revision_id: bytes) bytes | None[source]#
Retrieve the most recent snapshot id targeting the revision_id for the given origin.
Warning This is a potentially highly costly operation
- Returns
The snapshot id if found. None otherwise.
- swh.storage.algos.snapshot.visits_and_snapshots_get_from_revision(storage: StorageInterface, origin: str, revision_id: bytes) Iterator[Tuple[OriginVisit, OriginVisitStatus, Snapshot]][source]#
Retrieve all visits, visit statuses, and matching snapshot of the given origin, such that the snapshot targets the revision_id.
Warning This is a potentially highly costly operation
- Yields:
Tuples of (visit, status, snapshot)
- swh.storage.algos.snapshot.snapshot_resolve_alias(storage: StorageInterface, snapshot_id: bytes, alias_name: bytes) SnapshotBranch | None[source]#
Transitively resolve snapshot branch alias to its real target, and return it; ie. follows every branch that is an alias, until a branch that isn’t an alias is found.
Warning This function is deprecated; use storage.snapshot_branch_get_by_name instead
- Parameters:
storage – Storage instance
snapshot_id – snapshot identifier
alias_name – name of the branch alias to resolve
- Returns:
The first branch that isn’t an alias, in the alias chain; or None if there is no such branch (ie. either because of a cycle alias, or a dangling branch).