Nous découpons le programme Vampire en trois parties principales: - la définition des paramètres - l'exécution des tarballs sur un réseau donné - l'exportation des résultats sous différents formats 1. 'Définir les paramètres' Les paramètres sont décomposés en trois sous-parties. Ils sont définissables sous forme de trois fichies de configuration. Un utilitaire graphique sera développé pour générer et modifier ces fichiers. 1.1. La description du réseau sur lequel les tarballs vont être testées. Vampire doit connaître le réseau sur lequel il va s'exécuter. Nous définirons prochainement le format de fichier de configuration (en XML) pour cette description. Cette description se fera sous forme de 'pools' de machines, regroupées suivant leur type et leur architecture. Pour chacun de ses pools, il faut indiquer les noms des machines et les moyens de connexion possibles pour chaque machine (ssh, telnet, ...). Il doit être également possible de préciser pour chaque machine des variables d'environnement (MAKE = gmake et certains flags de compilation pour Sun par exemple), ainsi que des paramètres éventuels pour le 'configure' de la tarball. 1.2. La description des options de Vampire L'utilisateur doit pouvoir définir certaines options (format de sortie des résultats par exemple). Un fichier sera consacré aux options par défaut, ensuite l'utilisateur pourra ajouter d'autres options en ligne de commande à l'éxécution de Vampire. 1.3. La définition des arguments de Vampire Evidemment, l'utilisateur doit préciser la (les) tarball(s) à tester. Cela se fera par un dernier fichier simple contenant la liste des tarballs. Et l'utilisateur pourra également préciser les tarballs en ligne de commande à l'éxécution de Vampire. 2. 'Tester des tarballs' L'exécution de Vampire est divisée en quatre sous-parties. 2.1. La répartition des tarballs sur le réseau. La première phase d'exécution de Vampire est la répartition des tarballs sur les pools de machines, afin de ralentir le moins possible les machines du réseau. Cette répartition doit également tenir compte de la disponibilité de chaque machine. 2.2. Envoi de commandes aux machines distantes Avant d'envoyer la tarball sur chaque machine distante, il sera nécessaire d'exécuter certaine commandes pour 'préparer' les machines distantes (création d'un répertoire temporaire ...). Une fois la tarball envoyée, il faudra envoyer les commandes pour tester la tarball (./configure, make check ...). 2.3. Envoi de la tarball aux machines distantes L'envoi de la tarball peut-être très simple si l'utilisateur a bien décrit le réseau. Suivant le type de connexion définit, il peut s'agir soit d'un envoi, soit dún réception de la tarball depuis la machine distante. En revanche si l'utilisateur a mal définit le réseau, et que le type de connexion à utiliser pour une machine n'est pas définit, Vampire doit être capable de trouver une manière dáccéder à la machine. Il va donc tester différents types de connexions. 2.4. Récupération des fichiers de logs. Une fois la tarball testée sur la machine, il faut rappatrier les informations récupérees afin de pouvoir les analyser. Le but est de récupérer le plus de renseigements possibles (sorties sur stdout et stderr, temps d'éxécution, ...). 3. 'Lire les résultats' A partir des logs récupérés, Vampire doit générer des résultats lisibles. Il devra donc être capable d'exporter les informations récupérées dans des formats intéressants (texte, HTML, ...). Nous devons également décider d'un format de document pour cette partie.