<?xml version="1.0" encoding="utf-8"?>
<creole>
    <files>

    </files>
    <containers>
    </containers>
    <variables>
        <family name='système'>
            <variable name='partitioning_free_PE' type='number' description='Nombre de blocs disponibles pour une nouvelle partition' mode='expert' hidden='True'/>
            <variable name='allow_manual_partitioning' type='oui/non' description='Permettre le partitionnement manuel' mode='expert' hidden='True'/>

            <variable name='test_extend_standard_partitioning' type='oui/non' description="Tester s'il faut étendre automatiquement le partitionnement EOLE" mode='expert' hidden='True' />

            <variable name='use_eole_standard_volume_extension' type='oui/non' description="Utiliser le modèle d’extension standard EOLE" mode='expert' />
            <variable name='eole_lv_names' type='string' description='Liste des noms de volume logique du partitionnement EOLE standard' multi='True' mode='expert' hidden='True' />
            <variable name='eole_lv_standard_extends' type='number' description='Liste des pourcentages d’espace libre à attribuer aux volumes logiques' multi='True' mode='expert' hidden='True' />
            <variable name='eole_created_lv_names' type='string' description='Liste des noms de volume logique actuellement créés sur le module' multi='True' mode='expert' hidden='True' />

            <variable name='partitioning_create_lv' type='oui/non' description='Ajuster le partitionnement' mode='expert' hidden='True'>
                <value>non</value>
            </variable>
            <variable name='partitioning_lv_name' type='string' description='Nom du volume à créer' mode='expert' multi='True' mandatory='True'/>
            <variable name='partitioning_lv_size' type='number' description='Taille du volume en pourcentage de l’espace disponible' mode='expert' mandatory='True'/>
            <variable name='partitioning_lv_format' type='string' description='Format du système de fichiers' mode='expert'>
                <value>ext4</value>
            </variable>
            <variable name='partitioning_lv_mount_point' type='filename' description='Point de montage du volume logique' mode='expert'/>
            <variable name='partitioning_lv_mount_options' type='string' description='Options du montage' mode='expert'/>
            <variable name='partitioning_lv_extend' type='oui/non' description='Allouer l’espace restant' mode='expert'>
                <value>non</value>
            </variable>
            <variable name='partitioning_lv_to_extend' type='filename' description='Volume logique à étendre' mode='expert' mandatory='True'/>
        </family>
        <separators>
            <separator name='partitioning_free_PE'>Ajustement du partitionnement</separator>
        </separators>
    </variables>
    <constraints>

        <auto name='calc_free_PE' target='partitioning_free_PE'>
            <param type='eole' name='mode_zephir' optional='True'>mode_zephir</param>
        </auto>
        
        <auto name='enable_lv_creation' target='allow_manual_partitioning'>
            <param type='eole' name='mode_zephir' optional='True'>mode_zephir</param>
        </auto>

        <!-- The actual logical volumes on disk -->
        <fill name='get_lv_names' target='eole_created_lv_names'>
            <param type='eole' name='mode_zephir' optional='True'>mode_zephir</param>
        </fill>

        <!-- Provide to the user all the actual logical volumes on disk -->
        <fill name='calc_val' target='partitioning_lv_name'>
            <param type='eole'>eole_created_lv_names</param>
        </fill>

        <fill name='calc_val' target='partitioning_lv_size'>
            <param type='number'>0</param>
        </fill>

        <!-- Can we automatically extend logical volume sizes -->
        <auto name='check_partitioning_auto_extend' target='test_extend_standard_partitioning'>
            <param type='eole' name='expected_lv_names'>eole_lv_names</param>
            <param type='eole' name='created_lv_names'>eole_created_lv_names</param>
            <param type='eole' name='mode_zephir' optional='True'>mode_zephir</param>
        </auto>

        <!--
            Simple double choice:
            1. Use EOLE default extension schema (by default if possible)
            2. Use custom extension

            Avoid cascade of problematic “disabled_if_if” with a fill + frozen
        -->
        <fill name='calc_val' target='use_eole_standard_volume_extension'>
            <param type='eole'>test_extend_standard_partitioning</param>
        </fill>

        <condition name='frozen_if_in' source='test_extend_standard_partitioning'>
            <param>non</param>
            <target>use_eole_standard_volume_extension</target>
        </condition>

        <condition name='disabled_if_in' source='use_eole_standard_volume_extension'>
            <param>oui</param>
            <target>partitioning_create_lv</target>
            <target>partitioning_lv_extend</target>
        </condition>



        <check name='check_free_space' target='partitioning_lv_size' />
        
        <condition name='disabled_if_in' source='allow_manual_partitioning'>
            <param>non</param>
            <target>partitioning_create_lv</target>
            <target>partitioning_lv_extend</target>
        </condition>
        
        <condition name='disabled_if_in' source='partitioning_create_lv'>
            <param>non</param>
            <target>partitioning_lv_name</target>
        </condition>
        
        <condition name='disabled_if_in' source='partitioning_lv_extend'>
            <param>non</param>
            <target>partitioning_lv_to_extend</target>
        </condition>
        
        <check name='is_fs_type' target='partitioning_lv_format'>
            <param type='eole' name='mode_zephir' optional='True'>mode_zephir</param>
        </check>
        
        <check name='is_lv_name' target='partitioning_lv_to_extend'>
            <param type='eole' name='mode_zephir' optional='True'>mode_zephir</param>
        </check>

        <group master='partitioning_lv_name'>
            <slave>partitioning_lv_size</slave>
            <slave>partitioning_lv_format</slave>
            <slave>partitioning_lv_mount_point</slave>
            <slave>partitioning_lv_mount_options</slave>
        </group>
    
    </constraints>
    <help>
        <variable name='allow_manual_partitioning'>Active automatiquement les champs de saisie si le serveur n’est pas encore instancié et que le groupe de volumes dispose de PE libres</variable>
        <variable name='test_extend_standard_partitioning'>Vérifier que le partitionnement est compatible EOLE afin de pouvoir être étendu automatiquement</variable>
        <variable name='use_eole_standard_volume_extension'>L’administrateur souhaite utiliser le modèle de répartition de l’espace standard d’EOLE</variable>
        <variable name='eole_lv_names'>Cette liste est utilisée pour calculer test_extend_standard_partitioning</variable>
        <variable name='eole_lv_standard_extends'>Cette liste fournit le pourcentage d’espace libre à attribuer à chaque volume lors d’un partitionnement EOLE standard</variable>
        <variable name='eole_created_lv_names'>Cette liste est utilisée pour calculer partitioning_lv_name et test_extend_standard_partitioning</variable>
        <variable name='partitioning_create_lv'>Activer les champs de saisie pour la création de volumes logiques ou l’extension de volumes logiques existants</variable>
        <variable name='partitioning_lv_name'>Nom du volume logique LVM à créer dans le groupe de volume par défaut</variable>
        <variable name='partitioning_lv_size'>Taille du volume logique en pourcentage de l’espace disponible</variable>
        <variable name='partitioning_lv_format'>Format de la partition</variable>
        <variable name='partitioning_lv_mount_point'>Point de montage du volume logique</variable>
        <variable name='partitioning_lv_mount_options'>Options du montage</variable>
        <variable name='partitioning_lv_extend'>Allouer l’espace restant à un volume logique existant</variable>
        <variable name='partitioning_lv_to_extend'>Nom du volume logique à étendre avec l’espace restant</variable>
    </help>
</creole>
