feat: complete transfer and eviction execution
This commit is contained in:
@@ -80,6 +80,9 @@ class ConnectionConfig:
|
||||
@dataclass(frozen=True)
|
||||
class JobsConfig:
|
||||
stall_after: float = 30 * 60
|
||||
verification_timeout: float = 30 * 60
|
||||
poll_interval: float = 1
|
||||
free_space_reserve_bytes: int = 1024 * 1024 * 1024
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -217,8 +220,27 @@ def _connection(value: Any) -> ConnectionConfig:
|
||||
def _jobs(value: Any) -> JobsConfig:
|
||||
if not isinstance(value, dict):
|
||||
raise ConfigError("jobs must be a table")
|
||||
_keys(value, {"stall_after"}, "jobs")
|
||||
return JobsConfig(stall_after=_duration(value.get("stall_after", "30m")))
|
||||
_keys(
|
||||
value,
|
||||
{
|
||||
"stall_after",
|
||||
"verification_timeout",
|
||||
"poll_interval",
|
||||
"free_space_reserve_bytes",
|
||||
},
|
||||
"jobs",
|
||||
)
|
||||
return JobsConfig(
|
||||
stall_after=_duration(value.get("stall_after", "30m")),
|
||||
verification_timeout=_duration(
|
||||
value.get("verification_timeout", "30m")
|
||||
),
|
||||
poll_interval=_duration(value.get("poll_interval", "1s")),
|
||||
free_space_reserve_bytes=_positive_int(
|
||||
value.get("free_space_reserve_bytes", 1024 * 1024 * 1024),
|
||||
"jobs.free_space_reserve_bytes",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def _backup(value: Any) -> BackupConfig:
|
||||
|
||||
Reference in New Issue
Block a user