Bug #22496
ozwillo: éviter que le hobo ne soit créer comme secondary
0%
Description
C'est devenu obligatoire depuis ce commit:
commit f9424f64d90112ce8487a83b851738ba5bc7c554 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Wed Jun 28 22:13:09 2017 +0200 cook: add support for creating secondary hoboes (#15797) { "create-hobo": { "url": "https://hobo.second.example.net", "title": "Secondary Publik" }},
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Mis à jour par Frédéric Péters il y a environ 6 ans
- Patch proposed changé de Non à Oui
On continue à déployer tous nos Publik sans ça. C'était quoi l'erreur ?
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
L'erreur dans les logs sur sictiam-prod:
Mar 8 16:15:25 demarches hobo DEBUG hobo-sve.demarches.sictiam.fr 172.17.100.65 - r:7F397929A650 ozwillo: create publik instance request, {u'organization_id': u'5ef1ddae-e1a5-4a6f-b372-18a9d1bf75f1', u'user_id': u'2949f7d8-706f-4556-af2f-7df8c2d321c7', u'organization_name': u'Vall\xe9e des Baux Alpilles', u'instance_id': u'432e9337-4124-4f34-a73f-a2d049216d4d', u'instance_registration_uri': u'https://kernel.ozwillo.com/apps/pending-instance/432e9337-4124-4f34-a73f-a2d049216d4d', u'authorization_grant': {u'scope': u'datacore', u'grant_type': u'urn:ietf:params:oauth:grant-type:jwt-bearer', u'assertion': u'eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FjY291bnRzLm96d2lsbG8uY29tLyIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMub3p3aWxsby5jb20vYS90b2tlbiIsInN1YiI6IjQzMmU5MzM3LTQxMjQtNGYzNC1hNzNmLWEyZDA0OTIxNmQ0ZCIsImlhdCI6MTUyMDUyMjEyNCwiZXhwIjoxNTIxMTI2OTI0LCJqdGkiOiI2MWNjYzZmMi00OTg2LTQ5NmEtOGI5NC1jY2Y1YTNmNWViMzgifQ.iD7kyWVmE80dY86UkOSWhRXVvpx_rgQzfEsnn3RblvXAeSVBfgvanJlmUqJ0RJsJ5DO5x7ffyJ7gkNhPOJoKQGMEIkULz45SdYzrLRo0Ej8GlAMnIS-6ayaOc5ZW1_XjtLEhA-oed7rphRq3Rdu96BlX92nyfHP7tztBLa6PoenzpNcs_T-Hh0jKd2_s0tQkHENG8WKu-WnQlBmf3MBDBKO2Sgz6I4n7ZwaOIZPfejMv_YE39IVGvMkO1_0NRJt4TRL9Daw9E2rKdC9oG2CSj3DRYMxxANyxaXDQMVZ9OMb47O_zfufkxO8VkgSGjs1LS6nRxzb0HeborK-yzgcgnA'}, u'user': {u'email_address': u'servicedemat@sictiam.fr', u'id': u'2949f7d8-706f-4556-af2f-7df8c2d321c7', u'name': u'Administrateur d\xe9mat SICTIAM'}, u'client_id': u'432e9337-4124-4f34-a73f-a2d049216d4d', u'organization': {u'status': u'AVAILABLE', u'name': u'Vall\xe9e des Baux Alpilles', u'type': u'PUBLIC_BODY', u'dc_id': u'http://data.ozwillo.com/dc/type/orgfr:Organisation_0/FR/24130037500086', u'id': u'5ef1ddae-e1a5-4a6f-b372-18a9d1bf75f1', u'territory_id': u'http://data.ozwillo.com/dc/type/geocifr:Commune_0/FR/FR-13/Maussane-les-Alpilles'}, u'client_secret': u'xlYi3zr7Cjfkfp06slvklBheeCIqx2ra3Dsub7Jde7w'} Mar 8 16:15:25 demarches hobo DEBUG hobo-sve.demarches.sictiam.fr - - - ozwillo: deploy thread start Mar 8 16:15:25 demarches hobo DEBUG hobo-sve.demarches.sictiam.fr - - - ozwillo: cooking {u'variables': {u'wcs': u'demarches-vallee-des-baux-alpilles.demarches.sictiam.fr', u'combo_agent': u'agents-vallee-des-baux-alpilles.demarches.sictiam.fr', u'passerelle': u'passerelle-vallee-des-baux-alpilles.demarches.sictiam.fr', u'combo': u'vallee-des-baux-alpilles.demarches.sictiam.fr', u'fargo': u'porte-documents-vallee-des-baux-alpilles.demarches.sictiam.fr', u'authentic': u'connexion-vallee-des-baux-alpilles.demarches.sictiam.fr', u'hobo': u'hobo-vallee-des-baux-alpilles.demarches.sictiam.fr'}, u'steps': [{u'create-hobo': {u'url': u'https://${hobo}/'}}, {u'create-authentic': {u'url': u'https://${authentic}/', u'title': u'Connexion'}}, {u'set-idp': {}}, {u'create-combo': {u'url': u'https://${combo}/', u'template_name': u'portal-user', u'title': u'Compte citoyen'}}, {u'create-combo': {u'url': u'https://${combo_agent}/', u'template_name': u'portal-agent', u'slug': u'portal-agent', u'title': u'Portail agent'}}, {u'create-wcs': {u'url': u'https://${wcs}/', u'template_name': u'export.zip', u'title': u'D\xe9marches'}}, {u'create-fargo': {u'url': u'https://${fargo}/', u'title': u'Porte documents'}}, {u'create-passerelle': {u'url': u'https://${passerelle}/', u'title': u'Passerelle'}}, {u'set-theme': {u'theme': u'sictiam'}}]} Mar 8 16:15:25 demarches hobo ERROR hobo-sve.demarches.sictiam.fr - - - ozwillo: error occured while deploying instance Vallée des Baux Alpilles#012Traceback (most recent call last):#012 File "/usr/lib/python2.7/dist-packages/hobo/contrib/ozwillo/views.py", line 115, in thread_function#012 ozwillo_deploy_thread(data)#012 File "/usr/lib/python2.7/dist-packages/hobo/contrib/ozwillo/views.py", line 152, in ozwillo_deploy_thread#012 call_command('cook', recipe_file.name, timeout=1000, verbosity=0)#012 File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 120, in call_command#012 return command.execute(*args, **defaults)#012 File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 445, in execute#012 output = self.handle(*args, **options)#012 File "/usr/lib/python2.7/dist-packages/hobo/environment/management/commands/cook.py", line 61, in handle#012 self.run_cook(recipe_json)#012 File "/usr/lib/python2.7/dist-packages/hobo/environment/management/commands/cook.py", line 79, in run_cook#012 getattr(self, action.replace('-', '_'))(**action_args)#012 File "/usr/lib/python2.7/dist-packages/hobo/environment/management/commands/cook.py", line 119, in create_hobo#012 template_name='', variables=None)#012 File "/usr/lib/python2.7/dist-packages/hobo/environment/management/commands/cook.py", line 162, in create_site#012 'template_name': template_name#012 File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 127, in manager_method#012 return getattr(self.get_queryset(), name)(*args, **kwargs)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 407, in get_or_create#012 return self._create_object_from_params(lookup, params)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 447, in _create_object_from_params#012 six.reraise(*exc_info)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 439, in _create_object_from_params#012 obj = self.create(**params)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 348, in create#012 obj.save(force_insert=True, using=self.db)#012 File "/usr/lib/python2.7/dist-packages/hobo/environment/models.py", line 135, in save#012 super(ServiceBase, self).save(*args, **kwargs)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 734, in save#012 force_update=force_update, update_fields=update_fields)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 762, in save_base#012 updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 846, in _save_table#012 result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 885, in _do_insert#012 using=using, raw=raw)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 127, in manager_method#012 return getattr(self.get_queryset(), name)(*args, **kwargs)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 920, in _insert#012 return query.get_compiler(using=using).execute_sql(return_id)#012 File "/usr/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 974, in execute_sql#012 cursor.execute(sql, params)#012 File "/usr/lib/python2.7/dist-packages/django/db/backends/utils.py", line 79, in execute#012 return super(CursorDebugWrapper, self).execute(sql, params)#012 File "/usr/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute#012 return self.cursor.execute(sql, params)#012 File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 100, in __exit__#012 six.reraise(dj_exc_type, dj_exc_value, traceback)#012 File "/usr/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute#012 return self.cursor.execute(sql, params)#012IntegrityError: ERREUR: une valeur NULL viole la contrainte NOT NULL de la colonne « title »#012DETAIL: La ligne en échec contient (1, null, hobo-none, https://hobo-vallee-des-baux-alpilles.demarches.sictiam.fr/, ()s&6(&v@_dnzaeb-eo6ff(o=ve5wth-gp6mqavojefmm4mjvt, , null, null, 2018-03-08 15:15:25.488338+00, f)
Mis à jour par Frédéric Péters il y a environ 6 ans
La déclaration en db de l'hobo, c'est uniquement sur de l'hobo secondaire, dans un contexte multi-collectivités.
Il me semblait qu'on était là plutôt sur des publik complets, indépendants.
Le test qui est fait c'est if connection.get_tenant().schema_name == 'public': primary = True
(et dans ce cas on ne touche pas à la db, l'hobo se crée le nécessaire lui-même).
Vu que c'est lancé d'un thread on est avec le connection.get_tenant() lancé depuis un hobo; à mon sens ce qu'il faut c'est passer un explicite primary=true dans l'appel create-hobo.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Donc le problème vient de cette ligne dans hobo/contrib/ozwillo/views.py:
call_command('cook', recipe_file.name, timeout=1000, verbosity=0)
ce code s'exécute dans une vue porté par hobo-sve.demarches.sictiam.fr (en fait par tous les hobos déployés mais on indique ce domaine particulier à la plate-forme Ozwillo). Je pense qu'il faudrait passer plus simplement par un appel subprocess, tout le monde pense comme moi ?
Mis à jour par Frédéric Péters il y a environ 6 ans
Ou passer de manière explicite primary=True (mais subprocess etc. sans doute ok).
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
- Sujet changé de ozwillo: ajouter un titre pour le hobo dans le script cook à ozwillo: éviter que le hobo ne soit créer comme secondary
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
- Statut changé de Nouveau à Résolu (à déployer)
commit a50f2f1dfa334184f4e80d2d52f3156bab35f51a Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Tue Mar 13 17:12:59 2018 +0100 ozwillo: add primary=True to create-hobo (#22496) As cook is launched from a thread inside a tenant, we must force primary=True or cook will try to create a secondary hobo.
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
ozwillo: add primary=True to create-hobo (#22496)
As cook is launched from a thread inside a tenant, we must force
primary=True or cook will try to create a secondary hobo.