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']}