From 2e0d4c78ca6a2397e0cc19cca3b4df8c0a5ff1a5 Mon Sep 17 00:00:00 2001 From: Ruslan Date: Thu, 23 Jul 2026 11:13:17 +0000 Subject: [PATCH] refactor: merge duplicate pool status functions into _get_pool_status --- app/runtime.py | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/app/runtime.py b/app/runtime.py index 09fce29..3c39ec9 100644 --- a/app/runtime.py +++ b/app/runtime.py @@ -194,16 +194,15 @@ def ensure_web_pool(target_size: Optional[int] = None) -> None: break -def get_universal_pool_status() -> dict: - desired = max(0, UNIVERSAL_POOL_SIZE) +def _get_pool_status(desired_size: int, name_fn) -> dict: + desired = max(0, desired_size) if desired <= 0: return {"desired": 0, "running": 0, "total": 0, "health": "down", "names": []} d = docker_client() - names = [universal_container_name(i) for i in range(desired)] containers = [] - for name in names: + for i in range(desired): try: - containers.append(d.containers.get(name)) + containers.append(d.containers.get(name_fn(i))) except Exception: continue 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: - desired = max(0, WEB_POOL_SIZE) - 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, - } + return _get_pool_status(WEB_POOL_SIZE, web_pool_container_name) def acquire_universal_slot(db: Session) -> int: