<?xml version="1.0" encoding="utf-8"?>
<creole>
    <files>
        <service>opennebula-sunstone</service>
        <file filelist='onefrontend' name='/etc/one/sunstone-server.conf'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-logos.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/admin.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/cloud.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/admin_vcenter.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/groupadmin.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/user.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/cloud_vcenter.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/groupadmin_vcenter.yaml'/>
        <file filelist='onefrontend' name='/etc/nginx/sites-available/nebula.conf' source='nginx-nebula.conf'/>
        <file filelist='appmarket' name='/etc/one/sunstone-appmarket.conf' rm='True'/>
        <service_access service='sunstoneHttps'>
            <port>443</port>
        </service_access>
        <service_restriction service='sunstoneHttps'>
            <ip interface='eth0' netmask='netmask_admin_eth0' netmask_type='SymLinkOption' ip_type='SymLinkOption'>ip_admin_eth0</ip>
        </service_restriction>
        <service_access service='sunstone'>
            <port port_type="SymLinkOption">port_sunstone</port>
            <port port_type="SymLinkOption">vnc_proxy_port_sunstone</port>
            <port port_type="SymLinkOption">xmlrpc_port_sunstone</port>
        </service_access>
        <service_restriction service='sunstone'>
            <ip interface='eth0' netmask='netmask_ssh_eth0' netmask_type='SymLinkOption' ip_type='SymLinkOption'>ip_ssh_eth0</ip>
        </service_restriction>
    </files>
    <variables>
        <family name='Annuaire'>
            <variable name='ldap_nss' redefine='True' hidden='True'/>
        </family>
        <family name='Services'>
            <variable name='activer_onefrontend' type='oui/non' description="Activer l'application web OpenNebula Sunstone" mode="expert">
                <value>oui</value>
            </variable>
            <!-- FIXME : variable sans effet depuis la gestion des marketplaces comme ressources #17333 -->
            <variable name='activer_market_place' type='oui/non' description="Activer l'utilisation d'une place de marché distante" mode='expert' hidden='True'>
                <value>non</value>
            </variable>
        </family>
        <family name='Virtualisation'>
            <variable name='sunstone_auth_modes' type='string' description="Modes supplémentaires d'authentification des utilisateurs" mode='expert'/>
            <variable name='port_sunstone' type='number' description="Numéro de port d'écoute" mode="expert" hidden='True'>
                <value>9000</value>
            </variable>
            <variable name='ip_sunstone' type='ip' description="Adresse IP d'écoute" mandatory="True" mode="expert"/>
            <variable name='vnc_proxy_port_sunstone' type='number' description="Numéro de port d'écoute du proxy VNC" mode='expert'>
                 <value>29876</value>
            </variable>
            <variable name='langue_sunstone' type='string' description="Langue par défaut" mode='expert' mandatory="True">
                <value>fr_FR</value>
            </variable>
            <variable name='sunstone_logo' type='string' description="Logo pour l'interface Sunstone" mode='expert'>
                <value>opennebula-sunstone-v4.0.png</value>
            </variable>
            <variable name='activer_xmlrpc_port_sunstone' type='oui/non' description="Activer l'accès distant à l'API XML-RPC" mode='expert' hidden='True'>
                 <value>non</value>
            </variable>
            <!-- le port est là pour bastion, mais on ne peut pas le changer -->
            <variable name='xmlrpc_port_sunstone' type='number' description="Numéro de port d'écoute de l'API XML-RPC" mode='expert' mandatory="True" hidden='True'>
                 <value>2633</value>
            </variable>
            <variable name='market_place_url' type='web_address' description="Adresse de la place de marché distante" mode='expert' mandatory="True">
                <value>http://marketplace.c12g.com/appliance</value>
            </variable>
            <!-- FIXME : variable sans effet depuis la gestion des marketplaces comme ressources #17333 -->
            <variable name='activer_market_views' type='oui/non' description="Activer l'intégration AppMarket dans l'application web OpenNebula Sunstone" mode="expert" hidden='True'>
                <value>non</value>
            </variable>
            <variable name='appmarket_endpoint' type='web_address' description="Adresse du serveur AppMarket" mode='expert' mandatory="True"/>
            <variable name='appmarket_user' type='string' description="Utilisateur d'administration du serveur AppMarket" mode='expert' mandatory="True"/>
            <variable name='appmarket_password' type='string' description="Mot de passe de l'administrateur du serveur AppMarket" mode='expert' mandatory="True"/>
        </family>
            <separators>
                <separator name='sunstone_auth_modes'>Configuration du l'application web OpenNebula Sunstone</separator>
                <separator name='activer_xmlrpc_port_sunstone'>Configuration du service XML-RPC</separator>
                <separator name='market_place_url'>Configuration de la place de marché distante</separator>
            </separators>
    </variables>

    <constraints>
        <fill name='calc_val' target='ip_sunstone'>
            <param type='eole' name='valeur'>adresse_ip_eth0</param>
        </fill>
        <check name='valid_enum' target='sunstone_auth_modes'>
            <param>['', 'ldap']</param>
        </check>

        <auto name='calc_multi_condition' target='activer_client_ldap'>
          <param>ldap</param>
          <param type='eole' name='condition_1'>sunstone_auth_modes</param>
          <param name='match'>distant</param>
          <param name='mismatch'>non</param>
        </auto>

        <condition name='disabled_if_in' source='activer_xmlrpc_port_sunstone'>
            <param>non</param>
            <target type='variable'>xmlrpc_port_sunstone</target>
        </condition>

        <condition name='disabled_if_in' source='activer_onefrontend'>
            <param>non</param>
            <target type='filelist'>onefrontend</target>
            <target type='variable'>port_sunstone</target>
            <target type='variable'>vnc_proxy_port_sunstone</target>
            <target type='variable'>xmlrpc_port_sunstone</target>
            <target type='variable'>ip_sunstone</target>
            <target type='variable'>langue_sunstone</target>
            <target type='variable'>sunstone_logo</target>
        </condition>

        <condition name='disabled_if_in' source='activer_market_views'>
          <param>non</param>
          <target type='variable'>appmarket_endpoint</target>
          <target type='variable'>appmarket_user</target>
          <target type='variable'>appmarket_password</target>
          <target type='filelist'>appmarket</target>
        </condition>

        <condition name='disabled_if_in' source='activer_market_place'>
          <param>non</param>
          <target type='variable'>market_place_url</target>
        </condition>
    </constraints>
    <help>
        <variable name='port_sunstone'>Numéro de port d'écoute d'OpenNebula Sunstone</variable>
        <variable name='vnc_proxy_port_sunstone'>Numéro de port d'écoute du proxy VNC (novnc)</variable>
        <variable name='ip_sunstone'>Adresse IP d'écoute pour OpenNebula Sunstone</variable>
        <variable name='langue_sunstone'>Langue par défaut de l'interface OpenNebula Sunstone</variable>
        <variable name='appmarket_endpoint'>Adresse du serveur appmarket (URL http://serveur.domaine.fr[:port] ou https://xxx.xxx.xxx.xxx[:port])</variable>
        <variable name='appmarket_user'>Utilisateur d'administration du serveur appmarket (déclaré dans la configuration du serveur appmarket)</variable>
        <variable name='appmarket_password'>Mot de passe de l'administrateur du serveur appmarket</variable>
    </help>
</creole>
