Proj-2014-2015-Mini datacenter portail

Objectif
Développer un portail pour une plate-forme d'expérimentation (oar-docker) en s'inspirant de la plate-forme Grid'5000.

Plus globalement cette action s'inscrit dans la partie DataCentre du projet d'éboration d'une plateforme pédagogique pour l'expérimentation sur des systèmes massivement distribués.

Fiche SRS

Equipe

 * Tuteur : Olivier Richard


 * Membres: Robin EUDES, Ombeline ROSSI


 * Département : RICM 4, Polytech Grenoble

Outils
Outils et technologies utilisés :


 * OAR
 * OAR-Docker
 * Boostrap (CSS)
 * PHP
 * API REST (OARAPI)

= Avancement du projet =

Semaine 1 [13/01 - 18/01]

 * Nous avons immédiatement décidé d'utiliser OAR-Docker, qui nous permet de générer directement un nombre donné de noeuds interconnectés.

Il nous a de ce fait fallu apprendre les bases nécessaires pour maîtriser OAR et OAR-Docker.

Nous avons contacté le développeur de ce dernier afin qu'il nous éclaire sur une ambiguïté pour l'installation de ce dernier.

Note : Il est nécessaire d'avoir un OS 64bits pour faire fonctionner OAR-docker.

Semaine 2 [19/01 - 25/01]

 * Nous avons exécuté quelques premières modifications des fichiers fournis dans OAR-docker pour apprendre à maîtriser le logiciel.


 * Une première version de la fiche SRS a également été écrite.

Semaine 3 [26/01 - 01/02]

 * Complétion de la fiche SRS et de celle du projet.


 * Un premier script minimal d'initialisation a été conçu et ajouté dans le git, afin de faciliter l'utilisation de OAR-Docker par des personnes non-initiées.


 * `A ce niveau : l'utilisateur connait au démarrage de la simulation le nombre maximal de noeud qui lui faudra. ( voir semaine 6 )


 * Recherche de sources précompilées de node.js car cela prend énormément de temps lors du lancement de la simulation.

Semaine 4 [02/02 - 08/02]

 * Mise à jour de la fiche SRS


 * Recherche d'informations sur l'utilisation de l'APIs d'OAR


 * Suite à un souci avec (principalement) l'initialisation des noeuds et de la récupération de l'état des ressources, nous avons à nouveau contacté le développeur qui nous a indiqué avir effectué une mise à jour il y a quelques semaines. Depuis, nous avons ajouté une alerte sur ce dépot, pour ne pas manquer une mise à jour, et perdre du temps en debug.

Python3 support Prefixed all container outputs with the container hostname (like oardocker logs subcommand) Added --force-rm and --pull options to oardocker build subcommand Allowed user to build custom images with custom_setup.sh script located in .oardocker/images// Added a proper way to shutdown container Updated /etc/hosts when reseting containers Removed dockerpty package from dependencies Removed oardocker ssh/ssh-config subcommand Added --verbose option Fixed oardocker logs subcommand
 * Update oar-docker vers la version 0.4.0 :

Semaine 5 [09/02 - 15/02]

 * Découverte des fonctions de bootstrap.


 * Mise en forme de la page d'accueil du portail.


 * Test des premières requêtes json vers l'API.

Semaine 6 [23/02 - 01/03]

 * Update vers la version 0.4.3 d'oar-docker, apportant divers bug fixes :

Added --debug option Set default docker API to 1.15 (#25) Workaround phpphadmin apache install Removed drawgantt-svg permissions errors (#23) [Salem Harrache] Fixed oardocker init subcommand (#22) Upload workdir to containers during the build Updated Dockerfiles to execute custom_setup.sh script


 * Rajout d'informations sur les noeuds sur la page d'accueil et de pages séparées pour chaque noeud en particulier.


 * Ajout d'identification nécessaire pour les utilisateurs.


 * Ajout du waffle (scrum)


 * Première approche pour la création de ressources à la volée ( après l'initialisation ) concluante : problème soulevé en Semaine 3 "résolu", de même pour la soumission d'un "job" à un noeud. Ces fonctionnalités seront ajoutées à la webui par la suite.


 * Diverses réorganisations autour de la webui (contenu & mise en forme).


 * L'initialisation de la webui (installation des composants nécessaires, clonage du git, etc) est désormais intégrée lors du build initial. Le script initialement développé (et exécuté à chaque instanciation du frontend ) est maintenant inclu dans le build, et donc exécuté une unique fois. Les composants n'ont plus besoin d'être réinstallé à chaque fois. Cette option est permise par l'éxécution d'un script "custom_setup.sh" lors du build.

Semaine 7 [02/03 - 08/03]

 * Accélération de l'éxecution du custom_setup.sh pour le frontend, boostrap n'est plus installé à partir des sources. Les fichiers minimaux requis sont présents sur le git.


 * De multiples corrections de bug dans info_node.php, qui donne une première vue générale des noeuds.


 * Création de info_rsc.php, qui nous permet une vue détaillé d'un host particulier. Un host ( par exemple "node1" ) regroupe plusieurs ressources, chacune d'entre elle pouvant effectuer des calculs. Ainsi, connaitre les paramètres précis d'une ressource avant de lui soumettre un job est important.


 * Formulaire de soumission de taches à une ressource fonctionnel (pour une commande uniquement, fichier script à venir).

** paramètres minimaux manquants ( ressource visée, commande à effectuer ) ** Authentification requise ( user : docker )
 * Gestion de diverses erreurs autour de la soumission de taches :


 * Mise en place d'une page "errors.php", pour gérer les affichages des diverses erreurs (lors du login, par exemple ).

** L'authentification sera requise uniquement pour les requêtes vers l'API qui le nécessitent. ** Si on est logué avec le mauvais utilisateur pour soumettre un job -> redirection vers errors.php avec un message explicatif.
 * L'authentification est désormais réalisée via un formulaire, qui se charge de vérifier que les login/password concordent avec ceux inscrit dans le fichier /etc/oar/api-users.


 * Réflexions autour de l'utilisation d'AJAX pour afficher des alertes en cas d'erreur / succès de diverses actions, plutôt qu'une redirection vers error.php ( qui elle même redirige vers différente pages suivant le type d'erreur.)