refactor(api): move /test-hybrid into app_system router
This commit is contained in:
+1
-27
@@ -1,4 +1,3 @@
|
|||||||
import os
|
|
||||||
import subprocess
|
import subprocess
|
||||||
from app_images import init_images_router
|
from app_images import init_images_router
|
||||||
from app_files import init_files_router
|
from app_files import init_files_router
|
||||||
@@ -9,7 +8,6 @@ from app_system import init_system_router
|
|||||||
from fastapi import FastAPI, HTTPException
|
from fastapi import FastAPI, HTTPException
|
||||||
import requests_unixsocket
|
import requests_unixsocket
|
||||||
from common import (
|
from common import (
|
||||||
_podman_get_json as _common_podman_get_json,
|
|
||||||
_systemctl as _common_systemctl,
|
_systemctl as _common_systemctl,
|
||||||
)
|
)
|
||||||
import uvicorn
|
import uvicorn
|
||||||
@@ -32,7 +30,7 @@ def _run_systemctl_action(action: str, unit: str):
|
|||||||
|
|
||||||
# --- ROUTERS ---
|
# --- ROUTERS ---
|
||||||
# Images API lives in dedicated modules to keep this file from growing further.
|
# Images API lives in dedicated modules to keep this file from growing further.
|
||||||
app.include_router(init_system_router(SESSION, PODMAN_API_BASE))
|
app.include_router(init_system_router(SESSION, PODMAN_API_BASE, WORKLOADS_DIR))
|
||||||
app.include_router(init_images_router(SESSION, PODMAN_API_BASE))
|
app.include_router(init_images_router(SESSION, PODMAN_API_BASE))
|
||||||
app.include_router(init_files_router(SESSION, PODMAN_API_BASE, WORKLOADS_DIR))
|
app.include_router(init_files_router(SESSION, PODMAN_API_BASE, WORKLOADS_DIR))
|
||||||
app.include_router(init_networks_router(SESSION, PODMAN_API_BASE))
|
app.include_router(init_networks_router(SESSION, PODMAN_API_BASE))
|
||||||
@@ -50,30 +48,6 @@ app.include_router(init_pods_router(
|
|||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
@app.get("/test-hybrid")
|
|
||||||
def test_hybrid():
|
|
||||||
# 1. Check filesystem
|
|
||||||
try:
|
|
||||||
bestanden = []
|
|
||||||
for root, _, files in os.walk(WORKLOADS_DIR):
|
|
||||||
for f in files:
|
|
||||||
bestanden.append(os.path.join(root, f))
|
|
||||||
except Exception as e:
|
|
||||||
bestanden = f"FS Fout: {str(e)}"
|
|
||||||
|
|
||||||
# 2. Check Podman API
|
|
||||||
try:
|
|
||||||
api_containers = _common_podman_get_json(SESSION, f"{PODMAN_API_BASE}/libpod/containers/json?all=true")
|
|
||||||
except Exception as e:
|
|
||||||
api_containers = f"API Fout: {str(e)}"
|
|
||||||
|
|
||||||
return {
|
|
||||||
"bestanden_gevonden": bestanden if isinstance(bestanden, list) else [],
|
|
||||||
"api_containers_aantal": len(api_containers) if isinstance(api_containers, list) else -1,
|
|
||||||
"api_raw_sample": api_containers[0] if isinstance(api_containers, list) and api_containers else api_containers,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@app.post("/daemon-reload")
|
@app.post("/daemon-reload")
|
||||||
def api_daemon_reload():
|
def api_daemon_reload():
|
||||||
try:
|
try:
|
||||||
|
|||||||
+26
-1
@@ -1,9 +1,11 @@
|
|||||||
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
|
from common import _podman_get_json as _common_podman_get_json
|
||||||
|
|
||||||
|
|
||||||
def init_system_router(session, podman_api_base: str) -> APIRouter:
|
def init_system_router(session, podman_api_base: str, workloads_dir: str) -> APIRouter:
|
||||||
router = APIRouter(tags=["system"])
|
router = APIRouter(tags=["system"])
|
||||||
|
|
||||||
@router.get("/health")
|
@router.get("/health")
|
||||||
@@ -40,4 +42,27 @@ def init_system_router(session, podman_api_base: str) -> APIRouter:
|
|||||||
"systemd_user": {"reachable": systemd_reachable},
|
"systemd_user": {"reachable": systemd_reachable},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@router.get("/test-hybrid")
|
||||||
|
def test_hybrid():
|
||||||
|
# 1. Check filesystem
|
||||||
|
try:
|
||||||
|
bestanden = []
|
||||||
|
for root, _, files in os.walk(workloads_dir):
|
||||||
|
for f in files:
|
||||||
|
bestanden.append(os.path.join(root, f))
|
||||||
|
except Exception as e:
|
||||||
|
bestanden = f"FS Fout: {str(e)}"
|
||||||
|
|
||||||
|
# 2. Check Podman API
|
||||||
|
try:
|
||||||
|
api_containers = _common_podman_get_json(session, f"{podman_api_base}/libpod/containers/json?all=true")
|
||||||
|
except Exception as e:
|
||||||
|
api_containers = f"API Fout: {str(e)}"
|
||||||
|
|
||||||
|
return {
|
||||||
|
"bestanden_gevonden": bestanden if isinstance(bestanden, list) else [],
|
||||||
|
"api_containers_aantal": len(api_containers) if isinstance(api_containers, list) else -1,
|
||||||
|
"api_raw_sample": api_containers[0] if isinstance(api_containers, list) and api_containers else api_containers,
|
||||||
|
}
|
||||||
|
|
||||||
return router
|
return router
|
||||||
|
|||||||
@@ -83,6 +83,10 @@ header{
|
|||||||
box-shadow: var(--shadow);
|
box-shadow: var(--shadow);
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
}
|
}
|
||||||
|
/* Allow container actions dropdown to render outside the card bounds */
|
||||||
|
.card--menu-overflow{
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
.card.half{min-height: 240px;}
|
.card.half{min-height: 240px;}
|
||||||
.cardHeader{
|
.cardHeader{
|
||||||
display:flex; align-items:center; justify-content:space-between;
|
display:flex; align-items:center; justify-content:space-between;
|
||||||
|
|||||||
@@ -85,7 +85,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="view-containers" class="grid" style="display:none">
|
<div id="view-containers" class="grid" style="display:none">
|
||||||
<div class="card" style="grid-column: 1 / -1;">
|
<div class="card card--menu-overflow" style="grid-column: 1 / -1;">
|
||||||
<div class="cardHeader">
|
<div class="cardHeader">
|
||||||
<div class="cardTitle">Containers</div>
|
<div class="cardTitle">Containers</div>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
|
|||||||
Reference in New Issue
Block a user