mirror of
https://github.com/Rainyy21/k3s-health-dashboard.git
synced 2026-10-11 00:50:20 -04:00
fix syntax error and it pass the test case
This commit is contained in:
+3
-26
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user