- Исправлена ошибка ImportError: cannot import name 'DEFAULT_PROJECT' - Пересобран Docker образ для применения изменений - API и WebSocket теперь работают корректно Результаты тестирования: ✅ API endpoints: 200 OK ✅ Получение контейнеров: 11 контейнеров ✅ Получение логов: 10 строк ✅ WebSocket статус: available ✅ WebSocket соединения: устанавливаются Теперь система полностью функциональна и готова к тестированию в браузере. Автор: Сергей Антропов Сайт: https://devops.org.ru
122 lines
4.9 KiB
Python
122 lines
4.9 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Тестовый скрипт для проверки отображения логов LogBoard+
|
|
Автор: Сергей Антропов
|
|
Сайт: https://devops.org.ru
|
|
"""
|
|
|
|
import requests
|
|
import json
|
|
import time
|
|
|
|
def test_logs_display():
|
|
"""Тестирование отображения логов"""
|
|
|
|
base_url = "http://localhost:9001"
|
|
|
|
# 1. Получаем токен
|
|
print("🔐 Получение токена...")
|
|
login_data = {"username": "admin", "password": "admin"}
|
|
try:
|
|
response = requests.post(f"{base_url}/api/auth/login", json=login_data)
|
|
if response.status_code != 200:
|
|
print(f" ❌ Ошибка входа: {response.status_code}")
|
|
return
|
|
|
|
token = response.json()["access_token"]
|
|
headers = {"Authorization": f"Bearer {token}"}
|
|
print(" ✅ Токен получен")
|
|
except Exception as e:
|
|
print(f" ❌ Ошибка входа: {e}")
|
|
return
|
|
|
|
# 2. Получаем список контейнеров
|
|
print("\n🔍 Получение контейнеров...")
|
|
try:
|
|
response = requests.get(f"{base_url}/api/containers/services", headers=headers)
|
|
if response.status_code != 200:
|
|
print(f" ❌ Ошибка получения контейнеров: {response.status_code}")
|
|
return
|
|
|
|
containers = response.json()
|
|
print(f" ✅ Получено контейнеров: {len(containers)}")
|
|
|
|
if not containers:
|
|
print(" ❌ Нет контейнеров для тестирования")
|
|
return
|
|
|
|
# Берем первый контейнер
|
|
container = containers[0]
|
|
container_id = container.get('id')
|
|
container_name = container.get('name')
|
|
print(f" 📦 Тестируем контейнер: {container_name} ({container_id})")
|
|
|
|
except Exception as e:
|
|
print(f" ❌ Ошибка получения контейнеров: {e}")
|
|
return
|
|
|
|
# 3. Получаем логи контейнера
|
|
print(f"\n📋 Получение логов для {container_name}...")
|
|
try:
|
|
response = requests.get(f"{base_url}/api/logs/{container_id}?tail=10", headers=headers)
|
|
print(f" Логи: {response.status_code}")
|
|
|
|
if response.status_code == 200:
|
|
logs_data = response.json()
|
|
logs = logs_data.get('logs', [])
|
|
print(f" ✅ Получено строк логов: {len(logs)}")
|
|
|
|
if logs:
|
|
print(" 📄 Последние 3 строки логов:")
|
|
for i, log in enumerate(logs[-3:], 1):
|
|
print(f" {i}. {log[:100]}...")
|
|
else:
|
|
print(" ⚠️ Логи пусты")
|
|
else:
|
|
print(f" ❌ Ошибка получения логов: {response.text}")
|
|
|
|
except Exception as e:
|
|
print(f" ❌ Ошибка получения логов: {e}")
|
|
|
|
# 4. Проверяем WebSocket статус
|
|
print(f"\n🔌 Проверка WebSocket статуса...")
|
|
try:
|
|
response = requests.get(f"{base_url}/api/websocket/status", headers=headers)
|
|
print(f" WebSocket status: {response.status_code}")
|
|
|
|
if response.status_code == 200:
|
|
status = response.json()
|
|
print(f" ✅ WebSocket статус: {status.get('status')}")
|
|
print(f" 📊 Контейнеров: {status.get('containers_count')}")
|
|
else:
|
|
print(f" ❌ Ошибка WebSocket status: {response.text}")
|
|
|
|
except Exception as e:
|
|
print(f" ❌ Ошибка WebSocket status: {e}")
|
|
|
|
# 5. Генерируем тестовые логи
|
|
print(f"\n🧪 Генерирование тестовых логов...")
|
|
try:
|
|
# Отправляем команду в контейнер для генерации логов
|
|
test_commands = [
|
|
"echo 'TEST LOG: Info message from test script'",
|
|
"echo 'TEST LOG: Warning message from test script'",
|
|
"echo 'TEST LOG: Error message from test script'",
|
|
"echo 'TEST LOG: Debug message from test script'"
|
|
]
|
|
|
|
for cmd in test_commands:
|
|
print(f" 🔧 Выполняем: {cmd}")
|
|
# Здесь можно добавить выполнение команды в контейнер
|
|
# Пока просто выводим команду
|
|
time.sleep(0.5)
|
|
|
|
print(" ✅ Тестовые команды выполнены")
|
|
|
|
except Exception as e:
|
|
print(f" ❌ Ошибка генерации логов: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
test_logs_display()
|