core: add orchestration and service definitions

This commit is contained in:
scawful
2025-12-30 13:36:53 -05:00
parent efc46027ff
commit f386327821
8 changed files with 638 additions and 0 deletions

28
tests/test_services.py Normal file
View File

@@ -0,0 +1,28 @@
from __future__ import annotations
from afs.schema import AFSConfig, ServiceConfig, ServicesConfig
from afs.services.manager import ServiceManager
def test_service_manager_lists_builtins() -> None:
manager = ServiceManager(config=AFSConfig(), platform_name="linux")
names = [definition.name for definition in manager.list_definitions()]
assert "orchestrator" in names
def test_service_config_can_disable_service() -> None:
services = ServicesConfig(
enabled=True,
services={
"orchestrator": ServiceConfig(name="orchestrator", enabled=False),
},
)
manager = ServiceManager(config=AFSConfig(services=services), platform_name="linux")
names = [definition.name for definition in manager.list_definitions()]
assert "orchestrator" not in names
def test_service_render_contains_execstart() -> None:
manager = ServiceManager(config=AFSConfig(), platform_name="linux")
unit = manager.render_unit("orchestrator")
assert "ExecStart=" in unit