diff --git a/doc/README.md b/doc/README.md
index 293f91b9..30b7b505 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -19,6 +19,8 @@ Les familles et les variables peuvent être défini dans plusieurs dictionnaires
Il est également possible de redéfinir des éléments pour changer les comportement d'une variable ou d'un service.
+FIXME expliquer les noms des variables dans les extras
+
### Les variables
- [Les familles](family/README.md)
@@ -36,6 +38,7 @@ Il est également possible de redéfinir des éléments pour changer les comport
- [Les calcules automatiques](fill/README.md)
- [Les vérifications des valeurs](check/README.md)
- [Les conditions](condition/README.md)
+ - [Les variables meneuses ou suiveuses](variable/leadership.md)
## Les templates
diff --git a/doc/check/README.md b/doc/check/README.md
index 64ca66d3..6dd671bd 100644
--- a/doc/check/README.md
+++ b/doc/check/README.md
@@ -1,10 +1,4 @@
# Les vérifications des valeurs
- [Fonction de vérification](function.md)
- - [Cible de la fonction](../target/variable.md)
- - [Paramètre de la fonction](../param/README.md)
- [Réfinition](redefine.md)
-
-FIXME
-
-
diff --git a/doc/check/function.md b/doc/check/function.md
index 3f618490..f293f633 100644
--- a/doc/check/function.md
+++ b/doc/check/function.md
@@ -1,124 +1,53 @@
-# Valeur calculée de la variable
+# Fonction de vérification
-## Variable avec une valeur par défaut calculée
+## Vérification stricte des valeurs
-Créons une variable dont la valeur est retournée par la fonction "return_no" :
+Une fonction de vérification est une fonction complémentaire au type qui permet de valider plus précisement le contenu d'une variable.
+
+Voici un exemple simple de validation des valeurs :
```
-
-
-
+
-
- my_calculated_variable
-
+
+ my_variable
+
```
-Puis créons la fonction "return_no" :
+La [cible (de type variable)](../target/variable.md) de la fonction de vérification est ici "my_variable".
+
+Dans cette exemple, la valeur de la variable "my_variable" va être validé par la fonction islower.
+
+Voici le contenu de la fonction :
```
-def return_no():
- return 'no'
+def islower(value):
+ if value is None:
+ return
+ if not value.islower():
+ raise ValueError(f'"{value}" is not lowercase string')
```
-La [cible](../target/variable.md) du calcul est ici "my_calculated_variable".
+Une fonction de vérification doit prendre en compte 2 aspects important :
-Dans ce cas, la valeur par défaut est la valeur retournée par la fonction (ici "no"), elle sera calculée tant que l'utilisateur n'a pas de spécifié une valeur à cette variable.
+- la valeur peut ne pas être renseigné (même si la variable est obligatoire), la valeur None doit être prise en compte
+- si la valeur est invalide, il faut faire un raise de type ValueError avec, si possible, un message explicite.
-Attention, si une valeur par défaut est définit dans la variable "my_calculated_variable" :
+À partir de maintenant seule None et des valeurs en minuscule seront autorisés.
+
+## Vérification des valeurs avec avertissement
+
+Dans la contrainte, il est possible de spécifier le niveau d'erreur et le mettre en avertissement :
```
-
- yes
-
+
+ my_variable
+
```
-Cette valeur par défaut sera complètement ignorée. C'est le calcul qui en définira la valeur.
+
+Dans ce cas une valeur avec une majuscule sera accepté, mais un message d'avertissement apparaitra.
Il est possible de définir des [paramètres](../param/README.md) à cette fonction.
-
-## Variable avec une valeur calculée
-
-En ajoutant le paramètre "hidden" à "True" dans la variable précédente, l'utilisateur n'aura plus la possibilité de modifié la valeur. La valeur de la variable sera donc systématiquement calculée :
-
-```
-
-```
-
-Si une condition "hidden_if_in" est spécifié à la variable, la valeur sera modifiable par l'utilisateur si elle n'est pas cachée mais elle sera systèmatiquement calculée (même si elle a déjà était modifiée) si la variable est cachée.
-
-## Variable meneuse ou suiveuse avec valeur calculé
-
-Une [variable suiveuse](../variable/leadership.md) ne peut pas être calculé automatiquement.
-Une [variable meneuse](../variable/leadership.md) peut être calculé automatiquement.
-Si la variable n'est pas multiple, il ne faut pas que le calcule retourne une liste.
-
-## Variable dynamique avec une valeur calculée
-
-Il est également possible de calculer [une variable d'une famille dynamique](../family/auto.md) à partir d'une variable standard :
-
-```
-
-
-
- val1
- val2
-
-
- val
-
-
-
-
- val
-
-
-
-
-
- my_variable
- my_calculated_variable_dyn_
-
-
-```
-
-Dans ce cas, les variables dynamiques "my_calculated_variable_dyn_" seront calculés à partir de la valeur de la variable "my_variable".
-Que cela soit pour la variable "my_calculated_variable_dyn_val1" et "my_calculated_variable_dyn_val2".
-
-Par contre, il n'est pas possible de faire un calcul pour une seule des deux variables issues de la variable dynamique.
-Si c'est ce que vous cherchez à faire, il faudra prévoir un traitement particulier dans votre fonction.
-
-Dans ce cas, il faut explicitement demander la valeur du suffix dans la fonction :
-
-```
-
-
- my_variable
-
- my_calculated_variable_dyn_
-
-
-```
-
-Et ainsi faire un traitement spécifique pour ce suffix :
-
-```
-def return_value_suffix(value, suffix):
- if suffix == 'val1':
- return value
-```
-
-## Variable avec valeur calculée obligatoire
-
-Par défaut les variables calculées ne sont pas des variables obligatoires.
-Dans ce cas un calcul peut retourner "None" ou "", mais surtout un utilisateur peut spécifier une valeur nulle à cette variable. Dans ce cas le calcul ne sera plus réalisé.
-
-
-
-
-
-
-
-
diff --git a/doc/check/redefine.md b/doc/check/redefine.md
new file mode 100644
index 00000000..bb8914ce
--- /dev/null
+++ b/doc/check/redefine.md
@@ -0,0 +1,61 @@
+# Rédéfinition
+
+## Redéfinition des vérification
+
+Dans un premier dictionnaire déclarons notre variable et sa fonction de vérification :
+
+```
+
+
+
+
+
+ my_variable
+
+
+```
+
+Dans un second dictionnaire il est possible de redéfinir le calcul :
+
+```
+
+
+
+
+
+ my_variable
+
+
+```
+
+Dans ce cas, la fonction "islower" exécuté. Si cette fonction ne retourne pas d'erreur, la seconde fonction "isspace" sera exécuté.
+
+## Redéfinition avec suppression d'un calcul
+
+Il se peut que dans un dictionnaire on décide de vérifier la valeur d'une variable.
+
+Dans un second dictionnaire il est possible de supprimer cette vérification.
+
+Dans un premier dictionnaire déclarons notre variable et notre fonction de vérification :
+
+```
+
+
+
+
+
+ my_variable
+
+
+```
+
+Dans un second dictionnaire supprimer cette vérification :
+
+```
+
+
+
+
+
+```
+
diff --git a/doc/fill/README.md b/doc/fill/README.md
index ea20a1df..624b14fe 100644
--- a/doc/fill/README.md
+++ b/doc/fill/README.md
@@ -3,6 +3,4 @@
Une variable calculée est une variable donc sa valeur est le résultat d'une fonction python.
- [Valeur calculée de la variable](value.md)
- - [Cible de la fonction](../target/variable.md)
- - [Paramètre de la fonction](../param/README.md)
- [Réfinition](redefine.md)
diff --git a/doc/fill/redefine.md b/doc/fill/redefine.md
index 95f2bf03..5cdb82fe 100644
--- a/doc/fill/redefine.md
+++ b/doc/fill/redefine.md
@@ -6,9 +6,7 @@ Dans un premier dictionnaire déclarons notre variable et notre calcule :
```
-
-
-
+
@@ -21,9 +19,7 @@ Dans un second dictionnaire il est possible de redéfinir le calcul :
```
-
-
-
+
@@ -44,9 +40,7 @@ Dans un premier dictionnaire déclarons notre variable et notre calcule :
```
-
-
-
+
@@ -59,8 +53,6 @@ Dans un second dictionnaire supprimer ce calcul :
```
-
-
-
+
```
diff --git a/doc/fill/value.md b/doc/fill/value.md
index 7a4b7dfb..d1efaa72 100644
--- a/doc/fill/value.md
+++ b/doc/fill/value.md
@@ -6,9 +6,7 @@ Créons une variable dont la valeur est retournée par la fonction "return_no" :
```
-
-
-
+
@@ -24,9 +22,9 @@ def return_no():
return 'no'
```
-La [cible](../target/variable.md) du calcul est ici "my_calculated_variable".
+La [cible (de type variable)](../target/variable.md) du calcul est ici "my_calculated_variable".
-Dans ce cas, la valeur par défaut est la valeur retournée par la fonction (ici "no"), elle sera calculée tant que l'utilisateur n'a pas de spécifié une valeur à cette variable.
+Dans ce cas, la valeur par défaut est la valeur retournée par la fonction (ici "no"), elle sera calculée tant que l'utilisateur n'a pas de spécifié de valeur à cette variable.
Attention, si une valeur par défaut est définit dans la variable "my_calculated_variable" :
@@ -61,17 +59,15 @@ Il est également possible de calculer [une variable d'une famille dynamique](..
```
-
-
- val1
- val2
-
-
- val
-
-
+
+ val1
+ val2
+
+
+ val
+
-
+
val
@@ -114,4 +110,3 @@ def return_value_suffix(value, suffix):
Par défaut les variables calculées ne sont pas des variables obligatoires.
Dans ce cas un calcul peut retourner "None" ou "", mais surtout un utilisateur peut spécifier une valeur nulle à cette variable. Dans ce cas le calcul ne sera plus réalisé.
-
diff --git a/doc/param/positional.md b/doc/param/positional.md
index a7f8b2c9..77f3a98c 100644
--- a/doc/param/positional.md
+++ b/doc/param/positional.md
@@ -13,7 +13,7 @@ def return_value(value):
return value
```
-La variable aura donc "no" comme valeur puisque le paramètre aura la valeur fixe "no".
+La variable "value" de la fonction "return_value" aura donc "no" comme valeur puisque le paramètre aura la valeur fixe "no".
# Paramètre nommée
diff --git a/doc/param/simple.md b/doc/param/simple.md
index ce95766d..6e060e14 100644
--- a/doc/param/simple.md
+++ b/doc/param/simple.md
@@ -1,12 +1,11 @@
# Paramètre de type "texte"
-Dans l'exemple précédent :
+Déclarons un paramètre avec une string :
```
no
```
-Le paramètre est de type texte (ou "string").
C'est le type par défaut pour un paramètre.
# Paramètre de type "nombre"
@@ -28,6 +27,14 @@ def return_value_with_number(value):
La variable aura donc "no" comme valeur puisque le paramètre aura la valeur fixe "1".
+# Paramètre de type "booléen"
+
+Déclarons un paramètre avec un booléen :
+
+```
+True
+```
+
# Paramètre de type "nil"
Le paramètre peut être une valeur null (None en python) :
diff --git a/doc/param/variable.md b/doc/param/variable.md
index 2fa5b13c..1b4062fe 100644
--- a/doc/param/variable.md
+++ b/doc/param/variable.md
@@ -6,7 +6,7 @@ Imaginons que la variable "my_variable" pré-existe. La valeur de la variable se
my_variable
```
-[Les variables meneuses ou suiveuses](../variable/leadership.md) peuvent être utilisé sans soucis commme paramètre.
+[Les variables meneuses ou suiveuses](../variable/leadership.md) peuvent être utilisé sans soucis comme paramètre.
## Paramètre avec variable potentiellement non existante
diff --git a/doc/service/file.md b/doc/service/file.md
index 55369f80..7ee4072e 100644
--- a/doc/service/file.md
+++ b/doc/service/file.md
@@ -4,7 +4,7 @@
La gestion des fichiers se fait dans un conteneur de [service](service.md).
-La déclaration du fichier met de générer un fichier à partir d'un template pour le déposer à l'endroit prévu dans la déclaration de cette élément.
+La déclaration du fichier permet de générer un fichier à partir d'un template pour le déposer à l'endroit prévu dans la déclaration de cette élément.
Il est nécessaire, au minimum, de spécifier le chemin complet du fichier :
@@ -16,7 +16,7 @@ Il est nécessaire, au minimum, de spécifier le chemin complet du fichier :
```
-Dans ce cas, le nom du template est déduit du nom du fichier, ici ca sera "squid.conf".
+Dans ce cas, le nom du template est déduit du nom du fichier, ici cela sera "squid.conf".
Si le template a un nom différent (par exemple si plusieurs template se retrouve avec le même nom), il est possible de changer le nom du template avec l'attribut source :
@@ -43,7 +43,7 @@ Il est possible également de définir le nom du fichier dans une variable :
Dans le cas des fichiers dynamique, la source est obligatoire.
-Et même de définir une variable de type multiple, ce qui génèrera plusiers fichiers :
+Il est même possible de définir une variable de type multiple, ce qui génèrera plusiers fichiers :
```
@@ -95,6 +95,8 @@ Attention : les deux variables "my_variable1" et "my_variable2" doivent être mu
Par défaut les droits du fichier généré sont "0644" avec comme utilisateur "root" et groupe "root".
+Il est possible de définir une autre valeur à un ou plusieurs de ces attributs :
+
```
```
diff --git a/doc/variable/leadership.md b/doc/variable/leadership.md
index 56930bd4..f8a98c2b 100644
--- a/doc/variable/leadership.md
+++ b/doc/variable/leadership.md
@@ -2,6 +2,8 @@
## Variable meneuse
+Une variable meneuse est une variable qui va guider la longueur d'autre variables (appelé variables suiveuse).
+
Une variable meneuse est une [variable](simple.md) qui est obligatoirement de type multiple.
Une variable meneuse peut être obligatoire.
diff --git a/doc/variable/simple.md b/doc/variable/simple.md
index 98df5cf2..d74eaf15 100644
--- a/doc/variable/simple.md
+++ b/doc/variable/simple.md
@@ -182,7 +182,7 @@ Parfois on veut pouvoir redéfinir une variable mais seulement dans le cas où e
## Variable à valeur automatiquement modifiée
-Une variable avec valeur automatiquement modifiée est une variable dont la valeur sera considéré comme modifié quand le serveur sera déployé.
+Une variable avec valeur automatiquement modifiée est une variable dont la valeur sera considéré comme modifié quand la propriété global "force_store_value" de Tiramisu est mise.
Voici une variable a valeur automatiquement modifiée :
@@ -201,18 +201,21 @@ Une [variable meneuse ou suiveuse](leadership.md) ne peut pas avoir la propriét
## Variable à valeur en lecture seule automatique
-Une variable avec valeur en lecture seule automatique est une variable dont la valeur ne sera plus modifiable par l'utilisateur quand le serveur sera déployé.
+Une variable avec valeur en lecture seule automatique est une variable dont la valeur ne sera plus modifiable par l'utilisateur quand la [variable "instanciated_module" passe à "True"](../dev/config.md).
Voici un variable à valeur en lecture seule automatique :
```
+
+ False
+
```
Dans ce cas la valeur est fixée à la valeur actuelle et elle ne sera plus modifiable par l'utilisateur.
Par exemple, si la valeur de cette variable est issue d'un calcul, la valeur ne sera plus recalculée.
-Ces variables sont généralement des variables obligatoires. En effet ces variable ne sont en lecteur seul que si elles sont une valeurs.
+Ces variables sont généralement des variables obligatoires. En effet ces variable ne sont en lecteur seul que si elles ont une valeurs.
Une [variable meneuse ou suiveuse](leadership.md) ne peut pas avoir la propriété auto_freeze.