Project

General

Profile

Tâche #4255

Distribution EOLE - Scénario #8829: Demandes EOLE 2.4 déjà résolues

Fournir un serveur et un client creole

Added by Daniel Dehennin over 8 years ago. Updated over 6 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
10/10/2012
Due date:
11/14/2012
% Done:

100%

Spent time:
Remaining (hours):

Description

Le serveur prototype actuel est basé sur basicHTTPServer.

API REST:
  • /get: récupère une valeur ou un arbre de configuration tiramisu
  • /list: liste les éléments à un niveau de l’arbre.

Associated revisions

Revision 64313fd2 (diff)
Added by Daniel Dehennin over 8 years ago

Nouveau serveur creole et son client

Le serveur écoute par défaut sur 127.0.0.1:8000 et répond aux requêtes
HTTP « /get » et « /list ».

  • creole/server.py: Nouveau serveur utilisant cherrypy.
  • creole/client.py: Nouveau client utilisant la nouvelle API REST du
    serveur.
    Définition de wrapper pour obtenir des informations ciblées et les
    présenter.
  • sbin/creoled: Lanceur pour le daemon creole.
  • init/creoled: Script d’init du daemon creole.
  • setup.py: Install le script d’init et le lanceur.

Fixes: #4255 @18h
Ref: #3074
Ref: #3863

Revision 9d073261 (diff)
Added by Daniel Dehennin over 8 years ago

Mise à niveau de l’utilisation de creole.client

  • creole/cert.py: Utilisation de l’API de l’objet CreoleClient.
  • creole/containers.py: Idem.
  • creole/service.py: Idem.
  • data/diag.py: Idem.

Ref: #4255 @15m

Revision 0e2c1906 (diff)
Added by Daniel Dehennin over 8 years ago

Mise à niveau du moteur de templatisation creole

  • creole/template.py: Utilisation de l’API de l’objet CreoleClient.
    Création d’un objet CreoleTemplateEngine pour regrouper les méthodes
    d’instanciation de template cheetah. Création d’un objet CreoleMaster
    pour gérer les variables master/slave.
    (CreoleTemplateEngine.patch_template): Méthode d’application des
    patches.
    (CreoleTemplateEngine.strip_template_comment): Méthode de suppression
    des commentaires.
    (CreoleTemplateEngine._copy_to_template_dir): Copie des templates dans
    le répertoire de travail.
    (CreoleTemplateEngine.prepare_template): Wrapper de préparation des
    templates.
    (CreoleTemplateEngine.change_properties): Force le propriétaire et le
    groupe principal à « root:root » si rien n’est défini.
    Force les permissions à « 0644 » si rien n’est défini.
    (CreoleTemplateEngine.instance_file): Instancie un fichier par son nom
    de destination (attribut « name » des « file » des dictionnaires creole).
    (CreoleTemplateEngine.instance_files): Instancie des fichiers en masse,
    par défaut tous les fichiers de tous les conteneurs.

Ref: #4255 @34h

Revision 77ea8b12 (diff)
Added by Daniel Dehennin over 8 years ago

Correction et simplification du logger creole

  • creole/log.py: Fourni une fonction init_creole_log qui retourne un
    logger vers le fichier de log creole pour le namespace « creole ».
  • tests/test_log.py: Mise à jour.

Ref: #4255 @3h

Revision 6eceae47 (diff)
Added by Daniel Dehennin over 8 years ago

Mise à niveau des commandes shell

Utilisation de l’API de l’objet CreoleClient.

Nécessite une version à jour de python-pyeole.

  • bin/CreoleCat: Instanciation d’un template depuis son nom ou d’un
    fichier source.
  • bin/CreoleGet: Renvoie la valeur d’une variable.
  • bin/CreoleService: Actions sur les services.

Ref: #4255 @17h

Revision e428a943 (diff)
Added by Daniel Dehennin over 8 years ago

Interdépendance creole et pyeole

  • debian/control (Depends): Ajout de la version minimale de python-pyeole.
    (Breaks): Casse pyeole à cause du changement d’API.

Ref: #4255 @10m

Revision 6dc893c8 (diff)
Added by Daniel Dehennin over 8 years ago

Ajout des la dépendance python pour le serveur et le client

  • debian/control (Depends): Ajout de python-cherrypy3 et python-requests.

Ref: #4255 @2m

Revision aa728bc5 (diff)
Added by Daniel Dehennin over 8 years ago

CreoleService n’est pas fonctionel

  • bin/CreoleService: Ajout des import manquants.
    (parse_cmdline): Les arguments positionnels ne supporte pas l’option
    « required » car ils le sont par défaut.
    (main): On groupe les services par conteneurs et on boucle sur les
    conteneurs/services.

Ref: #4255 @2m

Revision 96552b43 (diff)
Added by Daniel Dehennin over 8 years ago

Mise à jour de la gestion des services

  • creole/service.py (instance_services): Passage du dictionnaire
    décrivant le service à pyeole.service suite au changement d’API.
    (stop_services): Arrête tous les services, sauf le réseau.
    (start_services): Démarre tous les services, sauf le réseau qui est
    redémarré.
    (_restart_service): L’argument « container » est devenu obsolète avec
    le passage du dictionnaire de service complet.
    (restart_services): Utilisation de la nouvelle API
    de « _restart_service ».

Ref: #4255 @5m
Ref: #4268 @5m

Revision b92064da (diff)
Added by Daniel Dehennin over 8 years ago

L’instanciation doit s’arrêter à la première erreur

  • creole/template.py (CreoleTemplateEngine.instance_file): Ne pas
    intercepter les exceptions.
    (CreoleTemplateEngine.instance_files): Idem.
    Typo de nom de variable.

Ref: #4255 @2m

Revision eb41d97b (diff)
Added by Daniel Dehennin over 8 years ago

Permettre l’utilisation d’un objet « CreoleClient() » dans les templates

  • creole/template.py (CheetahTemplate.__init__): N’utilise plus le
    dictionnaire de toutes les variables.
    Remplacer les appels « %%creole_get() » par « %%creole_client() » dans
    les templates.
    (init): Suppression de la variable d’instance inutile
    all_variables_dict.
    (CreoleTemplateEngine.process): Utilisation de la nouvelle API de « CheetahTemplate() »

Ref: #4255 @5m

Revision 6612fcaa (diff)
Added by Daniel Dehennin over 8 years ago

Corriger le logger du daemon creole

  • creole/server.py: Utilisation de pyeole.log et création d’un logger
    global.
    (CreoleDaemon._load_argparse): Utilisation de pyeole.scriptargs.
    (CreoleDaemon._configure_log): Création du logger et configuration de
    cherrypy pour ne pas gérer lui même les logs.

Ref: #4255 @20m

Revision 4d22bbff (diff)
Added by Daniel Dehennin over 8 years ago

Ne pas logger creoled via syslog

Lorsqu’un fichier est instancié dans le répertoire /etc/eole creoled
redémarre et plante car le SysLogHandler ne gére pas la reconnection.

  • creole/server.py (CreoleDaemon._configure_log): On log dans un fichier
    en mode daemon.

Ref: #4255 @2m

History

#1 Updated by Daniel Dehennin over 8 years ago

  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100

#2 Updated by Joël Cuissinat over 8 years ago

  • Status changed from Résolu to Fermé

Formidable \o/

#3 Updated by Daniel Dehennin over 6 years ago

  • Parent task set to #8829

#4 Updated by Daniel Dehennin over 6 years ago

  • Due date set to 09/12/2014

#5 Updated by Daniel Dehennin over 6 years ago

  • Due date changed from 09/12/2014 to 11/14/2012

Also available in: Atom PDF