- Implement UpdateService for image version checking and atomic updates - Add DockerComposeManager for centralized docker-compose management - Create 12 docker-compose references in /home/innotex/Docker - Add 13 new API endpoints (6 for images, 7 for compose management) - Add comprehensive documentation and examples
188 lines
6.2 KiB
Bash
188 lines
6.2 KiB
Bash
#!/bin/bash
|
|
|
|
# ============================================
|
|
# Script de vérification - Implémentation complète
|
|
# ============================================
|
|
|
|
echo "🔍 VÉRIFICATION - Système de Mise à Jour Docker"
|
|
echo "================================================"
|
|
echo ""
|
|
|
|
PROJECT_DIR="/home/innotex/Documents/Projet/innotexboard"
|
|
DOCKER_DIR="/home/innotex/Docker"
|
|
|
|
# Compteurs
|
|
TOTAL=0
|
|
FOUND=0
|
|
|
|
check_file() {
|
|
local file=$1
|
|
local description=$2
|
|
TOTAL=$((TOTAL + 1))
|
|
|
|
if [ -f "$file" ]; then
|
|
echo "✅ $description"
|
|
FOUND=$((FOUND + 1))
|
|
return 0
|
|
else
|
|
echo "❌ $description - MANQUANT"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
check_dir() {
|
|
local dir=$1
|
|
local description=$2
|
|
TOTAL=$((TOTAL + 1))
|
|
|
|
if [ -d "$dir" ]; then
|
|
echo "✅ $description"
|
|
FOUND=$((FOUND + 1))
|
|
return 0
|
|
else
|
|
echo "❌ $description - MANQUANT"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# ============================================
|
|
# 1. Vérifier les services Python
|
|
# ============================================
|
|
echo "📦 Services Python"
|
|
echo "==================="
|
|
check_file "$PROJECT_DIR/backend/app/services/update_service.py" "update_service.py (275 lignes)"
|
|
check_file "$PROJECT_DIR/backend/app/services/compose_manager.py" "compose_manager.py (185 lignes)"
|
|
echo ""
|
|
|
|
# ============================================
|
|
# 2. Vérifier les endpoints
|
|
# ============================================
|
|
echo "🔌 Endpoints API"
|
|
echo "================"
|
|
check_file "$PROJECT_DIR/backend/app/api/endpoints/docker.py" "docker.py (endpoints mis à jour)"
|
|
check_file "$PROJECT_DIR/backend/app/api/endpoints/compose.py" "compose.py (7 endpoints)"
|
|
check_file "$PROJECT_DIR/backend/app/api/routes.py" "routes.py (mis à jour)"
|
|
echo ""
|
|
|
|
# ============================================
|
|
# 3. Vérifier les docker-compose
|
|
# ============================================
|
|
echo "🐳 Docker Compose References"
|
|
echo "============================"
|
|
check_dir "$DOCKER_DIR" "/home/innotex/Docker"
|
|
|
|
COMPOSE_COUNT=$(find "$DOCKER_DIR" -name "docker-compose.*.yml" 2>/dev/null | wc -l)
|
|
echo " Nombre de docker-compose: $COMPOSE_COUNT/11"
|
|
|
|
check_file "$DOCKER_DIR/docker-compose.portainer.yml" " - Portainer"
|
|
check_file "$DOCKER_DIR/docker-compose.sonarr.yml" " - Sonarr"
|
|
check_file "$DOCKER_DIR/docker-compose.radarr.yml" " - Radarr"
|
|
check_file "$DOCKER_DIR/docker-compose.qbittorrent.yml" " - qBittorrent"
|
|
check_file "$DOCKER_DIR/docker-compose.jellyfin.yml" " - Jellyfin"
|
|
check_file "$DOCKER_DIR/docker-compose.plex.yml" " - Plex"
|
|
check_file "$DOCKER_DIR/docker-compose.nextcloud.yml" " - Nextcloud"
|
|
check_file "$DOCKER_DIR/docker-compose.nginx.yml" " - Nginx"
|
|
check_file "$DOCKER_DIR/docker-compose.pihole.yml" " - Pi-hole"
|
|
check_file "$DOCKER_DIR/docker-compose.homeassistant.yml" " - Home Assistant"
|
|
check_file "$DOCKER_DIR/docker-compose.watchtower.yml" " - Watchtower"
|
|
check_file "$DOCKER_DIR/docker-compose.monitoring.yml" " - Monitoring"
|
|
echo ""
|
|
|
|
# ============================================
|
|
# 4. Vérifier la documentation
|
|
# ============================================
|
|
echo "📚 Documentation"
|
|
echo "================"
|
|
check_file "$PROJECT_DIR/DOCKER_UPDATE_SYSTEM.md" "DOCKER_UPDATE_SYSTEM.md"
|
|
check_file "$PROJECT_DIR/DOCKER_UPDATES_COMPLETE.md" "DOCKER_UPDATES_COMPLETE.md"
|
|
check_file "$PROJECT_DIR/DOCKER_EXAMPLES.sh" "DOCKER_EXAMPLES.sh"
|
|
check_file "$PROJECT_DIR/IMPLEMENTATION_SUMMARY.txt" "IMPLEMENTATION_SUMMARY.txt"
|
|
check_file "$DOCKER_DIR/README.md" "/Docker/README.md"
|
|
check_file "$DOCKER_DIR/docker-compose-registry.json" "docker-compose-registry.json"
|
|
echo ""
|
|
|
|
# ============================================
|
|
# 5. Vérifier les tests
|
|
# ============================================
|
|
echo "🧪 Scripts de Test"
|
|
echo "=================="
|
|
check_file "$PROJECT_DIR/test_docker_updates.sh" "test_docker_updates.sh"
|
|
echo ""
|
|
|
|
# ============================================
|
|
# 6. Vérifier la syntaxe Python
|
|
# ============================================
|
|
echo "✔️ Vérification Syntaxe Python"
|
|
echo "================================"
|
|
|
|
python3 -m py_compile "$PROJECT_DIR/backend/app/services/update_service.py" 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ update_service.py - Syntaxe OK"
|
|
FOUND=$((FOUND + 1))
|
|
else
|
|
echo "❌ update_service.py - Erreur de syntaxe"
|
|
fi
|
|
TOTAL=$((TOTAL + 1))
|
|
|
|
python3 -m py_compile "$PROJECT_DIR/backend/app/services/compose_manager.py" 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ compose_manager.py - Syntaxe OK"
|
|
FOUND=$((FOUND + 1))
|
|
else
|
|
echo "❌ compose_manager.py - Erreur de syntaxe"
|
|
fi
|
|
TOTAL=$((TOTAL + 1))
|
|
|
|
python3 -m py_compile "$PROJECT_DIR/backend/app/api/endpoints/compose.py" 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ compose.py - Syntaxe OK"
|
|
FOUND=$((FOUND + 1))
|
|
else
|
|
echo "❌ compose.py - Erreur de syntaxe"
|
|
fi
|
|
TOTAL=$((TOTAL + 1))
|
|
|
|
echo ""
|
|
|
|
# ============================================
|
|
# 7. Statistiques
|
|
# ============================================
|
|
echo "📊 Statistiques"
|
|
echo "==============="
|
|
|
|
PYTHON_LINES=$(wc -l "$PROJECT_DIR"/backend/app/services/update_service.py "$PROJECT_DIR"/backend/app/services/compose_manager.py "$PROJECT_DIR"/backend/app/api/endpoints/compose.py 2>/dev/null | tail -1 | awk '{print $1}')
|
|
echo " Lignes de code Python: $PYTHON_LINES"
|
|
|
|
DOC_LINES=$(wc -l "$PROJECT_DIR"/DOCKER_UPDATE_SYSTEM.md "$PROJECT_DIR"/DOCKER_UPDATES_COMPLETE.md "$DOCKER_DIR"/README.md 2>/dev/null | tail -1 | awk '{print $1}')
|
|
echo " Lignes de documentation: $DOC_LINES"
|
|
|
|
TOTAL_FILES=$(find "$DOCKER_DIR" -type f 2>/dev/null | wc -l)
|
|
echo " Fichiers dans /home/innotex/Docker: $TOTAL_FILES"
|
|
|
|
echo ""
|
|
|
|
# ============================================
|
|
# 8. Résumé final
|
|
# ============================================
|
|
echo "📋 RÉSUMÉ FINAL"
|
|
echo "==============="
|
|
PERCENTAGE=$((FOUND * 100 / TOTAL))
|
|
|
|
echo "Items vérifiés: $FOUND/$TOTAL ($PERCENTAGE%)"
|
|
echo ""
|
|
|
|
if [ $PERCENTAGE -eq 100 ]; then
|
|
echo "✅ ✅ ✅ IMPLÉMENTATION COMPLÈTE ✅ ✅ ✅"
|
|
echo ""
|
|
echo "Tout est prêt pour:"
|
|
echo " ✓ Tester l'API"
|
|
echo " ✓ Mettre à jour les images"
|
|
echo " ✓ Gérer les docker-compose"
|
|
echo " ✓ Consulter la documentation"
|
|
exit 0
|
|
else
|
|
echo "⚠️ Implémentation incomplète"
|
|
echo "Il manque $((TOTAL - FOUND)) éléments"
|
|
exit 1
|
|
fi
|