- 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
87 lines
2.6 KiB
Bash
87 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
# Script de test pour le système de mise à jour Docker
|
|
# Inspiré de TrueNAS Scale
|
|
|
|
set -e
|
|
|
|
# Couleurs
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Configuration
|
|
API_URL="http://localhost:8000/api/v1"
|
|
TOKEN=${AUTH_TOKEN:-"your-token-here"}
|
|
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo -e "${BLUE}Docker Update System - Test Suite${NC}"
|
|
echo -e "${BLUE}Inspiré de TrueNAS Scale${NC}"
|
|
echo -e "${BLUE}========================================${NC}\n"
|
|
|
|
# Fonction pour tester une API
|
|
test_api() {
|
|
local method=$1
|
|
local endpoint=$2
|
|
local data=$3
|
|
local description=$4
|
|
|
|
echo -e "${YELLOW}[TEST]${NC} $description"
|
|
echo -e " Endpoint: $method $endpoint"
|
|
|
|
if [ -z "$data" ]; then
|
|
response=$(curl -s -X "$method" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
"$API_URL$endpoint")
|
|
else
|
|
response=$(curl -s -X "$method" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$data" \
|
|
"$API_URL$endpoint")
|
|
fi
|
|
|
|
if echo "$response" | grep -q "error\|Error"; then
|
|
echo -e " ${RED}✗ FAILED${NC}"
|
|
echo " Response: $response"
|
|
return 1
|
|
else
|
|
echo -e " ${GREEN}✓ PASSED${NC}"
|
|
echo " Response: ${response:0:100}..."
|
|
return 0
|
|
fi
|
|
echo ""
|
|
}
|
|
|
|
# Tests de Docker Images
|
|
echo -e "${BLUE}### Tests Docker Images ${NC}\n"
|
|
|
|
test_api "GET" "/docker/status" "" "Vérifier statut Docker"
|
|
test_api "GET" "/docker/containers" "" "Lister les conteneurs"
|
|
test_api "GET" "/docker/images" "" "Lister les images"
|
|
test_api "GET" "/docker/images/check-all-updates" "" "Vérifier toutes les mises à jour"
|
|
|
|
# Tests de Docker Compose
|
|
echo -e "\n${BLUE}### Tests Docker Compose ${NC}\n"
|
|
|
|
test_api "GET" "/docker/compose/list" "" "Lister les docker-compose"
|
|
|
|
# Tester portainer
|
|
echo -e "\n${BLUE}### Tests Compose - Portainer ${NC}\n"
|
|
test_api "GET" "/docker/compose/portainer/status" "" "Vérifier l'état de Portainer"
|
|
|
|
# Tests de nettoyage
|
|
echo -e "\n${BLUE}### Tests Cleanup ${NC}\n"
|
|
test_api "POST" "/docker/images/prune?dangling_only=true" "" "Nettoyer les images orphelines"
|
|
|
|
# Afficher un résumé
|
|
echo -e "\n${BLUE}========================================${NC}"
|
|
echo -e "${GREEN}Tests Terminés${NC}"
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo -e "\nPour des tests plus avancés:"
|
|
echo -e " ${YELLOW}1. Mettre à jour TOKEN (AUTH_TOKEN env var)${NC}"
|
|
echo -e " ${YELLOW}2. Vérifier les logs du backend${NC}"
|
|
echo -e " ${YELLOW}3. Consulter DOCKER_UPDATE_SYSTEM.md${NC}"
|