[rudder-dev] Templating Jinja2

Alexis Mousset alexis.mousset at normation.com
Mon Sep 19 14:58:41 CEST 2016


Bonjour at Rudder,

La version de base du templating jinja2 dans Rudder (fonction 
datastate() qui écrit dans un fichier + script python qui prend en 
argument un template et le json de datastate et l'écrit dans la 
destination), j'ai un poc fonctionnel. Il reste du code ncf à écrire 
pour faire le templating et le script python à reprendre (pour l'instant 
j'utilise jinja2-cli mais on peut faire plus simple, et en plus gérer le 
success/repaired/error), et éventuellement élaguer un peu le json produit.

Quelques questions concernant le format de templating jinja :

  * Est-ce qu'on veut coller à ce qui se fait en mustache en CFEngine ?
    C'est à dire utiliser dans les template des {%if classes.maclasse %}
    et {{ vars.bundle.variable }} au lieu de {%if maclasse} et {{
    bundle.variable }}, avec la possibilité de passer un json "verbatim"
    qui sera interprété tel quel ? Cela demande de modifier des
    templates existants, mais c'est de toutes façons probablement le cas
    si on veut utiliser le contexte et pas un json en source de données.
    En plus ça collera au templating mustache et passera peut-être mieux
    upstream, même si ça peut être un peu déroutant pour un habitué au
    templating (hors CFEngine).

De plus, une version propre pourrait consister en :

  * un vrai type de template en CFEngine, au même titre que mustache
  * un script python dans un module au sens CFEngine
  * un passage de données au module sans utiliser un fichier mais
    directement sur stdin/stdout
  * un module qui ne ferait pas l'édition lui même, mais seulement le
    templating, laissant l'édition, avec tous les problèmes de
    droits/backup, etc. à  CFEngine

Qu'est ce qui est prioritaire/indispensable de livrer pour la prochaine 
mineure ? Est-ce qu'on commence par une version "dégradée" en améliorant 
par la suite ? (en faisant attention à bien penser la signature des 
generic methods).


-- 
------------------------------------------------------------------------
*Logo Normation Alexis MOUSSET*
/System Engineer/
Normation <http://www.normation.com>
------------------------------------------------------------------------
*87, Rue de Turbigo, 75003 Paris, France*
Phone: 	+33 (0)1 84 17 77 93
------------------------------------------------------------------------

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.rudder-project.org/pipermail/rudder-dev/attachments/20160919/511c762a/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: logo-square.gif
Type: image/gif
Size: 2118 bytes
Desc: not available
URL: <http://www.rudder-project.org/pipermail/rudder-dev/attachments/20160919/511c762a/attachment.gif>


More information about the rudder-dev mailing list