Merge pull request #375 from langflow-ai/tui-service-status-parse-fix

tui service status parse fix
This commit is contained in:
Sebastián Estévez 2025-11-10 12:43:09 -05:00 committed by GitHub
commit fef5f36a10
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -85,16 +85,27 @@ class WelcomeScreen(Screen):
if result.returncode == 0: if result.returncode == 0:
import json import json
services = [] services = []
# Try parsing as a single JSON array first (podman format)
try:
parsed = json.loads(result.stdout.strip())
if isinstance(parsed, list):
services = parsed
else:
services = [parsed] if isinstance(parsed, dict) else []
except json.JSONDecodeError:
# Fallback: try parsing line-by-line (docker format)
for line in result.stdout.strip().split('\n'): for line in result.stdout.strip().split('\n'):
if line.strip(): if line.strip():
try: try:
service = json.loads(line) service = json.loads(line)
if isinstance(service, dict):
services.append(service) services.append(service)
except json.JSONDecodeError: except json.JSONDecodeError:
continue continue
# Check if any services are running # Check if any services are running
running_services = [s for s in services if s.get('State') == 'running'] running_services = [s for s in services if isinstance(s, dict) and s.get('State') == 'running']
self.services_running = len(running_services) > 0 self.services_running = len(running_services) > 0
else: else:
self.services_running = False self.services_running = False
@ -196,6 +207,8 @@ class WelcomeScreen(Screen):
s.name for s in services.values() if s.status == ServiceStatus.RUNNING s.name for s in services.values() if s.status == ServiceStatus.RUNNING
] ]
self.services_running = len(running_services) > 0 self.services_running = len(running_services) > 0
else:
self.services_running = False
# Check native service state # Check native service state
self.docling_running = self.docling_manager.is_running() self.docling_running = self.docling_manager.is_running()