Difference between revisions of "Proj-2014-2015-Mini datacenter portail"

From air
Jump to navigation Jump to search
Line 23: Line 23:
 
* [http://oar.imag.fr/dokuwiki/doku.php OAR]
 
* [http://oar.imag.fr/dokuwiki/doku.php OAR]
 
* [https://github.com/oar-team/oar-docker OAR-Docker]
 
* [https://github.com/oar-team/oar-docker OAR-Docker]
* [http://getbootstrap.com/ Boostrap]
+
* [http://getbootstrap.com/ Boostrap (CSS)]
 
* [http://php.net/ PHP]
 
* [http://php.net/ PHP]
 
* API REST [http://oar.imag.fr/sources/2.5/docs/documentation/OAR-DOCUMENTATION-API-USER/ OARAPI]
 
* API REST [http://oar.imag.fr/sources/2.5/docs/documentation/OAR-DOCUMENTATION-API-USER/ OARAPI]

Revision as of 16:56, 8 March 2015

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

Outils

Outils et technologies utilisés :

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 )
  • TODO : rechercher des sources compilées de node.js car cela prend énormément de temps lors du lancement de la simulation. [DONE]

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.
  • Update oar-docker vers la version 0.4.0 :
  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/<image_name>/
  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

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.
  • 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 - 09/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.
  • Gestion de diverses erreurs autour de la soumission de taches :
** paramètres minimaux manquants ( ressource visée, commande à effectuer )
** Authentification requise ( user : docker )
  • Mise en place d'une page "errors.php" , pour gérer les affichages des diverses erreurs (lors du login, par exemple ).
  • 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 .
** L'authentification sera requise uniquement pour les requêtes vers l'API qui le nécessitent.
  • 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.