Développement #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))
Files
Related issues
Associated revisions
schemas: remove duplicate key (#38596)
visualization: add warehouse slug support (#38596)
scripts: populate warehouse_slug visualization parameter (#38596)
History
Updated by Valentin Deniaud almost 5 years ago
- Related to Développement #30854: export/import des visualisations added
Updated by Valentin Deniaud almost 5 years ago
- Related to Développement #38597: récupérer le slug des "cubes" added
Updated by Valentin Deniaud almost 5 years ago
- File 0002-hobo-give-cubes-a-slug-38596.patch 0002-hobo-give-cubes-a-slug-38596.patch added
- File 0001-Revert-hobo-give-newly-created-cubes-a-slug-30859-38.patch 0001-Revert-hobo-give-newly-created-cubes-a-slug-30859-38.patch added
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
Updated by Valentin Deniaud almost 5 years ago
Voilà, mais à ne surtout pas pousser avant un moment, le temps que #38597 soit déployé partout.
Updated by Thomas Noël (congés → 5 décembre) almost 5 years ago
Comme pour #38597 : fait un seul commit, qu'on comprenne la modification.
Updated by Valentin Deniaud almost 5 years ago
Updated by Valentin Deniaud almost 5 years ago
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 ?)
Updated by Valentin Deniaud almost 5 years ago
- File 0001-hobo-give-cubes-a-slug-38596.patch 0001-hobo-give-cubes-a-slug-38596.patch added
- File 0004-scripts-populate-warehouse_slug-visualization-parame.patch 0004-scripts-populate-warehouse_slug-visualization-parame.patch added
- File 0002-schemas-remove-duplicate-key-38596.patch 0002-schemas-remove-duplicate-key-38596.patch added
- File 0003-visualization-add-warehouse-slug-support-38596.patch added
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
.
Updated by Valentin Deniaud almost 5 years ago
- File deleted (
0003-visualization-add-warehouse-slug-support-38596.patch)
Updated by Valentin Deniaud almost 5 years ago
- File 0003-visualization-add-warehouse-slug-support-38596.patch 0003-visualization-add-warehouse-slug-support-38596.patch added
Avec un petit test.
Updated by Thomas Noël (congés → 5 décembre) almost 5 years ago
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
Updated by Valentin Deniaud almost 5 years ago
- File 0004-scripts-populate-warehouse_slug-visualization-parame.patch 0004-scripts-populate-warehouse_slug-visualization-parame.patch added
- File 0003-visualization-add-warehouse-slug-support-38596.patch 0003-visualization-add-warehouse-slug-support-38596.patch added
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.
Updated by Thomas Noël (congés → 5 décembre) almost 5 years ago
- Status changed from Solution proposée to Solution validée
Updated by Valentin Deniaud almost 5 years ago
- Status changed from Solution validée to 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.
Updated by Frédéric Péters almost 5 years ago
- Status changed from Résolu (à déployer) to 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.