Source code for ralph.recovery.recovery_controller_options
"""Options dataclass for RecoveryController construction."""
from __future__ import annotations
from dataclasses import dataclass
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from ralph.policy.models import PolicyBundle
from ralph.recovery.agent_budget_registry import AgentBudgetRegistry
from ralph.recovery.events import FailureEventBus
from ralph.recovery.failure_classifier import FailureClassifier
[docs]
@dataclass(frozen=True)
class RecoveryControllerOptions:
"""Options for constructing a RecoveryController."""
cycle_cap: int = 200
classifier: FailureClassifier | None = None
event_bus: FailureEventBus | None = None
budget_registry: AgentBudgetRegistry | None = None
policy_bundle: PolicyBundle | None = None
backoff_attempts: dict[str, int] | None = None
technical_retry_cap: int = 10