Development #51462
l'import --dry-run provoque quand même les appels aux signaux (et donc le provisionning)
0%
Description
(ticket authentic ou hobo)
Dry run 2 roles created 0 roles updated 0 ous created 0 ous updated 0 parentings created 0 parentings deleted 0 permissions created 0 permissions deleted 0 attributes created 0 attributes deleted Success [2021-02-25 Thu 18:55:09] - - - INFO hobo.agent.authentic2.provisionning.helper: provisionning roles {nouveaux rôles...
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Valentin Deniaud il y a environ 3 ans
Je confirme le bug, l'import dry-run n'importe pas les rôles dans a2 mais par contre les envoie aux autres briques, pas cool.
L'affaire est très embrouillée pour moi, j'ai essayé de trouver à quel moment le bug avait été introduit (côté hobo, certainement) mais pas réussi à revenir aux versions de l'époque, j'imagine que le passage à python 3 n'aide pas.
Pour ne pas vraiment importer les rôles dans a2, la commande joue l'import dans un bloc atomic() puis lève une exception. Donc les méthodes save() sont vraiment appelés et les signaux vraiment envoyés, normal. Il sont liés à des méthodes de provisionning dans hobo/agent/authentic2/apps.py
.
Face à ça la commande fait
if dry_run and 'hobo.agent.authentic2' in settings.INSTALLED_APPS: import hobo.agent.authentic2 with hobo.agent.authentic2.provisionning.Provisionning(): yield
Ce qui j'imagine devait permettre d'éviter un vrai provisionning, mais aucune idée de comment c'est censé marcher, ça ne redirige absolument pas les signaux vers d'autres fonctions, le provisionning normal continue à être appelé. Je pense qu'il faut quelqu'un qui comprenne ce bout de code pour continuer l'analyse.
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
Sans encore avoir réfléchi à tous les tenants et aboutissants je me dis qu'on pourrait encadrer dans hobo/agent/authentic2/provisionning.py tous les add_saved/add_deleted par des transaction.on_commit(...)
et virer le code spécifique de import.
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
- Lié à Development #52355: agent/authentic2: ne provisionner que si la transaction courante commit ajouté
Mis à jour par Valentin Deniaud il y a presque 3 ans
- Assigné à mis à Valentin Deniaud
C'est donc corrigé côté hobo, je vais virer le code qui gérait ça dans a2.
Mis à jour par Valentin Deniaud il y a presque 3 ans
- Fichier 0001-import_site-remove-obsolete-dry-run-provisionning-pr.patch 0001-import_site-remove-obsolete-dry-run-provisionning-pr.patch ajouté
- Tracker changé de Bug à Development
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a presque 3 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Valentin Deniaud il y a presque 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 24d42824ddfe4798e8168e9489a9281546b26748 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Tue May 25 15:00:53 2021 +0200 import_site: remove obsolete dry run provisionning protection (#51462)
Mis à jour par Frédéric Péters il y a presque 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
import_site: remove obsolete dry run provisionning protection (#51462)