Projet

Général

Profil

Tâche #4255

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

Fournir un serveur et un client creole

Ajouté par Daniel Dehennin il y a plus de 11 ans. Mis à jour il y a plus de 9 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
10/10/2012
Echéance:
14/11/2012
% réalisé:

100%

Temps passé:
Restant à faire (heures):

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.

Révisions associées

Révision 64313fd2 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision 9d073261 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision 0e2c1906 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision 77ea8b12 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision 6eceae47 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision e428a943 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision 6dc893c8 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision aa728bc5 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision 96552b43 (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision b92064da (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision eb41d97b (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision 6612fcaa (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Révision 4d22bbff (diff)
Ajouté par Daniel Dehennin il y a plus de 11 ans

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

Historique

#1 Mis à jour par Daniel Dehennin il y a plus de 11 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#2 Mis à jour par Joël Cuissinat il y a plus de 11 ans

  • Statut changé de Résolu à Fermé

Formidable \o/

#3 Mis à jour par Daniel Dehennin il y a plus de 9 ans

  • Tâche parente mis à #8829

#4 Mis à jour par Daniel Dehennin il y a plus de 9 ans

  • Echéance mis à 12/09/2014

#5 Mis à jour par Daniel Dehennin il y a plus de 9 ans

  • Echéance changé de 12/09/2014 à 14/11/2012

Formats disponibles : Atom PDF