Projet

Général

Profil

Wiki » Historique » Version 22

« Précédent - Version 22/25 (diff) - Suivant » - Version actuelle
Lionel Morin, 26/09/2014 15:04


Développement à partir du squelette eoleflask (Ébauche)

Préparation de l'application:

  • installer le paquet python-eoleflask
  • cloner le dépot eole-skeletor
  • lancer le script: ./bootstrap-eoleflask-app.sh [monappli]

Cela prépare les fichiers nécessaires à une application flask pour EOLE dans le répertoire src/monappli:
le répertoire du module lui même: src/monappli
le fichier qui permettra d'activer l'application dans le serveur: src/monappli.conf

Lancer l'application:

  • créer un fichier src/monappli/static/index.html
  • lancer le script ./eoleflask-dev-server.py
  • ouvrir un navigateur à l'adresse http://localhost:8080/

Attention : en tant que developpeur, vous ne devez jamais installer le paquet (le .deb) de votre application sur votre machine de test. Si vous faites cela, le serveur de test ./eoleflask-dev-server.py vous présentera les fichiers du paquet et non plus les fichiers de développement. cf #5233

Développement de l'application:

  • Tout les fichiers de l'application se trouvent dans le répertoire src/:
    
            src/
            |-- monappli
            |   |-- __init__.py
            |   |-- static
            |   |   `-- index.html
            |   `-- views.py
            `-- monappli.conf
    
    
  • La logique de l'application se trouve dans le fichier src/monappli/views.py
  • Tous les fichiers statiques se trouvent dans src/monappli/static
  • La documentation Flask se trouve la: http://flask.pocoo.org/docs/

Intégration dans une machine de test:

-- A revoir/Étoffer

  • installer les paquets python-eoleflask et eole-flask-server
  • installer votre application avec un make install
  • activer votre application avec: /usr/share/eole/sbin/eflkctl enable monappli
  • relancer le serveur avec /etc/init.d/eoleflask restart
  • l'application est disponible à l'adresse http://[ip_machine_de_test]:7000/monappli

-- Fin de A revoir/Étoffer

Organisation du code de l'application (écriture en cours):

mettre la logique métier dans une lib.py et que le views soit juste le binding entre l’API rest et l’API python.
le lib.py devienne un paquet deb à part

Gestion des 2 instances flask

2 instances d'eoleflask sont mises en place avec des services différents :

Instance eoleflask

  • localhost:5000 (eventuellement, renommer le service eoleadmin pour plus de clarté)
  • sert eoleauth/genconfig et tourne dans le conteneur maitre

Instance eoleapps

  • localhost:10000
  • sert eoleauth et les applis web flask (EOP pour le moment) grace à un reverse proxy apache
  • possibilité de la désactiver (en mode expert, famille Eole-Flask)

Activation d'une application pour une instance

  • Exemple d'activation d'eolegenconfig dans l'instance eoleadmin
    1. eflkctl enable eolegenconfig eoleadmin
    2. service eoleflask restart
  • Exemple pour rendre eop accessible dans l'instance eoleapps:
    1. eflkctl enable eop eoleapps
    2. service eoleapps restart

PREFIX