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

<creole>

    <files>
        <service servicelist="bareos">bareos-dir</service>
        <service servicelist="bareos">bareos-fd</service>
        <service servicelist="bareos_sd">bareos-sd</service>
        <service_access service='bareos_sd'>
            <port>9103</port>
            <tcpwrapper tcpwrapper_type='SymLinkOption'>bareos_sd_name</tcpwrapper>
        </service_access>
        <service_restriction service='bareos_sd'>
            <ip interface='eth0' ip_type='SymLinkOption'>bareos_sd_remote_ip</ip>
        </service_restriction>
        <file filelist="bareos" name='/etc/bareos/query.sql'/>
        <file filelist="bareos" name='/etc/bareos/include-options.conf'/>
        <file filelist="bareos" name='/etc/bareos/bareos-fd.conf' source='bareos-fd.conf'/>
        <file filelist="bareos_sd" name='/etc/bareos/bareos-sd.conf' source='bareos-sd.conf'/>
        <file filelist="bareos" name='/etc/bareos/bareos-dir.conf' source='bareos-dir.conf'/>
        <file filelist="bareos" name='/etc/sudoers.d/bareos' source='bareos.sudoers' mode="0440" rm='True'/>
        <file filelist="bareos" name='/etc/bareos/bconsole.conf'/>
        <file filelist="bareos" name='/etc/bareos/bareossupport.conf'/>
        <file filelist="bareos" name='/etc/bareos/bareosschedule.conf'/>
        <file filelist="bareos" name='/etc/bareos/bareosschedulepost.conf'/>
        <file filelist="bareos" name='/etc/bareos/bareos-restore.conf'/>
        <file filelist="bareos" name='/etc/bareos/bat.conf'/>
        <file filelist="bareos" name='/etc/bareos/bareos-config-lib.sh' mode="0440" group='bareos'/>
        <file name='/etc/logrotate.d/bareos-common' source='bareos-common.logrotate'/>
    </files>

    <variables>
        <family name='services'>
            <variable name='activer_bareos_dir' type='oui/non' description="Activer la sauvegarde du serveur">
                <value>oui</value>
            </variable>
            <variable name='activer_bareos_sd' type='oui/non' description="Activer le support de stockage de la sauvegarde"/>
        </family>
        <family name='directeur bareos' icon='archive'>
            <variable name='bareos_db_type' type='string' description='Type de la base de données du catalogue' auto_freeze='True' mandatory='True' />
            <variable name='bareos_db_extract_dir' type='filename' description="Répertoire d'extraction de la base de données du catalogue" mode="expert">
                <value>/var/lib/bareos</value>
            </variable>
            <variable name='bareos_db_mysql_password' type='password' description="Mot de passe de la base de données MySQL de la sauvegarde" auto_freeze='True' mandatory="True" mode="expert"/>
            <variable name='bareos_dir_name' type='string' description='Nom du directeur local' auto_freeze='True' mandatory='True'/>

            <!-- configuration de la rétention -->
            <!-- pool Full -->
            <variable name='bareos_full_retention' type='number' description='Période de rétention des sauvegardes complètes' mandatory='True'>
                <value>6</value>
            </variable>
            <variable name='bareos_full_retention_unit' type='string' description='Unité de valeur pour la rétention des sauvegardes complètes'>
                <value>months</value>
            </variable>
            <!-- pool Diff -->
            <variable name='bareos_diff_retention' type='number' description='Période de rétention des sauvegardes différentielles' mandatory='True'>
                <value>5</value>
            </variable>
            <variable name='bareos_diff_retention_unit' type='string' description='Unité de valeur pour la rétention des sauvegardes différentielles'>
                <value>weeks</value>
            </variable>
            <!-- pool Inc -->
            <variable name='bareos_inc_retention' type='number' description='Période de rétention des sauvegardes incrémentales' mandatory='True'>
                <value>10</value>
            </variable>
            <variable name='bareos_inc_retention_unit' type='string' description='Unité de valeur pour la rétention des sauvegardes incrémentales'>
                <value>days</value>
            </variable>

            <!-- Options bareos-dir -->
            <variable name='bareos_max_run_time' type='number' description="Durée maximale pour l'exécution complète d'une sauvegarde (en secondes)" mode="expert">
                <value>86400</value>
            </variable>
            <variable name='bareos_compression' type='string' description='Niveau de compression des sauvegardes' mode="expert">
                <value>GZIP6</value>
            </variable>
            <variable name='bareos_dir_password' type='password' description='Mot de passe du directeur' mode="expert" auto_save='True'/>
            <!-- Ne jamais toucher -->
            <variable name='bareos_fd_password' type='password' description='Mot de passe du serveur de fichiers' hidden='True' auto_save='True'/>

            <!-- Configuration du storage daemon distant -->
            <variable name="bareos_sd_local" type='oui/non' description='Le gestionnaire du stockage est local'/>
            <variable name='bareos_sd_adresse' type='domain' description='Adresse du serveur de stockage distant' mandatory='True'/>
            <variable name='bareos_sd_password' type='password' description='Mot de passe du serveur de stockage distant' mandatory='True' auto_save='True'/>

        </family>
        <family name="stockage bareos" icon='archive'>
            <!-- Configuration du Storage daemon local (sauvegarde sur disque local ou périphérique monté en local) -->
            <variable name='bareos_sd_name' type='string' description='Nom du serveur de stockage' mandatory='True'/>

            <!-- Configuration des Storages daemon distants -->
            <variable name='bareos_sd_remote_dir_name' type='string' description='Nom du directeur Bareos distant' multi='True'/>
            <variable name='bareos_sd_remote_ip' type='domain' description='Adresse IP du directeur distant'/>
            <variable name='bareos_sd_remote_password' type='password' description='Mot de passe Bareos distant'/>

        </family>

        <separators>
            <separator name='bareos_sd_local'>Gestion du stockage</separator>
            <separator name='bareos_sd_remote_dir_name'>Configuration des accès distants au stockage</separator>
        </separators>
    </variables>

    <constraints>
        <check name='valid_enum' target='bareos_db_type'>
            <param>['sqlite3']</param>
        </check>
        <check name='valid_enum' target='bareos_full_retention_unit'>
            <param>['years', 'months', 'weeks', 'days']</param>
        </check>
        <check name='valid_enum' target='bareos_diff_retention_unit'>
            <param>['years', 'months', 'weeks', 'days']</param>
        </check>
        <check name='valid_enum' target='bareos_inc_retention_unit'>
            <param>['years', 'months', 'weeks', 'days']</param>
        </check>
        <check name='valid_enum' target='bareos_compression'>
            <param>['Aucune', 'GZIP1', 'GZIP2', 'GZIP3', 'GZIP4', 'GZIP5', 'GZIP6', 'GZIP7', 'GZIP8', 'GZIP9']</param>
        </check>
        <fill name="auto_copy_val" target="activer_bareos_sd">
            <param type="eole">activer_bareos_dir</param>
        </fill>
        <fill name="concat" target='bareos_dir_name'>
            <param type='eole' name='valeur1'>nom_machine</param>
            <param name='valeur2'>-dir</param>
        </fill>
        <fill name="concat" target='bareos_sd_name'>
            <param type='eole' name='valeur1'>nom_machine</param>
            <param name='valeur2'>-sd</param>
        </fill>

        <group master='bareos_sd_remote_dir_name'>
            <slave>bareos_sd_remote_ip</slave>
            <slave>bareos_sd_remote_password</slave>
        </group>
        <group master='bareos_dir_remote_client_name'>
            <slave>bareos_dir_remote_client_password</slave>
            <slave>bareos_dir_remote_ip</slave>
        </group>

        <condition name='disabled_if_in' source='activer_bareos_dir'>
            <param>non</param>
            <target type='family'>directeur bareos</target>
            <target type='filelist'>bareos</target>
            <target type='servicelist'>bareos</target>
        </condition>
        <condition name='disabled_if_not_in' source='bareos_db_type'>
            <param>mysql</param>
            <target>bareos_db_mysql_password</target>
        </condition>
        <condition name='disabled_if_in' source='activer_bareos_sd'>
            <param>non</param>
            <target type='family'>stockage bareos</target>
            <target type='variable'>bareos_sd_remote_dir_name</target>
            <target type='variable'>bareos_sd_remote_ip</target>
            <target type='filelist'>bareos_sd</target>
            <target type='servicelist'>bareos_sd</target>
        </condition>
        <condition name='frozen_if_in' source='bareos_sd_local'>
            <param>oui</param>
            <target type='variable'>bareos_sd_password</target>
        </condition>
        <condition name='disabled_if_in' source='bareos_sd_local'>
            <param>oui</param>
            <target type='variable'>bareos_sd_adresse</target>
        </condition>

        <fill name='gen_random' target='bareos_db_mysql_password'/>
        <fill name='gen_random' target='bareos_dir_password'/>
        <fill name='gen_random' target='bareos_fd_password'/>
        <!-- <auto name='gen_random' target='bareos_mon_password'/> -->
        <fill name='gen_random' target='bareos_sd_password'/>
        <!-- Si activer_bareos_sd == 'oui' on veut que la valeur par défaut de bareos_sd_local soit aussi 'oui'
             si activer_bareos_sd == 'non', la valeur de bareos_sd_local ne peut être que "non"-->
        <condition name='frozen_if_in' source='activer_bareos_sd'>
            <param>non</param>
            <target type='variable'>bareos_sd_local</target>
        </condition>
        <fill name='calc_val' target='bareos_sd_local'>
            <param type='eole' name='valeur'>activer_bareos_sd</param>
        </fill>
    </constraints>

    <help>
        <family name='Directeur bareos'>Configuration de la sauvegarde du serveur</family>
        <variable name='bareos_dir_name'>Nom identifiant le service bareos-dir</variable>
        <variable name='bareos_full_retention'>Durée pendant laquelle le contenu des sauvegardes complètes est conservé avant écrasement</variable>
        <variable name='bareos_full_retention_unit'>Unité de la durée de rétention pour les sauvegardes complètes</variable>
        <variable name='bareos_diff_retention'>Durée pendant laquelle le contenu des sauvegardes différentielles est conservé avant écrasement</variable>
        <variable name='bareos_diff_retention_unit'>Unité de la durée de rétention pour les sauvegardes différentielles</variable>
        <variable name='bareos_inc_retention'>Durée pendant laquelle le contenu des sauvegardes incrémentales est conservé avant écrasement</variable>
        <variable name='bareos_inc_retention_unit'>Unité de la durée de rétention pour les sauvegardes incrémentales</variable>
        <variable name='bareos_max_run_time'>Spécifie le délai, en secondes, alloué pour l'exécution complète d'un job depuis son lancement (pas nécessairement à l'heure de sa programmation) jusqu'à sa fin (0 pour pas de limite)</variable>
        <variable name='bareos_compression'>Niveau de compression gzip appliqué aux données sauvegardées</variable>
        <variable name='bareos_dir_password'>Mot de passe à transmettre aux applications distantes pour leur permettre de s'authentifier auprès du directeur</variable>
        <variable name='bareos_sd_local'>Choix du service bareos-sd gérant l'écriture des volumes de sauvegardes</variable>
        <variable name='bareos_sd_adresse'>Adresse du service bareos-sd gérant l'écriture des volumes de sauvegardes</variable>
        <variable name='bareos_sd_password'>Mot de passe permettant d'identifier le service bareos-sd du serveur distant (ressource Storage de la configuration du service bareos-dir local)</variable>
        <family name='Stockage bareos'>Configuration du service bareos-sd</family>
        <variable name='bareos_sd_remote_dir_name'>Nom du service bareos-dir du serveur distant à sauvegarder</variable>
        <variable name='bareos_sd_remote_ip'>Adresse du serveur distant à sauvegarder</variable>
        <variable name='bareos_sd_remote_password'>Mot de passe permettant d'identifier le service bareos-dir du serveur distant à sauvegarder (ressource Director de la configuration du service bareos-sd local)</variable>
    </help>

</creole>
<!-- vim: ts=4 sw=4 expandtab
-->
