feat: Add Docker image update system (TrueNAS Scale inspired)
- 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
This commit is contained in:
86
test_docker_updates.sh
Normal file
86
test_docker_updates.sh
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/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}"
|
||||
Reference in New Issue
Block a user