rougail/doc/fill/examples.md

2.1 KiB

Exemples de calcule

Calculer les noms de modèle à généré à partir d'une variable

Créeons deux variables multiples, une pour accueillir la liste des éléments du nom variable (ici zones_list), la seconde étant le nom du fichier calculé (ici netwokd_configurations) :

<variables>
  <variable name="zones_list" type="string" multi="True">
    <value>zone1</value>
    <value>zone2</value>
    <value>zone3</value>
  </variable>
  <variable name="netwokd_configurations" type="filename" multi="True" hidden="True"/>
</variables>

En YAML :

variables:
- variable:
    name: zones_list
    type: string
    multi: true
    value:
    - text: 'zone1'
    - text: 'zone2'
    - text: 'zone3'
- variable:
    name: netwokd_configurations
    type: filename
    multi: true
    hidden: true

Calculons la valeur de la seconde variable à partir de la première :

<constraints>
  <fill name="calc_value">
    <param>/systemd/network/10-</param>
    <param type="variable">zones_list</param>
    <param>-risotto.network</param>
    <param name="join"></param>
    <param name="multi" type="boolean">True</param>
    <target>netwokd_configurations</target>
  </fill>
</constraints>

En YAML :

constraints:
- fill:
  - name: calc_value
    param:
    - text: /systemd/network/10-
    - type: variable
      text: zones_list
    - text: -risotto.network
    - name: join
    - name: multi
      type: boolean
      text: true
    target:
    - text: netwokd_configurations

Le contenu de la variable netwokd_configurations sera alors :

  • /systemd/netword/10-zone1/risotto.network
  • /systemd/netword/10-zone2/risotto.network
  • /systemd/netword/10-zone3/risotto.network

Enfin déclarer une balise file en utilisant ces deux variables :

<services>
  <service name="systemd-networkd">
    <file file_type="variable" source="network" variable="zones_list">netwokd_configurations</file>
  </service>
</services>

En YAML :

services:
- service:
  - name: systemd-networkd
    file:
    - file_type: variable
      source: network
      variable: zones_list
      text: netwokd_configurations