fix syntax error and it pass the test case

This commit is contained in:
Rainy21
2026-04-28 14:59:12 -04:00
parent 71a9858ddd
commit b59bc0749f
12 changed files with 608 additions and 61 deletions
+3 -26
View File
@@ -1,31 +1,8 @@
from fastapi import APIRouter
from app.k8s_client import get_core_client
from app.k8s_client import fetch_nodes
router = APIRouter(prefix="/nodes", tags=["nodes"])
@router.get("/")
def list_node():
v1 = get_core_client()
nodes = v1.list_node().items
result = []
for n in nodes:
conditions = {c.type: c.status for c in n.status.conditions}
result.append(
{
"name": n.metadata.name,
"ready": conditions.get("Ready") == "True",
"cpu_capacity": n.status.capacity.get("cpu"),
"memory_capacity": n.status.capacity.get("memory"),
"labels": n.metadata.labels,
"age_days": _age(n.metadata.creation_timestamp),
}
)
return result
def _age(ts) -> int:
from datetime import datetime, timezone
now = datetime.now(timezone.utc)
return (now - ts).days
def list_nodes():
return fetch_nodes()
+4 -27
View File
@@ -1,31 +1,8 @@
from fastapi import APIRouter, Query
from k8s_client import get_core_client
from app.k8s_client import fetch_pods
router = APIRouter(prefix="/pods", tags=["pods"])
router = APIRouter(prefix="/pods", tags=["pods"])
@router.get("/")
def list_pods(namespace: str = Query("default")):
v1 = get_core_client()
pods = v1.list_namespaced_pod(namespace=namespace).items
return [
{
"name": p.metadata.name,
"namespace": p.metadata.namespace,
"phase": p.status.phase, # Pending/Running/Succeeded/Failed
"ready": _is_ready(p),
"restarts": _restarts(p),
"node": p.spec.node_name,
}
for p in pods
]
def _is_ready(pod) -> bool :
if not pod.status.conditions:
return False
for any(c.type == "Ready" and c.status == "True" for c in pod.status.conditions)
def _restarts(pod) -> int:
if not pod.status.container_statuses:
return 0
return sum(c.restart_count for c in pod.status.container_statuses)
def list_pods(namespace: str = Query("all")):
return fetch_pods(namespace=namespace)