Projet

Général

Profil

Scénario #34441

Zephir : avec un client en 2.7.2 les clés du dictionnaire ne sont pas forcement dans le meme ordre

Ajouté par Emmanuel GARETTE il y a presque 2 ans. Mis à jour il y a plus d'un an.

Statut:
Terminé (Sprint)
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
25/07/2022
Echéance:
02/09/2022
% réalisé:

100%

Points de scénarios:
1.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto

Description

Le clef sont ordonnés en python3 mais pas en python2, le fichier variables.eol peut donc être différent artificiellement :

-netmask_ssh_eth0:{'1': '255.255.255.255', '0': '255.255.255.255', '3': '255.255.255.255', '2': '255.255.255.255'}
+netmask_ssh_eth0:{'0': '255.255.255.255', '1': '255.255.255.255', '2': '255.255.255.255', '3': '255.255.255.255'}

Proposition de correction :

[gnunux@localhost zephir-client]$ git diff
diff --git a/zephir/monitor/agentmanager/zephirservice.py b/zephir/monitor/agentmanager/zephirservice.py
index 4a04784..d8f6c70 100644
--- a/zephir/monitor/agentmanager/zephirservice.py
+++ b/zephir/monitor/agentmanager/zephirservice.py
@@ -12,6 +12,7 @@ Services Twisted de collection et de publication de données.

 import locale, gettext, os, pwd, shutil, random
 from glob import glob
+import json
 import cjson
 import traceback

@@ -332,7 +333,10 @@ class UpdaterService(service.MultiService, xmlrpc.XMLRPC):
                                 # que ___version___ seraient ajoutées.
                                 # cf : https://dev-eole.ac-dijon.fr/issues/10548
                                 if type(conf[var_name]) == dict and 'val' in conf[var_name]:
-                                    var_data = u"{0}:{1}\n".format(var_name, conf.get(var_name).get('val'))
+                                    val = conf.get(var_name).get('val')
+                                    if isinstance(val, dict):
+                                        val = json.dumps(val, sort_keys=True).replace('"', "'")
+                                    var_data = u"{0}:{1}\n".format(var_name, val)
                                 f_var.write(var_data.encode(charset))
                         f_var.close()
                 if os.path.isdir(os.path.join(rep_src,src)):

Sous-tâches

Tâche #34518: Trier les éléments des dictionnairesFerméBenjamin Bohard

Tâche #34519: TesterFerméLudwig Seys

Historique

#1 Mis à jour par Emmanuel GARETTE il y a presque 2 ans

Sur un serveur Zéphir 2.8.1 j'ai le fichier variables.eol qui ressemble à cela : ip_basse_dhcp:{'1': '192.168.33.5', '0': '192.168.32.30', '2': '192.168.32.10'}

Il faut ordonner les clés également sur le Zéphir !

#2 Mis à jour par Joël Cuissinat il y a presque 2 ans

  • Tracker changé de Demande à Scénario
  • Début 07/07/2022 supprimé
  • Release mis à Carnet de produit (Cadoles)
  • Points de scénarios mis à 1.0

#3 Mis à jour par Celine Rappeneau il y a presque 2 ans

  • Echéance mis à 26/08/2022
  • Version cible mis à Prestation Cadoles MEN 2022 30-35 (été)
  • Début mis à 25/07/2022

#4 Mis à jour par Benjamin Bohard il y a plus d'un an

  • Assigné à mis à Benjamin Bohard

#5 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Statut changé de Nouveau à Terminé (Sprint)
  • Release changé de Carnet de produit (Cadoles) à EOLE 2.7.2

Formats disponibles : Atom PDF