Projet

Général

Profil

Tâche #17571

Scénario #17459: Implémenter Upgrade-Auto 2.5.2 => 2.6.0

Étude sur la réutilisation du code précédent

Ajouté par Benjamin Bohard il y a plus de 7 ans. Mis à jour il y a plus de 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
17/10/2016
Echéance:
% réalisé:

100%

Temps estimé:
5.00 h
Temps passé:
Restant à faire (heures):
0.0

Description

Compte-tenu des changements de version (python 3) et de classes/API disponibles, le code précédent ne peut pas être réutilisé tel quel.
Faire les tests nécessaires pour décider si on adapte le code utilisant les outils d’Ubuntu ou si on s’en passe.

Révisions associées

Révision 349c5965
Ajouté par Daniel Dehennin il y a plus de 7 ans

Merge '2.4.2/master' into 2.5.2/master

Conflicts:
bin/Maj-Auto
bin/Upgrade-Auto: supprimé dans les versions récentes

Ref: #17571 @1h

Révision b92d54f5 (diff)
Ajouté par Joël Cuissinat il y a plus de 7 ans

Mise à jour des imports UpdateManager

Ref: #17571 @15m

Révision d21a45f2 (diff)
Ajouté par Joël Cuissinat il y a plus de 7 ans

Copier les liens symboliques en tant que tel

Ref: #17571 @15m

Révision 01dc0252 (diff)
Ajouté par Joël Cuissinat il y a plus de 7 ans

Adaptation suite à modif API pyeole.pkg

Ref: #17571 @10m

Historique

#1 Mis à jour par Benjamin Bohard il y a plus de 7 ans

  • Temps estimé mis à 5.00 h
  • Restant à faire (heures) mis à 5.0

#2 Mis à jour par Joël Cuissinat il y a plus de 7 ans

  • Statut changé de Nouveau à En cours

#3 Mis à jour par Joël Cuissinat il y a plus de 7 ans

  • Sujet changé de Étude sur la réutilisation du code précédent à Étude sur la réutilisation du code précédent
  • Assigné à mis à Joël Cuissinat

#4 Mis à jour par Joël Cuissinat il y a plus de 7 ans

Mise en place de l'infra de test :
  • aca.eolebase-2.5.2.1-instance-default
    touch /etc/eole/.upgrade_available
    ln -nsf /usr/lib/python3/dist-packages/UpdateManager /usr/share/eole/upgrade/UpdateManager
    ln -nsf /usr/lib/python3/dist-packages/DistUpgrade /usr/share/eole/upgrade/DistUpgrade
    
  • import à modifier dans /usr/share/eole/upgrade/Upgrade-Auto :
    from UpdateManager.Core.DistUpgradeFetcherCore import DistUpgradeFetcherCore
    
    par :
    from DistUpgrade.DistUpgradeFetcherCore import DistUpgradeFetcherCore
    
Upgrade-Auto --limit-rate 0
Traceback (most recent call last):
  File "/usr/share/eole/upgrade/Upgrade-Auto", line 597, in <module>
    main()
  File "/usr/share/eole/upgrade/Upgrade-Auto", line 549, in main
    copytree(UPGRADE_DIR, tmp_dir)
  File "/usr/lib/python2.7/shutil.py", line 208, in copytree
    raise Error, errors
shutil.Error: [('/usr/share/eole/upgrade/DistUpgrade/NvidiaDetector', '/tmp/Upgrade-Auto/DistUpgrade/NvidiaDetector', "[Errno 2] Aucun fichier ou dossier de ce type: '/usr/share/eole/upgrade/DistUpgrade/NvidiaDetector'")]

=> copier les liens symboliques en tant que tel : shutil.copytree(src, dst, symlinks=False).
Traceback (most recent call last):
  File "/usr/share/eole/upgrade/Upgrade-Auto", line 597, in <module>
    main()
  File "/usr/share/eole/upgrade/Upgrade-Auto", line 566, in main
    _configure_sources_mirror(PKGMGR.pkgmgr, eole_release=args.release)
TypeError: _configure_sources_mirror() got an unexpected keyword argument 'eole_release'

=> l'argument est renommé en release
Une erreur est survenue : Impossible d'installer « eole-eolebase-all » L'installation d'un paquet requis était impossible. Veuillez signaler ce bogue en utilisant la commande « ubuntu-bug ubuntu-release-upgrader-core » dans un terminal. (None)

=> heu... on me dit d'aller voir du côté de eole-common : tmpl/eole.cfg

Sur un Upgrade 2.4.2 => 2.5.2, on retrouve bien ce message dans les fichiers : /var/log/dist-upgrade/apt.log et /var/log/dist-upgrade/main.log (NB : les citer dans la doc) mais le code ne s'arrête pas !

#5 Mis à jour par Joël Cuissinat il y a plus de 7 ans

  • % réalisé changé de 0 à 30
  • Restant à faire (heures) changé de 5.0 à 3.0

#6 Mis à jour par Joël Cuissinat il y a plus de 7 ans

La procédure se solde par une erreur "UnicodeDecodeError", je suppose que c'est à cause de python2 :

Vous pouvez lancer « apt-get update » pour corriger ces problèmes.
Extraction des modTraceback (most recent call last):
  File "/tmp/ubuntu-release-upgrader-E6U0cm/xenial", line 8, in <module>
    sys.exit(main())
  File "/tmp/ubuntu-release-upgrader-E6U0cm/DistUpgrade/DistUpgradeMain.py", line 242, in main
    if app.run():
  File "/tmp/ubuntu-release-upgrader-E6U0cm/DistUpgrade/DistUpgradeController.py", line 1876, in run
    return self.fullUpgrade()
  File "/tmp/ubuntu-release-upgrader-E6U0cm/DistUpgrade/DistUpgradeController.py", line 1841, in fullUpgrade
    if not self.doDistUpgrade():
  File "/tmp/ubuntu-release-upgrader-E6U0cm/DistUpgrade/DistUpgradeController.py", line 1182, in doDistUpgrade
    res = self.cache.commit(fprogress,iprogress)
  File "/tmp/ubuntu-release-upgrader-E6U0cm/DistUpgrade/DistUpgradeCache.py", line 267, in commit
    apt.Cache.commit(self, fprogress, iprogress)
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 501, in commit
    res = self.install_archives(pm, install_progress)
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 465, in install_archives
    res = install_progress.run(pm)
  File "/tmp/ubuntu-release-upgrader-E6U0cm/DistUpgrade/DistUpgradeView.py", line 234, in run
    res = os.WEXITSTATUS(self.wait_child())
  File "/tmp/ubuntu-release-upgrader-E6U0cm/DistUpgrade/DistUpgradeView.py", line 200, in wait_child
    self.update_interface()
  File "/tmp/ubuntu-release-upgrader-E6U0cm/DistUpgrade/DistUpgradeViewNonInteractive.py", line 229, in update_interface
    sys.stdout.write("%s" % s.decode(locale.getpreferredencoding()))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: unexpected end of data

#7 Mis à jour par Joël Cuissinat il y a plus de 7 ans

  • Restant à faire (heures) changé de 3.0 à 1.0

#8 Mis à jour par Joël Cuissinat il y a plus de 7 ans

  • % réalisé changé de 30 à 50

Je bute sur cette dernière erreur qui n'est en fait pas du tout liée à python mais plutôt à Ubuntu : https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/1604160 :(

#9 Mis à jour par Joël Cuissinat il y a plus de 7 ans

  • Statut changé de En cours à Fermé
  • % réalisé changé de 50 à 100
  • Restant à faire (heures) changé de 1.0 à 0.0

Étude réalisée, report des choses à faire dans le scénario #17739

Formats disponibles : Atom PDF