Project

General

Profile

Tâche #20982

Scénario #20669: Pouvoir transformer un VPS xenial en anglais en Eolebase

L’utilitaire « question_ouinon » ne fonctionne pas en anglais

Added by Daniel Dehennin about 3 years ago. Updated about 3 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
06/29/2017
Due date:
% Done:

100%

Estimated time:
6.00 h
Spent time:
Remaining (hours):
0.0

Description

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 :

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: 

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 :

            prompt = _('Create new administrator user account {0}?')
            if user != 'eole' and ihm.question_ouinon(prompt.format(user)) == _(u'no'):
                break

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

    """ 
    ...

Cela permettrait de remplacer le code reconfigure par :

            prompt = _('Create new administrator user account {0}?')
            if user != 'eole' and not ihm.prompt_boolean(prompt.format(user)):
                break

L’ancienne fonction serait notée deprecated.

J’ai trouvé 25 appels à question_ouinon (shell et python) dans les dépôts EOLE, aucun dans les dépôts MTES et Envole:

./arv/posttemplate/00-arv:        if question_ouinon(question, level='warn') == 'oui':
./conf-sphynx/scripts/init_sphynx:    if question_ouinon(question, level='warn') == 'non':
./conf-sphynx/scripts/init_sphynx:        if question_ouinon(question, level='warn') == 'non':
./conf-sphynx/scripts/init_sphynx:        if question_ouinon(question, level='warn') == 'oui':
./creole/bin/Maj-Auto:                    assert question_ouinon(_(u"Do you wish to proceed?")) == 'oui'
./creole/creole/reconfigure.py:            if ihm.question_ouinon(_(u"Proceeding with instantiation ?"),
./creole/creole/reconfigure.py:        if ihm.question_ouinon(_(u"Force execution?"),
./creole/creole/reconfigure.py:            if user != 'eole' and ihm.question_ouinon(prompt.format(user)) == _(u'no'):
./creole/creole/reconfigure.py:        if ihm.question_ouinon(_(u"""An update is recommended.
./creole/creole/reconfigure.py:            if ihm.question_ouinon(_(u"""Reboot is necessary.
./creole/upgrade/Upgrade-Auto:        if question_ouinon(confirmation_msg.format(args.release)) != 'oui':
./eole-password/bin/eolepasswd:    res = ihm.question_ouinon(question, interactive=True, default='non')
./eole-vpn/scripts/active_rvp:                rep = question_ouinon("configurer en mode manuel", default='non')
./eole-vpn/scripts/active_rvp:        rep = question_ouinon("Etes-vous certain de vouloir désactiver le VPN ?", default='non')
./eolesql/scripts/mysql_pwd.py:        if question_ouinon('\nVoulez-vous que les autres mots de passe soient modifiés ?') == 'non':
./python-pyeole/pyeole/ihm.py:def question_ouinon(question, interactive=True, default='non',
./python-pyeole/pyeole/ihm.py:        raise ValueError(_(u'question_ouinon : default must be "yes" or "no"'))
./python-pyeole/pyeole/ihm.py:        raise ValueError(_(u'question_ouinon : default must be "yes" or "no"'))
./python-pyeole/pyeole/ihm.py:        raise ValueError(_(u'question_ouinon : level must be "info", "warn" or "err"'))
./scribe-backend/scripts/suppression_utilisateur.py:    sup_rep = question_ouinon("Voulez-vous supprimer les répertoires personnels ?") == 'oui'
./scribe-backend/scripts/suppression_utilisateur.py:    confirm = question_ouinon(msg.format(','.join(liste_users))) == 'oui'
./eole-annuaire/scripts/active_replication.py:    elif question_ouinon("Utiliser le protole ldaps (port 636) pour la réplication", default='oui') == 'oui':
./eole-annuaire/scripts/active_replication.py:if question_ouinon("Répliquer également les groupes", 'non') == 'oui':
./eole-annuaire/scripts/active_replication.py:if question_ouinon("Ajouter des uid à exclure de la réplication", 'non') == 'oui':
./eole-common/sbin/gen_conteneurs:                if ihm.question_ouinon(question) == 'oui':

Related issues

Related to eole-annuaire - Scénario #21936: Réplication LDAP "manuelle" - le script active_replication.py devrait poser plus de questions - 2.6.2beta5 Terminé (Sprint) 11/13/2017 12/01/2017

Associated revisions

Revision 75219121 (diff)
Added by Benjamin Bohard about 3 years ago

Simplifier l’interprétation des réponses de l’utilisateur.

Ref #20982

Revision b38d299b
Added by Benjamin Bohard about 3 years ago

Merge branch '2.6.2/20982-question_ouinon'

Revision b906614f (diff)
Added by Benjamin Bohard about 3 years ago

Rendre internationalisable la fonction de validation des actions (question_ouinon).

Ref #20982

Revision 26f89b3f (diff)
Added by Benjamin Bohard about 3 years ago

Construire la liste des alternatives en s’assurant de l’ordre des éléments.

Ref #20982

Revision 01cac81d (diff)
Added by Benjamin Bohard about 3 years ago

Mettre à jour la traduction des invites de commandes.

Ref #20982

History

#1 Updated by Daniel Dehennin about 3 years ago

  • Description updated (diff)

#2 Updated by Daniel Dehennin about 3 years ago

  • Description updated (diff)
  • Estimated time changed from 2.00 h to 6.00 h
  • Remaining (hours) changed from 2.0 to 6.0

#3 Updated by Daniel Dehennin about 3 years ago

  • Description updated (diff)

#4 Updated by Daniel Dehennin about 3 years ago

  • Subject changed from L’utilitaire « question_oui_non » ne fonctionne pas en anglais to L’utilitaire « question_ouinon » ne fonctionne pas en anglais

#5 Updated by Daniel Dehennin about 3 years ago

  • Parent task deleted (#20669)

#6 Updated by Daniel Dehennin about 3 years ago

  • Blocks Scénario #20669: Pouvoir transformer un VPS xenial en anglais en Eolebase added

#7 Updated by Scrum Master about 3 years ago

  • Blocks deleted (Scénario #20669: Pouvoir transformer un VPS xenial en anglais en Eolebase)

#8 Updated by Scrum Master about 3 years ago

  • Status changed from Nouveau to En cours
  • Assigned To set to Benjamin Bohard
  • Parent task set to #20669

#9 Updated by Benjamin Bohard about 3 years ago

  • % Done changed from 0 to 80
  • Remaining (hours) changed from 6.0 to 2.0

Test en anglais, français sur eolebase et en français sur sphynx (pour le postemplate 00-arv).

Pas de modification du script bash.

#10 Updated by Benjamin Bohard about 3 years ago

  • Status changed from En cours to Résolu

#11 Updated by Daniel Dehennin about 3 years ago

  • Description updated (diff)
  • Remaining (hours) changed from 2.0 to 0.0

#12 Updated by Daniel Dehennin about 3 years ago

  • % Done changed from 80 to 100

Cela fonctionne mieux après compilation du paquet creole qui contenait le code nécessaire.

#13 Updated by Scrum Master about 3 years ago

  • Status changed from Résolu to Fermé

#14 Updated by Gérald Schwartzmann over 2 years ago

  • Related to Scénario #21936: Réplication LDAP "manuelle" - le script active_replication.py devrait poser plus de questions - 2.6.2beta5 added

#15 Updated by Daniel Dehennin over 2 years ago

  • Related to Scénario #21936: Réplication LDAP "manuelle" - le script active_replication.py devrait poser plus de questions - 2.6.2beta5 added

#16 Updated by Daniel Dehennin over 2 years ago

  • Related to deleted (Scénario #21936: Réplication LDAP "manuelle" - le script active_replication.py devrait poser plus de questions - 2.6.2beta5)

Also available in: Atom PDF