Project

General

Profile

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

Added by Benjamin Bohard over 3 years ago. Updated over 3 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
10/17/2016
Due date:
% Done:

100%

Estimated time:
5.00 h
Spent time:
Remaining (hours):
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.

Associated revisions

Revision 349c5965
Added by Daniel Dehennin over 3 years ago

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

Revision b92d54f5 (diff)
Added by Joël Cuissinat over 3 years ago

Mise à jour des imports UpdateManager

Ref: #17571 @15m

Revision d21a45f2 (diff)
Added by Joël Cuissinat over 3 years ago

Copier les liens symboliques en tant que tel

Ref: #17571 @15m

Revision 01dc0252 (diff)
Added by Joël Cuissinat over 3 years ago

Adaptation suite à modif API pyeole.pkg

Ref: #17571 @10m

History

#1 Updated by Benjamin Bohard over 3 years ago

  • Estimated time set to 5.00 h
  • Remaining (hours) set to 5.0

#2 Updated by Joël Cuissinat over 3 years ago

  • Status changed from Nouveau to En cours

#3 Updated by Joël Cuissinat over 3 years ago

  • Subject changed from Étude sur la réutilisation du code précédent to Étude sur la réutilisation du code précédent
  • Assigned To set to Joël Cuissinat

#4 Updated by Joël Cuissinat over 3 years ago

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 Updated by Joël Cuissinat over 3 years ago

  • % Done changed from 0 to 30
  • Remaining (hours) changed from 5.0 to 3.0

#6 Updated by Joël Cuissinat over 3 years ago

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 Updated by Joël Cuissinat over 3 years ago

  • Remaining (hours) changed from 3.0 to 1.0

#8 Updated by Joël Cuissinat over 3 years ago

  • % Done changed from 30 to 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 Updated by Joël Cuissinat over 3 years ago

  • Status changed from En cours to Fermé
  • % Done changed from 50 to 100
  • Remaining (hours) changed from 1.0 to 0.0

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

Also available in: Atom PDF