Development #38596
Utiliser un slug plutôt qu'une url pour récupérer les données des visualisations
0%
Description
Afin de permettre l'import/export (#30866) transparent entre recette et prod.
Actuellement, une visualisation stocke un identifiant qui permet d'aller chercher les données associées (récupérées par wcs-olap). Cet identifiant est l'url du tenant, il s'agit de le remplacer par son slug.
Une tentative a été effectuée dans #30859. Ça n'a jamais fonctionné (la variable new est globale au fichier alors qu'on parle d'une section de la config, donc on a sûrement à faire à une création du fichier vide, puis un remplissage lors d'un appel ultérieur).
Le miroir du ticket précédent dans olap (#30858) remplace l'url par le slug. D'où la nécessité de ne le faire que pour les nouveaux tenants, car sinon les anciennes visualisations qui se basent sur l'url ne fonctionneraient plus.
Ce ticket se propose de reprendre l'approche des deux précédents, pas juste en la faisant marcher mais en la modifiant, afin de ne pas devoir se limiter aux nouveaux tenants.
Pour cela :- Dans olap, ajouter un nouvel attribut 'slug' en plus de 'name' (plutôt que de remplacer)
- Dans le deploy_specifics de bijoe, toujours ajouter 'cubes_slug' dans le .ini
- Dans le code de récupération des données d'une visualisation, utiliser le slug si possible, sinon le nom comme d'habitude
- Jouer une migration pour que toutes les visualisations connaissent le slug.
En résumé, laisser olap et hobo récupérer bêtement des données, et mettre la logique dans bijoe.
Il est important que 1. soit déployé avant 2., sinon ce qui n'a jamais marché va marcher et ça cassera tout.
(tout ça est fruit d'une discussion avec Thomas (comme ça je le remercie mais je lui transfère aussi un peu de responsabilité si ça ne marche pas))
Fichiers
Demandes liées
Révisions associées
schemas: remove duplicate key (#38596)
visualization: add warehouse slug support (#38596)
scripts: populate warehouse_slug visualization parameter (#38596)
Historique
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Lié à Development #30854: export/import des visualisations ajouté
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Lié à Development #38597: récupérer le slug des "cubes" ajouté
Mis à jour par Valentin Deniaud il y a plus de 4 ans
- Fichier 0002-hobo-give-cubes-a-slug-38596.patch 0002-hobo-give-cubes-a-slug-38596.patch ajouté
- Fichier 0001-Revert-hobo-give-newly-created-cubes-a-slug-30859-38.patch 0001-Revert-hobo-give-newly-created-cubes-a-slug-30859-38.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Voilà, mais à ne surtout pas pousser avant un moment, le temps que #38597 soit déployé partout.
Mis à jour par Thomas Noël il y a plus de 4 ans
Comme pour #38597 : fait un seul commit, qu'on comprenne la modification.
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Mis à jour par Valentin Deniaud il y a plus de 4 ans
Et là aussi j'évite de poser un slug vide, mais c'est en espérant que ça n'arrive jamais (un raise de KeyError serait préférable pour qu'on s'en aperçoive ?)
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Fichier 0001-hobo-give-cubes-a-slug-38596.patch 0001-hobo-give-cubes-a-slug-38596.patch ajouté
- Fichier 0004-scripts-populate-warehouse_slug-visualization-parame.patch 0004-scripts-populate-warehouse_slug-visualization-parame.patch ajouté
- Fichier 0002-schemas-remove-duplicate-key-38596.patch 0002-schemas-remove-duplicate-key-38596.patch ajouté
- Fichier 0003-visualization-add-warehouse-slug-support-38596.patch ajouté
Valentin Deniaud a écrit :
1. Dans olap, ajouter un nouvel attribut 'slug' en plus de 'name' (plutôt que de remplacer)
A été mergé (#38597).
2. Dans le deploy_specifics de bijoe, toujours ajouter 'cubes_slug' dans le .ini
Patch 1, inchangé.
3. Dans le code de récupération des données d'une visualisation, utiliser le slug si possible, sinon le nom comme d'habitude
Patch 3.
4. Jouer une migration pour que toutes les visualisations connaissent le slug.
Patch 4, changement d'approche. En effet le slug est récupéré depuis le fichier .model posé par olap dans le dossier du tenant. Outre qu'on ne peut pas accéder à ce dossier pendant une migration, il apparaît surtout que ce n'est pas la bonne manière de faire.
Comme suggéré par Benjamin, j'ai fait un script tout simple qui marche bien et qu'on peut lancer en faisant bijoe-manage tenant_command runscript bijoe/scripts/warehouse_slug.py --all-tenants
.
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Fichier
0003-visualization-add-warehouse-slug-support-38596.patchsupprimé
Mis à jour par Valentin Deniaud il y a environ 4 ans
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Fichier 0003-visualization-add-warehouse-slug-support-38596.patch 0003-visualization-add-warehouse-slug-support-38596.patch ajouté
Avec un petit test.
Mis à jour par Thomas Noël il y a environ 4 ans
Sur le 0004 (le script) : déplacer scripts/ dans debian/, retirer le init.py parce que c'est pas un module, ajouter qlq lignes de commentaires au début du script qui rappelle à quoi il sert et comment on doit l'utilsier (genre « sudo -u bijoe bijoe-manage tenant_command runscript /usr/share/doc/bijoe/whare...py --all-tenants ») et ajouter debian/scripts/whare...py dans debian/bijoe.docs et zou
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Fichier 0004-scripts-populate-warehouse_slug-visualization-parame.patch 0004-scripts-populate-warehouse_slug-visualization-parame.patch ajouté
- Fichier 0003-visualization-add-warehouse-slug-support-38596.patch 0003-visualization-add-warehouse-slug-support-38596.patch ajouté
Fait.
Et à me focaliser sur faire marcher les visualisations existantes j'avais oublié les nouvelles. J'ai donc ajouté la ligne qui prend le slug au moment de la création, et un test pour la peine, dans le 0003.
Mis à jour par Thomas Noël il y a environ 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit f93d42834e563fb217ba05e6d612bfc2ec9c856c Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Fri Jan 3 16:56:48 2020 +0100 scripts: populate warehouse_slug visualization parameter (#38596) commit ebb9cb3e395da5ef7753238532520bbdbe6ee8da Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Tue Dec 24 16:47:46 2019 +0100 visualization: add warehouse slug support (#38596) commit 9004d49fb7e47e48110066d94936c663fc492ed5 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Mon Dec 16 17:05:43 2019 +0100 schemas: remove duplicate key (#38596) commit d305de24fedb7c33c9e85f6cb5fba96de6f6f649 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Tue Dec 17 17:55:46 2019 +0100 hobo: give cubes a slug (#38596) This also reverts commit 3e956befb40f36f48da78f311467dff9ba3dbf8b, which was buggy since new is file scoped and cubes_slug config-section scoped.
Mis à jour par Frédéric Péters il y a environ 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
hobo: give cubes a slug (#38596)
This also reverts commit 3e956befb40f36f48da78f311467dff9ba3dbf8b,
which was buggy since new is file scoped and cubes_slug config-section
scoped.