Utilisation avancée
Modification des méta-caractères utilisés
Dans le cas où il y a trop de % dans le template, il est possible de changer carrément de méta-caractères, en ajoutant une section compiler-settings
en en-tête du template.
Cette méthode est, par exemple, utilisée pour la génération du fichier de configuration du logiciel eJabberd
qui est en déclaré en Erlang[1].
ExempleUtilisation de @ et @@ à la place de % et %%
%compiler-settings
directiveStartToken = @
cheetahVarStartToken = @@
%end compiler-settings
Variables esclaves désactivées
Depuis la version 2.4 d'EOLE, il est possible qu'au sein d'un même groupe de variables, certaines variables esclaves soient désactivées et d'autres non.
Dans l'exemple qui suit :
- maitre : est la variable maître
- esclave1 : est une variable esclave
- esclave2 : est une autre variable esclave qui est potentiellement désactivée
Exemple
%def getSlave(%%master, %%slave, %%iterator)
%if %%is_defined(%%master+'.'+%%slave)
%return %%getattr(%%iterator, %%slave)
%else
%return 'inconnu'
%end if
%end def
%for %%iterator in %%maitre
%%iterator.esclave1
getSlave('maitre', 'esclave2', %%iterator)
%end for
Utilisation de creole_client
Les fonctionnalités de creole_client sont utilisables directement dans les templates.
Il est par exemple possible de lister toutes les variables et leurs valeurs :
%for %%var, %%value in %%creole_client.get_creole().items()
%%var : %%value
%end for
Donnera le résultat suivant (notez que le nom des variables esclaves est précédé de celui de la variable maître associée) :
ssl_organization_name : Ministere Education Nationale (MENESR)
https_port :
check_passwd_min_len_two_type : 9
container_ip_proxy : 127.0.0.1
nom_cache_pere_zone.options_cache_pere_zone : []
nom_cache_pere : []
ignore_expect_100 :
off
eolesso_adresse : 192.168.230.205
activer_dhcprelay : non
[ ... ]
Plus généralement, il est possible d'accéder à toutes les informations décrites dans les dictionnaires comme celles concernant les conteneurs, les services et les tâches programmées.
Liste des conteneurs :
%for %%container in %%creole_client.get_containers()
* %%container['name']
%end for
Liste des services actifs :
%for %%srv in %%creole_client.get_services()
%if %%srv.has_key('activate')
* %%srv['name']
%end if
%end for
%set %%sched = %%creole_client.get('schedule.schedule')
Les tâches programmées sont exécutées à %%{sched['hour']}h%%{sched['minute']}