- Deleted apps/web/src/utils/optimisticStoreUpdates.ts (unused file) - File was unused - no imports found in codebase - Mutations already use React Query's onMutate pattern - No TypeScript errors after deletion - Actions 4.4.1.2 and 4.4.1.3 complete
4.6 KiB
Correction du Problème de Vérification Réseau
Date: 2026-01-14
Problème: Le script continuait même si le réseau ne fonctionnait pas
Statut: ✅ CORRIGÉ
Problème Identifié
Dans deploy-service-native.sh (lignes 146-152), la vérification réseau échouait silencieusement :
# AVANT (PROBLÉMATIQUE)
if incus exec ${CONTAINER_NAME} -- ping -c 2 -W 2 8.8.8.8 >/dev/null 2>&1; then
echo "✅ Network connectivity verified"
else
echo "⚠️ Warning: Network connectivity test failed, but continuing..."
fi
Impact: Le déploiement continuait même si le réseau ne fonctionnait pas, causant des échecs d'installation de packages et des services non fonctionnels.
Solution Implémentée
1. Vérification Réseau Stricte
La vérification réseau est maintenant obligatoire et fait échouer le déploiement si elle échoue :
# APRÈS (CORRIGÉ)
# Verify network connectivity - CRITICAL: Do not continue if network fails
echo "Verifying network connectivity (CRITICAL - deployment will fail if this doesn't work)..."
# Test 1: Ping gateway
echo " Testing gateway connectivity (10.10.10.1)..."
if ! incus exec ${CONTAINER_NAME} -- ping -c 3 -W 3 10.10.10.1 >/dev/null 2>&1; then
echo "❌ ERROR: Cannot reach gateway (10.10.10.1)"
echo " Network configuration failed. Deployment aborted."
exit 1
fi
# Test 2: Ping external DNS
echo " Testing Internet connectivity (8.8.8.8)..."
if ! incus exec ${CONTAINER_NAME} -- ping -c 3 -W 3 8.8.8.8 >/dev/null 2>&1; then
echo "❌ ERROR: Cannot reach Internet (8.8.8.8)"
echo " Internet connectivity is required for package installation."
echo " Check NAT configuration: incus network show ${NETWORK}"
exit 1
fi
# Test 3: DNS resolution
echo " Testing DNS resolution (google.com)..."
if ! incus exec ${CONTAINER_NAME} -- getent hosts google.com >/dev/null 2>&1; then
echo "❌ ERROR: DNS resolution failed"
echo " Cannot resolve hostnames. DNS configuration failed."
exit 1
fi
echo "✅ Network connectivity fully verified (gateway, Internet, DNS)"
2. Script Simple de Configuration de Base
Création de setup-basic-incus.sh pour configurer l'infrastructure Incus de base :
- Crée le réseau
veza-networkavec NAT et DHCP - Crée le profil
veza-profileavec root et network devices - Vérifie que tout est correctement configuré
Usage:
./config/incus/setup-basic-incus.sh
3. Intégration dans deploy-service-native.sh
Le script de déploiement utilise maintenant automatiquement setup-basic-incus.sh :
# Ensure basic Incus infrastructure is set up
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ -f "${SCRIPT_DIR}/setup-basic-incus.sh" ]; then
echo "Ensuring basic Incus infrastructure is configured..."
"${SCRIPT_DIR}/setup-basic-incus.sh" >/dev/null 2>&1 || {
echo "❌ ERROR: Failed to setup basic Incus infrastructure"
echo " Run manually: ${SCRIPT_DIR}/setup-basic-incus.sh"
exit 1
}
fi
Tests de Vérification
Le script effectue maintenant 3 tests obligatoires :
- Gateway (10.10.10.1) : Vérifie que le conteneur peut atteindre la passerelle
- Internet (8.8.8.8) : Vérifie que le conteneur peut atteindre Internet (NAT fonctionne)
- DNS (google.com) : Vérifie que la résolution DNS fonctionne
Si n'importe lequel de ces tests échoue, le déploiement est aborté immédiatement.
Améliorations Apportées
- ✅ Vérification réseau stricte : Le déploiement échoue si le réseau ne fonctionne pas
- ✅ Messages d'erreur clairs : Indique exactement quel test a échoué et pourquoi
- ✅ Script de base simple :
setup-basic-incus.shpour configurer l'infrastructure - ✅ Configuration réseau robuste : Gestion d'erreurs améliorée dans la configuration réseau
- ✅ Vérification pré-déploiement : Vérifie que le réseau et le profil existent avant de créer le conteneur
Impact
- Avant : Déploiements incomplets, services non fonctionnels, difficulté de débogage
- Après : Déploiements échouent rapidement si le réseau ne fonctionne pas, messages d'erreur clairs, infrastructure de base garantie
Utilisation
Configuration initiale
# Configurer l'infrastructure de base (une seule fois)
./config/incus/setup-basic-incus.sh
Déploiement d'un service
# Le script vérifie automatiquement l'infrastructure et le réseau
./config/incus/deploy-service-native.sh backend-api
Si le réseau ne fonctionne pas, le déploiement échouera immédiatement avec un message d'erreur clair.