8.7 KiB
Tests Frontend - Filtrage des Playbooks
Guide de Test Manuel
Prérequis
- L'API backend doit être démarrée
- L'interface web doit être accessible
- Au moins un hôte dans
role_proxmoxet un hôte hors de ce groupe
Test 1 : Filtrage pour Hôte Non-Proxmox
Objectif
Vérifier que backup-proxmox-config n'apparaît PAS pour un hôte hors du groupe role_proxmox
Étapes
- Ouvrir l'interface web
- Aller dans la section "Hôtes"
- Localiser un hôte qui n'est PAS dans
role_proxmox(ex:raspi.4gb.home) - Cliquer sur le bouton "Playbook" pour cet hôte
- Observer la liste des playbooks
Résultat Attendu
- ✅ Message affiché : "Seuls les playbooks compatibles avec cet hôte sont affichés (X disponibles)"
- ✅ La liste contient :
bootstrap-host,health-check,vm-upgrade,vm-reboot, etc. - ❌ La liste NE contient PAS :
backup-proxmox-config
Capture d'Écran
→ Devrait montrer backup-proxmox-config
→ Ne devrait PAS montrer backup-proxmox-config
Test 2 : Filtrage pour Hôte Proxmox
Objectif
Vérifier que backup-proxmox-config APPARAÎT pour un hôte du groupe role_proxmox
Étapes
- Ouvrir l'interface web
- Aller dans la section "Hôtes"
- Localiser un hôte dans
role_proxmox(ex:ali2v.xeon.home) - Cliquer sur le bouton "Playbook" pour cet hôte
- Observer la liste des playbooks
Résultat Attendu
- ✅ Message affiché : "Seuls les playbooks compatibles avec cet hôte sont affichés (X disponibles)"
- ✅ La liste contient :
backup-proxmox-config - ✅ La liste contient aussi :
bootstrap-host,health-check, etc.
Vérification Supplémentaire
- Le nombre de playbooks disponibles devrait être SUPÉRIEUR au Test 1
Test 3 : Filtrage pour Groupe Non-Proxmox
Objectif
Vérifier que backup-proxmox-config n'apparaît PAS pour un groupe autre que role_proxmox
Étapes
- Ouvrir l'interface web
- Aller dans la section "Groupes"
- Sélectionner un groupe autre que
role_proxmox(ex:env_lab) - Cliquer sur le bouton "Playbook" pour ce groupe
- Observer la liste des playbooks par catégorie
Résultat Attendu
- ✅ Message affiché : "Seuls les playbooks compatibles avec ce groupe sont affichés (X disponibles)"
- ✅ Catégorie "BACKUP" : NE contient PAS
backup-proxmox-config - ✅ Catégorie "MAINTENANCE" : Contient les playbooks universels
- ✅ Catégorie "MONITORING" : Contient
health-check
Test 4 : Filtrage pour Groupe Proxmox
Objectif
Vérifier que backup-proxmox-config APPARAÎT pour le groupe role_proxmox
Étapes
- Ouvrir l'interface web
- Aller dans la section "Groupes"
- Sélectionner le groupe
role_proxmox - Cliquer sur le bouton "Playbook" pour ce groupe
- Observer la liste des playbooks par catégorie
Résultat Attendu
- ✅ Message affiché : "Seuls les playbooks compatibles avec ce groupe sont affichés (X disponibles)"
- ✅ Catégorie "BACKUP" : CONTIENT
backup-proxmox-config - ✅ Toutes les autres catégories : Contiennent les playbooks universels
Test 5 : Compteur de Playbooks
Objectif
Vérifier que le compteur affiche le bon nombre de playbooks
Étapes
- Pour chaque test ci-dessus, noter le nombre affiché dans le message
- Compter manuellement les playbooks dans la liste
- Comparer les deux nombres
Résultat Attendu
- ✅ Le nombre affiché correspond au nombre de playbooks dans la liste
- ✅ Le pluriel est correct ("1 disponible" vs "X disponibles")
Test 6 : Tentative d'Exécution Incompatible (Protection Backend)
Objectif
Vérifier que même si on contourne le frontend, le backend bloque l'exécution
Étapes
- Ouvrir la console développeur du navigateur (F12)
- Exécuter cette commande JavaScript :
fetch('/api/ansible/execute', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'votre-api-key'
},
body: JSON.stringify({
playbook: 'backup-proxmox-config.yml',
target: 'raspi.4gb.home'
})
})
.then(r => r.json())
.then(console.log)
Résultat Attendu
- ✅ Réponse HTTP 400 (Bad Request)
- ✅ Message d'erreur :
{
"detail": "Le playbook 'backup-proxmox-config.yml' (hosts: role_proxmox) n'est pas compatible avec la cible 'raspi.4gb.home'. Ce playbook ne peut être exécuté que sur: role_proxmox"
}
Test 7 : Vérification API Directe
Objectif
Vérifier que l'API retourne bien les playbooks filtrés
Étapes
- Ouvrir un terminal
- Exécuter ces commandes curl :
# Test 1 : Playbooks pour raspi.4gb.home
curl -H "X-API-Key: votre-key" \
"http://localhost:8000/api/ansible/playbooks?target=raspi.4gb.home"
# Test 2 : Playbooks pour ali2v.xeon.home
curl -H "X-API-Key: votre-key" \
"http://localhost:8000/api/ansible/playbooks?target=ali2v.xeon.home"
# Test 3 : Playbooks pour role_proxmox
curl -H "X-API-Key: votre-key" \
"http://localhost:8000/api/ansible/playbooks?target=role_proxmox"
# Test 4 : Playbooks pour env_lab
curl -H "X-API-Key: votre-key" \
"http://localhost:8000/api/ansible/playbooks?target=env_lab"
Résultat Attendu
Test 1 (raspi.4gb.home) :
{
"playbooks": [
{"name": "bootstrap-host", "hosts": "all", ...},
{"name": "health-check", "hosts": "all", ...},
{"name": "vm-upgrade", "hosts": "all", ...}
// PAS de backup-proxmox-config
],
"filter": "raspi.4gb.home"
}
Test 2 (ali2v.xeon.home) :
{
"playbooks": [
{"name": "backup-proxmox-config", "hosts": "role_proxmox", ...},
{"name": "bootstrap-host", "hosts": "all", ...},
{"name": "health-check", "hosts": "all", ...}
// backup-proxmox-config EST présent
],
"filter": "ali2v.xeon.home"
}
Test 3 (role_proxmox) :
{
"playbooks": [
{"name": "backup-proxmox-config", "hosts": "role_proxmox", ...},
// + tous les playbooks avec hosts: all
],
"filter": "role_proxmox"
}
Test 4 (env_lab) :
{
"playbooks": [
// Seulement les playbooks avec hosts: all
// PAS de backup-proxmox-config
],
"filter": "env_lab"
}
Test 8 : Gestion d'Erreur
Objectif
Vérifier que l'interface gère correctement les erreurs
Étapes
- Arrêter temporairement l'API backend
- Dans l'interface, cliquer sur "Playbook" pour un hôte
- Observer le comportement
Résultat Attendu
- ✅ Message d'erreur affiché : "Erreur chargement playbooks: [message]"
- ✅ La modale ne s'ouvre pas ou affiche un message d'erreur
- ✅ Pas de crash de l'interface
Checklist Complète
Interface Utilisateur
- Message informatif affiché dans la modale (hôte)
- Message informatif affiché dans la modale (groupe)
- Compteur de playbooks correct
- Pluriel correct ("disponible" vs "disponibles")
- Icônes affichées correctement
Filtrage Fonctionnel
- Hôte non-Proxmox : backup-proxmox-config absent
- Hôte Proxmox : backup-proxmox-config présent
- Groupe non-Proxmox : backup-proxmox-config absent
- Groupe Proxmox : backup-proxmox-config présent
- Groupe "all" : tous les playbooks présents
Protection Backend
- Exécution incompatible bloquée (HTTP 400)
- Message d'erreur explicite
- API retourne les bons playbooks filtrés
Robustesse
- Gestion d'erreur si API indisponible
- Encodage URL correct pour noms spéciaux
- Pas de crash si aucun playbook compatible
Résultats Attendus Globaux
| Cible | backup-proxmox-config | Autres Playbooks |
|---|---|---|
raspi.4gb.home |
❌ Absent | ✅ Présents |
ali2v.xeon.home |
✅ Présent | ✅ Présents |
role_proxmox |
✅ Présent | ✅ Présents |
env_lab |
❌ Absent | ✅ Présents |
all |
❌ Absent | ✅ Présents |
Rapport de Test
Date : _____________
Testeur : _____________
| Test | Statut | Notes |
|---|---|---|
| Test 1 : Hôte Non-Proxmox | ⬜ Pass ⬜ Fail | |
| Test 2 : Hôte Proxmox | ⬜ Pass ⬜ Fail | |
| Test 3 : Groupe Non-Proxmox | ⬜ Pass ⬜ Fail | |
| Test 4 : Groupe Proxmox | ⬜ Pass ⬜ Fail | |
| Test 5 : Compteur | ⬜ Pass ⬜ Fail | |
| Test 6 : Protection Backend | ⬜ Pass ⬜ Fail | |
| Test 7 : API Directe | ⬜ Pass ⬜ Fail | |
| Test 8 : Gestion d'Erreur | ⬜ Pass ⬜ Fail |
Conclusion
⬜ Tous les tests passent - Implémentation validée
⬜ Certains tests échouent - Corrections nécessaires