Files
dj/integration-work/inspect_cleanup_workers.py
T
2026-11-13 11:46:25 +08:00

19 lines
1.4 KiB
Python

import json,subprocess,pathlib
names=['canvas-h3-prompt-normalizer-healthy-20261026','huobao-vdn-normalizer','comfyui-manju','comfyui','h3-caption-gpu3-canary-8a5f','huobao-comfy-gpu1']
for name in names:
p=subprocess.run(['docker','inspect',name],capture_output=True,text=True)
if p.returncode:print(json.dumps({'container':name,'exists':False}));continue
item=json.loads(p.stdout)[0]
print(json.dumps({'container':name,'workdir':item['Config']['WorkingDir'],'running':item['State']['Running'],'mounts':[{'source':m['Source'],'destination':m['Destination'],'rw':m['RW']} for m in item['Mounts']]}))
code='''import app,json,asyncio,httpx
async def main():
for p in app.providers().values():
async with httpx.AsyncClient(timeout=8) as c:
r=await c.get(p.base_url+'/queue',headers=app.provider_headers(p));r.raise_for_status();q=r.json()
print(json.dumps({'provider':p.id,'base':p.base_url,'running':len(q.get('queue_running',[])),'pending':len(q.get('queue_pending',[]))}))
asyncio.run(main())'''
p=subprocess.run(['docker','exec','canvas-h3-prompt-normalizer-healthy-20261026','python','-c',code],capture_output=True,text=True)
print(p.stdout)
if p.returncode:print('provider inventory failed; inspect locally on server')
print('services',subprocess.check_output(['systemctl','--user','is-system-running'],text=True).strip() if subprocess.run(['systemctl','--user','is-system-running'],capture_output=True).returncode==0 else 'user manager not running or degraded')