Refactor: Service-Extraktion aus deploy/admin/security_router (+ Install-Skripte aus main.py) — Enabler für #55-Tests #95
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Business-Logik aus den drei groessten Routern in Services extrahieren — Router werden duenn (HTTP/Validierung/Streaming-Rahmen), Logik wird testbar und wiederverwendbar.
Ist-Zustand
server/routers/deploy_router.py— 1.240 Zeilenserver/routers/admin_router.py— 1.190 Zeilen (Enrollment/OS-Detection lebte hier → #66-Bug-Klasse)server/routers/security_router.py— 1.151 Zeilen (Port-Dedup, CVE-Ecosystem-Mapping)server/main.py— 931 Zeilen inkl. Install-Skript-Generierung (gehoert nicht in den App-Bootstrap)services/kernel_cleanup.pyist das Vorbild: Logik im Service, Router ruft nur auf), ist aber unterbesetzt.Warum (OSS + #55)
An Router gekoppelte Logik ist kaum unit-testbar — genau deshalb hat #55 bis heute nur 1 Smoke-Test. Die in #55 priorisierten Test-Ziele leben fast alle in diesen Routern. Extraktion = Logik wird als reine Funktion testbar, Tests folgen fast gratis.
Extraktions-Kandidaten (konkret)
services/enrollment.py: OS-Detection-Kette (cache→ostype→live, os_override), Install-Dispatch, Enrollment-SSE-Schritte (aus admin_router).services/install_scripts.py:_make_install_script_rust+ Windows-Variante (ausmain.pyraus; main.py nur noch Bootstrap/Routing).services/port_scan.py:_dedup_ports, Persistenz-Aufbereitung (aus security_router).services/cve_scan.py: OS→Ecosystem-Mapper, skipped-Logik (aus security_router).services/bulk_updates.py: Bulk-/Self-Update-Orchestrierung, Version-Pfad-Logik (aus deploy_router).Vorgehen (kein Big-Bang!)
server/tests/(deckt die #55-Liste ab:_dedup_ports, Ecosystem-Mapping, notify-Gating, Version-Pfad ...).Akzeptanz
server/tests/deckt die extrahierten Funktionen ab (>= 10 echte Unit-Tests statt 1 Smoke).main.pyenthaelt keine Install-Skript-Generierung mehr.Bezug
#55 (Tests/CI — direkter Enabler), #56 (Haertung), Projekt-Struktur-Review 09.06.2026. Vorbild im Repo:
services/kernel_cleanup.py(#26).Branch
refactor/extract-router-services