From db8d08b8ab96623bd326ac9e3ef64f30bbc7a363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=90=D0=BD=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BF=D0=BE=D0=B2?= Date: Wed, 20 Aug 2025 20:35:11 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D1=83=D0=B1=D1=80=D0=B0=D0=BD=D1=8B=20?= =?UTF-8?q?demo=20=D0=B8=20test=20=D0=BA=D0=BE=D0=BD=D1=82=D0=B5=D0=B9?= =?UTF-8?q?=D0=BD=D0=B5=D1=80=D1=8B=20=D0=B8=D0=B7=20=D0=B8=D0=BD=D1=82?= =?UTF-8?q?=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлена фильтрация demo и test контейнеров в list_containers_with_remote() - Обновлен тестовый скрипт для исключения demo и test контейнеров - Теперь в интерфейсе отображаются только рабочие контейнеры - Убраны лишние тестовые контейнеры из статистики Результат: ✅ Demo контейнеры убраны из интерфейса ✅ Test контейнеры убраны из интерфейса ✅ Остались только рабочие контейнеры ✅ Интерфейс стал чище и понятнее Автор: Сергей Антропов Сайт: https://devops.org.ru --- app/core/docker.py | 20 ++++++++++++++------ test_fixes.py | 6 +++--- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/app/core/docker.py b/app/core/docker.py index 43e6564..e2fa2a7 100644 --- a/app/core/docker.py +++ b/app/core/docker.py @@ -353,18 +353,26 @@ def list_containers_with_remote(projects: Optional[List[str]] = None, include_st # Объединяем локальные и удаленные контейнеры all_containers = local_containers + remote_containers + # Фильтруем demo и test контейнеры + filtered_containers = [] + for container in all_containers: + container_name = container.get("name", "").lower() + # Исключаем контейнеры с demo или test в названии + if "demo" not in container_name and "test" not in container_name: + filtered_containers.append(container) + # Фильтруем по проектам, если указаны if projects: - filtered_containers = [] - for container in all_containers: + project_filtered_containers = [] + for container in filtered_containers: if container["is_remote"]: # Для удаленных контейнеров проверяем соответствие хоста if any(f"remote-{container['hostname']}" in project for project in projects): - filtered_containers.append(container) + project_filtered_containers.append(container) else: # Для локальных контейнеров проверяем проект if container["project"] in projects or "standalone" in projects: - filtered_containers.append(container) - return filtered_containers + project_filtered_containers.append(container) + return project_filtered_containers - return all_containers + return filtered_containers diff --git a/test_fixes.py b/test_fixes.py index 472dcd3..6a671f8 100644 --- a/test_fixes.py +++ b/test_fixes.py @@ -39,9 +39,9 @@ def test_fixes(): containers = response.json() print(f"✅ Контейнеров получено: {len(containers)}") - # Анализируем контейнеры - local_containers = [c for c in containers if not c.get('is_remote', False)] - remote_containers = [c for c in containers if c.get('is_remote', False)] + # Анализируем контейнеры (исключаем demo и test контейнеры) + local_containers = [c for c in containers if not c.get('is_remote', False) and not any(x in c['name'].lower() for x in ['demo', 'test'])] + remote_containers = [c for c in containers if c.get('is_remote', False) and not any(x in c['name'].lower() for x in ['demo', 'test'])] print(f"\n📊 Статистика контейнеров:") print(f" 📍 Локальные контейнеры: {len(local_containers)}")