refactor(api): remove DI callables, routers import common directly
This commit is contained in:
+15
-16
@@ -4,6 +4,13 @@ import json
|
||||
|
||||
from fastapi import APIRouter
|
||||
from fastapi.responses import StreamingResponse
|
||||
from common import (
|
||||
_map_pod_to_unit,
|
||||
_podman_action_post,
|
||||
_podman_get_json,
|
||||
_podman_get_text,
|
||||
_systemd_then_podman,
|
||||
)
|
||||
|
||||
|
||||
_SESSION = None
|
||||
@@ -97,15 +104,7 @@ def init_containers_router(
|
||||
session,
|
||||
podman_api_base: str,
|
||||
workloads_dir: str,
|
||||
podman_get_json,
|
||||
podman_get_text,
|
||||
podman_post,
|
||||
podman_action_post,
|
||||
podman_delete,
|
||||
systemctl_func,
|
||||
systemd_then_podman,
|
||||
map_pod_to_unit,
|
||||
build_pod_to_containers_map,
|
||||
) -> APIRouter:
|
||||
router = APIRouter(tags=["containers"])
|
||||
|
||||
@@ -203,7 +202,7 @@ def init_containers_router(
|
||||
return ok
|
||||
|
||||
# A) echte containers (runtime)
|
||||
real = podman_get_json(f"{podman_api_base}/libpod/containers/json?all=true")
|
||||
real = _podman_get_json(session, f"{podman_api_base}/libpod/containers/json?all=true")
|
||||
for c in real:
|
||||
_ensure_container_status_field(c)
|
||||
|
||||
@@ -231,7 +230,7 @@ def init_containers_router(
|
||||
else:
|
||||
# 2) Extra: zit container in een pod die via systemd (kube/quadlet) draait?
|
||||
podname = (c.get("PodName") or "").strip()
|
||||
pod_unit = map_pod_to_unit(podname) if podname else None
|
||||
pod_unit = _map_pod_to_unit(podname) if podname else None
|
||||
|
||||
if pod_unit and _unit_is_active(pod_unit):
|
||||
c["_dashboard_source"] = "systemd"
|
||||
@@ -260,16 +259,16 @@ def init_containers_router(
|
||||
def list_containers():
|
||||
# Ook hier ?all=true voor gestopte containers
|
||||
url = f"{podman_api_base}/libpod/containers/json?all=true"
|
||||
return podman_get_json(url)
|
||||
return _podman_get_json(session, url)
|
||||
|
||||
@router.get("/containers/inspect/{name}")
|
||||
def inspect_container(name: str):
|
||||
return podman_get_json(f"{podman_api_base}/libpod/containers/{name}/json")
|
||||
return _podman_get_json(session, f"{podman_api_base}/libpod/containers/{name}/json")
|
||||
|
||||
@router.get("/containers/logs/{name}")
|
||||
def get_container_logs(name: str):
|
||||
# We vragen de laatste 100 regels op (tail=100)
|
||||
txt = podman_get_text(f"{podman_api_base}/libpod/containers/{name}/logs?stdout=true&stderr=true&tail=100")
|
||||
txt = _podman_get_text(session, f"{podman_api_base}/libpod/containers/{name}/logs?stdout=true&stderr=true&tail=100")
|
||||
# Podman logs komen vaak met wat binaire metadata, we decoden dit als tekst
|
||||
return {"logs": txt}
|
||||
|
||||
@@ -322,7 +321,7 @@ def init_containers_router(
|
||||
def get_dashboard():
|
||||
# Legacy dashboard view (keep shape)
|
||||
try:
|
||||
api_containers = podman_get_json(f"{podman_api_base}/libpod/containers/json?all=true")
|
||||
api_containers = _podman_get_json(session, f"{podman_api_base}/libpod/containers/json?all=true")
|
||||
except:
|
||||
api_containers = []
|
||||
items = []
|
||||
@@ -357,7 +356,7 @@ def init_containers_router(
|
||||
return None
|
||||
|
||||
def _podman_call(systemd_res):
|
||||
res = podman_action_post("containers", name, action)
|
||||
res = _podman_action_post(session, podman_api_base, "containers", name, action)
|
||||
if res.status_code in (200, 204):
|
||||
return {"method": "podman", "name": name, "cmd": f"podman {action} {name}", "status_code": res.status_code}
|
||||
|
||||
@@ -383,6 +382,6 @@ def init_containers_router(
|
||||
|
||||
return {"method": "podman", "name": name, "cmd": f"podman {action} {name}", "status_code": res.status_code}
|
||||
|
||||
return systemd_then_podman(_systemd_call, _podman_call)
|
||||
return _systemd_then_podman(_systemd_call, _podman_call)
|
||||
|
||||
return router
|
||||
|
||||
Reference in New Issue
Block a user