Projet

Général

Profil

Bug #86943

api_export_import: erreur de l'installation de l'application lorsque les categories n'ont pas de position définie

Ajouté par Serghei Mihai (congés, retour 15/05) il y a 3 mois. Mis à jour il y a 3 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
14 février 2024
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Constaté lors de l'import d'une application sur l'instance de Grenoble:

févr. 13 18:25:08 vm1srv-grctest.la-metro.org uwsgi/combo[1855247]: {address space usage: 376573952 bytes/359MB} {rss usage: 141561856 bytes/135MB} [pid: 1855247|app: 0|req: 12710/88206] 0.0.0.0 () {56 vars in 1220 bytes} [Tue Feb 13 18:25:08 2024] GET /__services.js => generated 2927 bytes in 86 msecs (HTTP/1.0 200) 4 headers in 115 bytes (1 switches on core 0)
févr. 13 18:25:08 vm1srv-grctest.la-metro.org uwsgi/wcs[1833694]: [spooler /var/lib/wcs/spooler/e9f50e6d60b015cda9d625cb55472f15 pid: 1833694] done with task uwsgi_spoolfile_on_vm1srv-grctest.la-metro.org_1856732_7_511838337_1707845106_39085 after 2 seconds
févr. 13 18:25:08 vm1srv-grctest.la-metro.org uwsgi/wcs[1833694]: [spooler /var/lib/wcs/spooler/e9f50e6d60b015cda9d625cb55472f15 pid: 1833694] maximum number of tasks reached (20) recycling ...
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]: [2024-02-13 18:25:09] exception caught
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]: Exception:
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:   type = '<class 'TypeError'>', value = ''<' not supported between instances of 'NoneType' and 'int''
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]: Stack trace (most recent call first):
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:   File "/usr/lib/python3/dist-packages/wcs/api_export_import.py", line 544, in <dictcomp>
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    542                 k: v
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    543                 for k, v in not_imported_positions.items()
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]: >  544                 if application_position is None or v < application_position
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    545             }
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    546             # all objects placed after application objects
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:   locals:
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      .0 = <dict_itemiterator object at 0x7f424c9ba070>
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      application_position = 1
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      k = 'zfe-derogations'
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      v = None
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:   File "/usr/lib/python3/dist-packages/wcs/api_export_import.py", line 541, in install
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    539                 application_position = min(existing_positions.values())
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    540             # all objects placed before application objects
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]: >  541             before_positions = {
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    542                 k: v
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    543                 for k, v in not_imported_positions.items()
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:   locals:
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      application_position = 1
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      comment = 'Mise à jour de l’application (%s)'
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      element = {'type': 'cards-categories', 'slug': 'peps', 'name': 'Peps', 'auto-dependency': True}
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      element_content = b'<carddef_category id="9">\n  <name>Peps</name>\n  <url_name>peps</url_name>\n  <position>1</position>\n  <management_roles>\n    <role role-id="333431eedcfd49c499ca207239409e6c" role-slug="debug-fonctionnel-eo">Debug Fonctionnel EO</role>\n  </management_roles>\n</carddef_category>'
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      element_klass = <class 'wcs.categories.CardDefCategory'>
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      elements = [{'type': 'cards-categories', 'slug': 'peps', 'name': 'Peps', 'auto-dependency': True}]
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      existing_object = <CardDefCategory 'Peps' id:18>
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      existing_positions = {'peps': 1}
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      finalize = False
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      imported_positions = {'peps': 1}
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      initial_positions = {'zfe-derogations': None, 'accueil-grenoble-parametres': 3, 'dechets-broyeurs': None, 'poc-signalement': None, 'signalements': 2, 'kb-imports': 4, 'environnement-ecole': None, 'poc-peps-eo': None, 'organisation-generale': None, 'gru': None, 'kb-base-de-connaissance': 1, 'socle-de-base-billettique': 15, 'dechets-encombrants': None, 'peps': 1, 'gestion-de-l-eau': None, 'socle-de-base-billettique-exemples': 16}
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      new_object = <CardDefCategory 'Peps' id:18>
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      not_imported_positions = {'zfe-derogations': None, 'accueil-grenoble-parametres': 3, 'dechets-broyeurs': None, 'poc-signalement': None, 'signalements': 2, 'kb-imports': 4, 'environnement-ecole': None, 'poc-peps-eo': None, 'organisation-generale': None, 'gru': None, 'kb-base-de-connaissance': 1, 'socle-de-base-billettique': 15, 'dechets-encombrants': None, 'gestion-de-l-eau': None, 'socle-de-base-billettique-exemples': 16}
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      objects_by_slug = {'zfe-derogations': <CardDefCategory 'ZFE-Derogations' id:9>, 'accueil-grenoble-parametres': <CardDefCategory 'Kb - Paramètres' id:11>, 'dechets-broyeurs': <CardDefCategory 'Dechets - Broyeurs' id:5>, 'poc-signalement': <CardDefCategory 'POC-SIgnalement' id:7>, 'signalements': <CardDefCategory 'Signalements' id:13>, 'kb-imports': <CardDefCategory 'Kb - Imports' id:10>, 'environnement-ecole': <CardDefCategory 'Environnement Ecole' id:4>, 'poc-peps-eo': <CardDefCategory 'Poc Peps EO' id:17>, 'organisation-generale': <CardDefCategory 'Organisation - Générale' id:1>, 'gru': <CardDefCategory 'GRU' id:2>, 'kb-base-de-connaissance': <CardDefCategory 'Kb - Base de connaissance' id:12>, 'socle-de-base-billettique': <CardDefCategory 'Socle de Base Billettique' id:16>, 'dechets-encombrants': <CardDefCategory 'Déchets - encombrants' id:6>, 'peps': <CardDefCategory 'Peps' id:18>, 'gestion-de-l-eau': <CardDefCategory "GE - Gestion de l'eau" id:14>, 'socle-de-base-billettique-exemples': <CardDefCategory 'Socle de Base Billettique - Exemples' id:15>}
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      self = <BundleImportJob id:ee887a43-06e3-4fce-a71f-50c17a6f5551>
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:   File "/usr/lib/python3/dist-packages/wcs/api_export_import.py", line 421, in execute
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    419             # real installation pass
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    420             for _type in object_types:
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]: >  421                 self.install([x for x in manifest.get('elements') if x.get('type') == _type])
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    422
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:    423             # again, to remove [pre-install] in dependencies labels
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:   locals:
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      _type = 'cards-categories'
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      manifest = {'application': "Peps - Relevé d'anomalies", 'slug': 'peps-releve-danomalies', 'description': '', 'documentation_url': '', 'license': '', 'authors': '', 'icon': None, 'visible': True, 'version_number': 'V.0.35', 'version_notes': '* Modèle de fiches "positions"\r\n* 2 procédures différentes pour les questions peps vers ra', 'elements': [{'type': 'forms', 'slug': 'peps_signalement', 'name': "Peps - Relevé d'anomalies", 'auto-dependency': False}, {'type': 'forms-categories', 'slug': 'peps-saisie-releves-d-anomalie', 'name': "Peps - Saisie Relevés d'anomalie", 'auto-dependency': True}, {'type': 'workflows', 'slug': 'test-transfert-demandes', 'name': "Peps - Demande - Relevé d'anomalies - transfert demandes peps", 'auto-dependency': True}, {'type': 'cards', 'slug': 'peps_type', 'name': 'Peps - Ref - Type', 'auto-dependency': True}, {'type': 'cards', 'slug': 'peps_communes', 'name': 'Peps - Ref - Communes', 'auto-dependency': True}, {'type': 'cards', 'slug': 'peps_secteurs', 'name': 'Peps - Ref - Secteurs', 'auto-dependency': True}, {'type': 'roles', 'slug': 'debug-fonctionnel-eo', 'name': 'Debug Fonctionnel EO', 'auto-dependency': True}, {'type': 'roles', 'slug': 'acces-api-fiche', 'name': 'Accès API Fiche', 'auto-dependency': True}, {'type': 'workflows-categories', 'slug': 'peps', 'name': 'Peps', 'auto-dependency': True}, {'type': 'data-sources', 'slug': 'peps_origine_instance', 'name': "Peps - instance d'origine", 'auto-dependency': True}, {'type': 'cards', 'slug': 'peps_positions', 'name': 'Peps - Utils - Positions', 'auto-dependency': True}, {'type': 'cards-categories', 'slug': 'peps', 'name': 'Peps', 'auto-dependency': True}, {'type': 'workflows', 'slug': 'peps_type', 'name': 'Peps - Fiche - Gestion des types', 'auto-dependency': True}, {'type': 'cards', 'slug': 'peps_codes', 'name': 'Peps - Utils - Codes', 'auto-dependency': True}, {'type': 'cards', 'slug': 'peps_services', 'name': 'Peps - Ref - Services', 'auto-dependency': True}, {'type': 'roles', 'slug': 'peps-administrateur-technique', 'name': 'Peps - Administrateur technique', 'auto-dependency': True}, {'type': 'workflows', 'slug': 'peps-fiche-gestion-communes', 'name': 'Peps - Fiche - Gestion communes', 'auto-dependency': True}, {'type': 'workflows', 'slug': 'peps-fiche-gestion-referentiel-avec-slug', 'name': 'Peps - Fiche - Gestion référentiel avec slug', 'auto-dependency': True}, {'type': 'data-sources', 'slug': 'peps_types_secteur', 'name': 'Peps - Types de secteur', 'auto-dependency': True}, {'type': 'data-sources-categories', 'slug': 'poc-peps-eo', 'name': 'Peps', 'auto-dependency': True}, {'type': 'forms', 'slug': 'peps_dde_signalement', 'name': 'Peps - Signalement', 'auto-dependency': True}, {'type': 'data-sources', 'slug': 'peps_type_service_sectorise', 'name': 'Peps - Type de service secteur', 'auto-dependency': True}, {'type': 'data-sources', 'slug': 'les_roles_peps_gestionnaire', 'name': 'Peps -  Les rôles Gestionnaire', 'auto-dependency': True}, {'type': 'forms-categories', 'slug': 'peps-signalements', 'name': 'Peps - Signalements', 'auto-dependency': True}, {'type': 'workflows', 'slug': 'demande-peps', 'name': 'Peps - Demandes - Signalements', 'auto-dependency': True}, {'type': 'data-sources', 'slug': 'peps_modalites_creation', 'name': 'Peps - Modalites de création', 'auto-dependency': True}, {'type': 'cards', 'slug': 'peps_interventions', 'name': 'Peps - Interventions', 'auto-dependency': True}, {'type': 'roles', 'slug': 'agent', 'name': 'Agent', 'auto-dependency': True}, {'type': 'data-sources', 'slug': 'peps_type_demande_intervention', 'name': "Peps - Type de demande d'intervention", 'auto-dependency': True}, {'type': 'workflows', 'slug': 'peps-fiche-gestion-des-di', 'name': 'Peps - Fiche - Gestion des DI', 'auto-dependency': True}], 'parameters': [{'label': 'Url Portail agent mutualisé', 'name': 'mutual_portal_agent_url', 'default_value': 'https://agents-test.iziici.fr/'}]}
févr. 13 18:25:09 vm1srv-grctest.la-metro.org uwsgi/wcs[1861835]:      object_types = ['blocks-categories', 'cards-categories', 'data-sources-categories', 'forms-categories', 'mail-templates-categories', 'comment-templates-categories', 'workflows-categories', 'blocks', 'cards', 'data-sources', 'forms', 'mail-templates', 'comment-templates', 'workflows', 'wscalls']

car les categories des fiches n'ont pas toutes une position de définie.

Révisions associées

Révision 0c081823 (diff)
Ajouté par Lauréline Guérin il y a 3 mois

api: fix export/import when category has no position (#86943)

Historique

#2

Mis à jour par Lauréline Guérin il y a 3 mois

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Lauréline Guérin
#3

Mis à jour par Robot Gitea il y a 3 mois

Lauréline Guérin (lguerin) a ouvert une pull request sur Gitea concernant cette demande :

#4

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de En cours à Solution proposée
#5

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de Solution proposée à Solution validée

Serghei Mihai (smihai) a approuvé une pull request sur Gitea concernant cette demande :

#6

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de Solution validée à Résolu (à déployer)

Lauréline Guérin (lguerin) a mergé une pull request sur Gitea concernant cette demande :

#7

Mis à jour par Transition automatique il y a 3 mois

  • Statut changé de Résolu (à déployer) à Solution déployée
#8

Mis à jour par Transition automatique il y a 13 jours

Automatic expiration

Formats disponibles : Atom PDF