Aller au contenu

Vérification de l'environnement (doctor)

La vérification de l’environnement (ou doctor) répond à « ai-je le nécessaire pour lancer ce scénario ? » avant d’appuyer sur play, au lieu de le découvrir par un échec en plein lancement.

Elle est disponible comme panneau dans l’app (Vérification de l’environnement, rail droit) et comme commande (aseptic doctor [scénario]).

Le rapport est groupé par catégorie :

  • Dépôts — le manifeste de chaque micro existe et son dépôt est sur le disque.
  • Outils — ceux qu’exigent les stacks du scénario (java+maven, node+npm, npx pour Angular, python, go, dotnet…), sondés avec leur commande de version. Le wrapper du dépôt (mvnw) ou le .venv satisfont l’exigence sans exiger l’outil global. Et un outil peut porter plusieurs noms selon le système —python sous Windows et dans un .venv, python3 sous macOS et Debian— : ils sont tous sondés et le contrôle indique le nom qu’il a trouvé. S’il manque un outil qu’Aseptic sait installer (JDK, Maven, Gradle, Node, Go, SDK .NET), le CLI indique la commande qui le récupère (aseptic toolchain install <outil>). Et les micros qui iront dans leur conteneur d’outils ne comptent pas ici : le rapport les liste à la fin, avec le motif.
  • Exigences du micro — ce qu’un micro concret déclare avoir besoin au-delà de son stack (un autre outil, un chemin qui doit exister…).
  • Docker — le daemon répond, uniquement si le scénario lance de l’infra ou fait tourner un micro en conteneur.
  • Bases de données — accessibilité TCP des bases de données externes sélectionnées.
  • Identifiants — chaque ${creds.x} dont le démarrage aura besoin a une valeur dans settings.local.yml.
  • Un échec bloque : il manque quelque chose d’indispensable.
  • Un avertissement ne bloque pas : c’est quelque chose d’optionnel ou de récupérable.

Dans le CLI, aseptic doctor se termine avec le code de sortie 0 s’il n’y a pas d’échecs et 1 s’il y en a, ce qui le rend utile comme porte préalable dans un script.