[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