Project

General

Profile

Tâche #20982

Updated by Daniel Dehennin about 7 years ago

Pour reproduire :

* Démarrer *@Ubuntu Xenial English no LVM + context (amd64)@*
* Appliquer la procédure pour basculer le serveur en EOLE (pensez à ajouter le dépôt candidat en attendant que #20938 passe en stable)
* Copier le fichier de configuration *@aca.eolebase@*
* Ajuster l’adresse IP *@CreoleSet adresse_ip_eth0 <IP VUE DANS OPENNEBULA>@*
* Exécuter *@instance@*

Première question :
<pre>
Create new administrator user account eole2? [yes/no]
[non] :
################################################
# Modificating password for user account eole2 #
################################################
New password:
Confirming new password:
Create new administrator user account eole3? [yes/no]
[non] : no
################################################
# Modificating password for user account eole3 #
################################################
New password:
Confirming new password:
Create new administrator user account eole4? [yes/no]
[non] : non
################################################
# Modificating password for user account eole4 #
################################################
New password:
</pre>

Il semble que *@non@* ne corresponde pas à *@yes/no@* ;-)

L’API de *@question_ouinon@* est très étrange :

* Cette fonction permet de poser une question à l’utilisateur avec seulement deux réponses possibles *@oui@* ou *@non@*
* On passe les valeurs par défaut (interactive et non-interactive) en tant que chaîne de caractère
* La fonction renvoi la chaîne de caractère correspondant au choix de l’utilisateur
* L’appelant doit vérifier la chaîne retournée par la fonction par rapport à la chaîne de caratère voulue et agir en conséquence

Par example, dans creole:creole/reconfigure.py@c11808e#639 :

<pre><code class="python">
prompt = _('Create new administrator user account {0}?')
if user != 'eole' and ihm.question_ouinon(prompt.format(user)) == _(u'no'):
break
</code></pre>

Nous pourrions définir une nouvelle fonction :

* Utilisation des booléens natifs à python *@True@* et *@False@*
* Retourne un booléen
** *@True@* l’utilisateur à choisi *@oui/yes@*
** *@False@* l’utilisateur à choisi *@non/false@*

<pre><code class="python">
def prompt_boolean(prompt, interactive=True, default=False, default_interactive=None, level='info'):
"""Prompt the user and return her choice

:param `str` prompt: prompt string to display to the user
:param `bool` interactive: I don't know what's for
:param `bool` default: default value
:param `bool` default_interactive: default value if interactive is ``True``
:param `str` level: log level

"""
...
</code></pre>

Cela permettrait de remplacer le code reconfigure par :

<pre><code class="python">
prompt = _('Create new administrator user account {0}?')
if user != 'eole' and not ihm.prompt_boolean(prompt.format(user)):
break
</code></pre>

Back