refactor: merge duplicate pool status functions into _get_pool_status
This commit is contained in:
+9
-25
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user