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

    <files/>

    <containers>

        <container name="proxy">
            <service_access service='squid3sibling'>
                <port port_type="SymLinkOption" protocol='udp'>icp_port</port>
            </service_access>
            <service_restriction service='squid3sibling'>
                <ip interface='auto' ip_type='SymLinkOption'>proxy_sibling_ip</ip>
            </service_restriction>
        </container>

    </containers>

    <variables>

        <family name='proxy parent' mode='expert' icon='code-fork'>

            <!-- proxy web parent global -->
            <variable name='activer_cache_pere' type='oui/non' description='Utiliser un proxy web parent global'>
                <value>non</value>
            </variable>
            <variable name='nom_cache_pere' type='domain' description='Adresse du serveur proxy web parent' multi="True" mandatory='True'/>
            <variable name='port_cache_pere' type='port' description='Port du serveur proxy web parent' mandatory='True'/>
            <variable name='port_icp_cache_pere' type='port' description='Port ICP du serveur proxy web parent'>
                <value>3130</value>
            </variable>
            <variable name='options_cache_pere' type='string' description='Options du serveur proxy web parent'>
                <value>no-query</value>
            </variable>
            <variable name='proxy_pere_rvp' type='oui/non' description="Accès aux zones RVP en passant par le serveur proxy web parent global (obsolete)" mode="expert">
                <value>non</value>
            </variable>

            <!-- proxy web parent par zone -->
            <variable name='activer_cache_pere_zone' type='oui/non' description='Utiliser un proxy web parent par zone'>
                <value>non</value>
            </variable>
            <variable name='nom_cache_pere_zone' type='domain' description='Adresse du serveur proxy web parent pour la zone' multi='True' mandatory='True'/>
            <variable name='port_cache_pere_zone' type='port' description='Port du serveur web parent pour la zone' mandatory='True'/>
            <variable name='port_icp_cache_pere_zone' type='port' description='Port ICP du serveur web parent pour la zone'>
                <value>3130</value>
            </variable>
            <variable name='type_nom_zone_dns_cache' type='string' description="Méthode d'utilisation de la zone accessible via ce serveur web parent">
                <value>DNS</value>
            </variable>
            <variable name='nom_zone_dns_cache' type='string' description='Nom DNS ou nom de fichier de la zone accessible via ce serveur web parent' mandatory='True'/>
            <variable name='autoriser_proxy_autres' type='oui/non' description="Autoriser son utilisation par d'autres zones que celle de l'interface 1">
                <value>non</value>
            </variable>
            <variable name='options_cache_pere_zone' type='string' description='Options du serveur proxy web parent'>
                <value>proxy-only no-query</value>
            </variable>

            <!-- coopération des caches -->
            <variable name='activer_proxy_sibling' type='oui/non' description='Activer la coopération des caches'>
                <value>non</value>
            </variable>
            <variable name='proxy_sibling_ip' type='ip' description='Adresse IP du serveur proxy distant' multi="True" mandatory='True'/>
            <variable name='proxy_sibling_port' type='port' description='Port du serveur proxy distant' mandatory='True'/>
        </family>
        <family name='firewall'>
            <variable name='acces_proxy_zone_rvp' type='oui/non' description="Interdire les interfaces autre que 1 à acceder à des réseaux extérieurs" exists="False" hidden="True">
                <value>non</value>
            </variable>
            <variable name='adresse_network_zone_rvp' exists="False" disabled="True" multi="True"/>
            <variable name="forbidden_network_proxy_pere_rvp" type="oui/non" description="Accès au réseau depuis par le serveur proxy parent global"/>
            <variable name="forbidden_network_no_cache" type="oui/non" description="Désactiver le cache du proxy pour les accès à ce réseau">
                <value>oui</value>
            </variable>
        </family>

        <separators>
            <separator name='activer_cache_pere'>Proxy parent global</separator>
            <separator name='activer_cache_pere_zone'>Proxy parent par zone</separator>
            <separator name='activer_proxy_sibling'>Coopération des caches</separator>
        </separators>

    </variables>

    <constraints>

        <!-- proxy web parent global -->
        <group master='nom_cache_pere'>
            <slave>port_cache_pere</slave>
            <slave>port_icp_cache_pere</slave>
            <slave>options_cache_pere</slave>
        </group>
        <condition name='disabled_if_in' source='activer_cache_pere'>
            <param>non</param>
            <target type='variable'>nom_cache_pere</target>
            <target type='variable'>port_cache_pere</target>
            <target type='variable'>port_icp_cache_pere</target>
            <target type='variable'>options_cache_pere</target>
            <target type='variable'>proxy_pere_rvp</target>
            <target type='variable'>forbidden_network_proxy_pere_rvp</target>
        </condition>
        <condition name='disabled_if_in' source='install_rvp' fallback='True'>
            <param>non</param>
            <target type='variable'>proxy_pere_rvp</target>
            <target type='variable'>forbidden_network_proxy_pere_rvp</target>
        </condition>

        <!-- proxy web parent par zone -->
        <check name='valid_enum' target='type_nom_zone_dns_cache'>
            <param>['DNS', 'nom fichier']</param>
        </check>
        <group master='nom_cache_pere_zone'>
            <slave>port_cache_pere_zone</slave>
            <slave>port_icp_cache_pere_zone</slave>
            <slave>type_nom_zone_dns_cache</slave>
            <slave>nom_zone_dns_cache</slave>
            <slave>autoriser_proxy_autres</slave>
            <slave>options_cache_pere_zone</slave>
        </group>
        <condition name='disabled_if_in' source='activer_cache_pere_zone'>
            <param>non</param>
            <target type='variable'>nom_cache_pere_zone</target>
            <target type='variable'>port_cache_pere_zone</target>
            <target type='variable'>port_icp_cache_pere_zone</target>
            <target type='variable'>type_nom_zone_dns_cache</target>
            <target type='variable'>nom_zone_dns_cache</target>
            <target type='variable'>autoriser_proxy_autres</target>
            <target type='variable'>options_cache_pere_zone</target>
        </condition>

        <condition name='disabled_if_in' source='nombre_interfaces'>
            <param>1</param>
            <target type='variable'>autoriser_proxy_autres</target>
        </condition>

        <!-- coopération des caches -->
        <group master='proxy_sibling_ip'>
            <slave>proxy_sibling_port</slave>
        </group>
        <condition name='disabled_if_in' source='activer_proxy_sibling'>
            <param>non</param>
            <target type='variable'>proxy_sibling_ip</target>
            <target type='variable'>proxy_sibling_port</target>
        </condition>

        <fill name="calc_val" target="forbidden_network_proxy_pere_rvp">
            <param type="eole">proxy_pere_rvp</param>
        </fill>
        <group master='adresse_network_zone_rvp'>
            <slave>forbidden_network_proxy_pere_rvp</slave>
            <slave>forbidden_network_no_cache</slave>
        </group>

    </constraints>

    <help>

        <family name='proxy parent'>Configuration du chaînage du proxy</family>
        <variable name='activer_cache_pere'>Déclarer un ou plusieurs serveurs proxy parents qui seront utilisés pour toutes les zones DNS</variable>
        <variable name='options_cache_pere'>Options, séparées par des espaces, ajoutées à la configuration du serveur cache parent (exemple "no-query no-netdb-exchange no-digest"). Attention, l'option "round-robin" est ajoutée automatiquement si plusieurs serveurs père sont définis.</variable>
        <variable name='activer_cache_pere_zone'>Déclarer un ou plusieurs serveurs proxy parents associés à des zones DNS particulières</variable>
        <variable name='type_nom_zone_dns_cache'>Les zones DNS de destination peuvent être soit renseignées directement dans la variable, soit renseignées dans un fichier texte</variable>
        <variable name='options_cache_pere_zone'>Options, séparées par des espaces, ajoutées à la configuration du serveur cache parent de la zone (exemple "no-query no-netdb-exchange no-digest").</variable>
        <variable name='nom_zone_dns_cache'>Le nom DNS commence généralement par un '.' (.example.net)</variable>
        <variable name='activer_proxy_sibling'>Les serveurs frères (siblings) sont des serveurs de cache d'un niveau hiérarchique égal dont le but est de répartir la charge</variable>
    </help>

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