refactor: merge duplicate pool status functions into _get_pool_status

This commit is contained in:
2026-07-23 11:13:17 +00:00
parent 1e6eadeed2
commit 2e0d4c78ca
+9 -25
View File
@@ -194,16 +194,15 @@ def ensure_web_pool(target_size: Optional[int] = None) -> None:
break break
def get_universal_pool_status() -> dict: def _get_pool_status(desired_size: int, name_fn) -> dict:
desired = max(0, UNIVERSAL_POOL_SIZE) desired = max(0, desired_size)
if desired <= 0: if desired <= 0:
return {"desired": 0, "running": 0, "total": 0, "health": "down", "names": []} return {"desired": 0, "running": 0, "total": 0, "health": "down", "names": []}
d = docker_client() d = docker_client()
names = [universal_container_name(i) for i in range(desired)]
containers = [] containers = []
for name in names: for i in range(desired):
try: try:
containers.append(d.containers.get(name)) containers.append(d.containers.get(name_fn(i)))
except Exception: except Exception:
continue continue
running = sum(1 for c in containers if c.status == "running") running = sum(1 for c in containers if c.status == "running")
@@ -217,27 +216,12 @@ def get_universal_pool_status() -> dict:
} }
def get_universal_pool_status() -> dict:
return _get_pool_status(UNIVERSAL_POOL_SIZE, universal_container_name)
def get_web_pool_status() -> dict: def get_web_pool_status() -> dict:
desired = max(0, WEB_POOL_SIZE) return _get_pool_status(WEB_POOL_SIZE, web_pool_container_name)
if desired <= 0:
return {"desired": 0, "running": 0, "total": 0, "health": "down", "names": []}
d = docker_client()
names = [web_pool_container_name(i) for i in range(desired)]
containers = []
for name in names:
try:
containers.append(d.containers.get(name))
except Exception:
continue
running = sum(1 for c in containers if c.status == "running")
health = "ok" if running >= min(desired, 1) else "down"
return {
"desired": desired,
"running": running,
"total": len(containers),
"names": sorted(c.name for c in containers),
"health": health,
}
def acquire_universal_slot(db: Session) -> int: def acquire_universal_slot(db: Session) -> int: