- 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
128 lines
4.6 KiB
Markdown
128 lines
4.6 KiB
Markdown
# 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 :
|
|
|
|
```bash
|
|
# 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 :
|
|
|
|
```bash
|
|
# 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-network` avec NAT et DHCP
|
|
- Crée le profil `veza-profile` avec root et network devices
|
|
- Vérifie que tout est correctement configuré
|
|
|
|
**Usage**:
|
|
```bash
|
|
./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` :
|
|
|
|
```bash
|
|
# 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** :
|
|
|
|
1. **Gateway (10.10.10.1)** : Vérifie que le conteneur peut atteindre la passerelle
|
|
2. **Internet (8.8.8.8)** : Vérifie que le conteneur peut atteindre Internet (NAT fonctionne)
|
|
3. **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
|
|
|
|
1. ✅ **Vérification réseau stricte** : Le déploiement échoue si le réseau ne fonctionne pas
|
|
2. ✅ **Messages d'erreur clairs** : Indique exactement quel test a échoué et pourquoi
|
|
3. ✅ **Script de base simple** : `setup-basic-incus.sh` pour configurer l'infrastructure
|
|
4. ✅ **Configuration réseau robuste** : Gestion d'erreurs améliorée dans la configuration réseau
|
|
5. ✅ **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
|
|
```bash
|
|
# Configurer l'infrastructure de base (une seule fois)
|
|
./config/incus/setup-basic-incus.sh
|
|
```
|
|
|
|
### Déploiement d'un service
|
|
```bash
|
|
# 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.
|