Source code for swh.vault
# Copyright (C) 2018-2024 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU Affero General Public License version 3, or any later version
# See top-level LICENSE file for more information
from __future__ import annotations
import logging
from typing import TYPE_CHECKING, Any, Dict
if TYPE_CHECKING:
from .interface import VaultInterface
logger = logging.getLogger(__name__)
[docs]
def get_vault(cls: str, **kwargs) -> "VaultInterface":
"""
Get a vault object of class `vault_class` with arguments
`vault_args`.
Args:
cls: vault's class
kwargs: arguments to pass to the class' constructor
Returns:
an instance of VaultBackend
Raises:
ValueError if passed an unknown storage class.
"""
from swh.core.config import get_swh_backend_module
_, Vault = get_swh_backend_module("vault", cls)
assert Vault is not None
return Vault(**kwargs)
default_cfg = {
"default_interval": "1 day",
"min_interval": "1 day",
"max_interval": "1 day",
"backoff_factor": 1,
"max_queue_length": 10000,
}
[docs]
def register_tasks() -> Dict[str, Any]:
return {
"task_modules": [f"{__name__}.cooking_tasks"],
"task_types": {
"vault-cook-bundle": default_cfg,
"vault-batch-cook-bundle": default_cfg,
},
}