Projet

Général

Profil

Bug #22496

ozwillo: éviter que le hobo ne soit créer comme secondary

Ajouté par Benjamin Dauvergne il y a environ 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
13 mars 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Révision a50f2f1d (diff)
Ajouté par Benjamin Dauvergne il y a environ 6 ans

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.

Historique

#2

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 ?

#3

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)
#4

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.

#5

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 ?

#6

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).

#8

Mis à jour par Frédéric Péters il y a environ 6 ans

Ok.

(on avisera si jamais ça échoue)

#10

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
#11

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.
#12

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

Formats disponibles : Atom PDF