Bug #72264
secret_key différente pour le même hobo, entre le hobo "multicollectivité" et le hobo "local"
0%
Description
hobo=> select base_url, secret_key from hobo_metropole_example_net.environment_hobo; base_url | secret_key -----------------------------------------------------------+------------------------------------------ https://hobo-commune.example.net/ | &^o40ygt@=1sjl^xq$9rry_wf$0ehl6rq1!41r-%ui)#)kz!^- https://hobo-metropole.example.net/ | 57fc0f3ffc8baacab70b9afd9bf57d98712cb9f6 hobo=> select base_url, secret_key from hobo_commune_example_net.environment_hobo; base_url | secret_key -----------------------------------------------------------+---------------------------------------------------- https://hobo-commune.example.net/ | ebf2cb62827cf3eac3758acab805112edba7d2bd https://hobo-metropole.example.net/ | 57fc0f3ffc8baacab70b9afd9bf57d98712cb9f6
Ça amène que les appels de l'hobo communal au wcs communal échouent.
Ça se corrige en copiant la clé de la db de l'hobo commune vers l'hobo métropole (puis, peut-être, en forçant un reprovisionnning des applications via une manip quelconque).
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus d'un an
- Fichier 0001-misc-make-sure-identical-hobo-in-different-db-have-t.patch 0001-misc-make-sure-identical-hobo-in-different-db-have-t.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Assigné à mis à Frédéric Péters
- Patch proposed changé de Non à Oui
Voilà le patch assure qu'au déploiement initial les mêmes valeurs se trouvent partout.
(j'ai abandonné l'idée de réparer automatiquement l'existant).
Mis à jour par Thomas Noël il y a plus d'un an
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a plus d'un an
- Statut changé de Solution validée à Résolu (à déployer)
commit 7cece8ce443917d5c0b919b735cd863c9b2e545d Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri Dec 16 16:03:43 2022 +0100 misc: make sure identical hobo in different db have the same key (#72264)
Mis à jour par Transition automatique il y a plus d'un an
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Frédéric Péters il y a plus d'un an
Pour corriger, (à exécuter sur le tenant de l'instance mutualisatrice),
import urllib.parse from django.db import connection from hobo.environment.models import Hobo from hobo.multitenant.middleware import TenantMiddleware base_tenant = connection.get_tenant() tenants = {} for hobo in Hobo.objects.all(): if len(hobo.secret_key) != 40: tenants[hobo.base_url] = None for key in list(tenants.keys()): domain = urllib.parse.urlparse(key).netloc tenant = TenantMiddleware.get_tenant_by_hostname(domain) connection.set_tenant(tenant) tenants[key] = Hobo.objects.filter(base_url=key).first().secret_key connection.set_tenant(base_tenant) for key, value in tenants.items(): Hobo.objects.filter(base_url=key).update(secret_key=value)
Mis à jour par Thomas Noël il y a plus d'un an
Frédéric Péters a écrit :
Pour corriger, (à exécuter sur le tenant de l'instance mutualisatrice),
[...]
Puis "forcer un redéploiement des applications via une manip quelconque", genre sur https://hobo.instance-mutualisatrice.fr/sites/ cliquer sur le bouton «Enregistrer» d'un sous-hobo ou n'importe quoi d'autre.
misc: make sure identical hobo in different db have the same key (#72264)