<?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/kvm/admin.yaml' source='kvm-admin.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/kvm/cloud.yaml' source='kvm-cloud.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/kvm/groupadmin.yaml' source='kvm-groupadmin.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/kvm/user.yaml' source='kvm-user.yaml'/>

        <file filelist='onefrontend' name='/etc/one/sunstone-views/mixed/admin.yaml' source='mixed-admin.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/mixed/cloud.yaml' source='mixed-cloud.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/mixed/groupadmin.yaml' source='mixed-groupadmin.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/mixed/user.yaml' source='mixed-user.yaml'/>

        <file filelist='onefrontend' name='/etc/one/sunstone-views/vcenter/admin.yaml' source='vcenter-admin.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/vcenter/cloud.yaml' source='vcenter-cloud.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/vcenter/groupadmin.yaml' source='vcenter-groupadmin.yaml'/>
        <file filelist='onefrontend' name='/etc/one/sunstone-views/vcenter/user.yaml' source='vcenter-user.yaml'/>


        <file filelist='onefrontend' name='/etc/nginx/sites-available/nebula.conf' source='nginx-nebula.conf'/>

        <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>
        </family>
        <family name='Virtualisation'>
            <variable name='sunstone_view_mode' type='string' description='Mode d’affichage par défaut des vues' mode='expert'>
                <value>kvm</value>
            </variable>
            <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>
        </family>
            <separators>
                <separator name='sunstone_view_mode'>Configuration du l'application web OpenNebula Sunstone</separator>
                <separator name='activer_xmlrpc_port_sunstone'>Configuration du service XML-RPC</separator>
            </separators>
    </variables>

    <constraints>
        <check name='valid_enum' target='sunstone_view_mode'>
            <param>['kvm', 'mixed', 'vcenter']</param>
        </check>

        <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>

    </constraints>
    <help>
        <variable name='sunstone_view_mode'>Utiliser l’un des types de vues par défaut en fonction de l’hyperviseur</variable>
        <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>
    </help>
</creole>
