fester/backend/api/build_spec.py

35 lines
827 B
Python

from dataclasses import dataclass
@dataclass
class BuildSpec:
project: str
arch: str
distro_target: str
toolchain: str
# -----------------------------
# EXECUTION SELECTION
# -----------------------------
execution: str # distcc | lxc | libvirt | tmux
container_backend: str # optional fallback layer
# -----------------------------
# POLICY PROFILE
# -----------------------------
profile: str = "balanced"
def from_request(req):
return BuildSpec(
project=req["project"],
arch=req["arch"],
distro_target=req["distro_target"],
toolchain=req["toolchain"],
execution=req.get("execution", "distcc"),
container_backend=req.get("container_backend", "lxc"),
profile=req.get("profile", "balanced")
)