Project

General

Profile

Scénario #34441

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

Added by Emmanuel GARETTE 3 months ago. Updated 25 days ago.

Status:
Terminé (Sprint)
Priority:
Normal
Assigned To:
Category:
-
Start date:
07/25/2022
Due date:
09/02/2022
% Done:

100%

Story points:
1.0
Remaining (hours):
0.00 hour
Velocity based estimate:
Release:
Release relationship:
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)):

Subtasks

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

Tâche #34519: TesterFerméLudwig Seys

History

#1 Updated by Emmanuel GARETTE 3 months ago

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 Updated by Joël Cuissinat 2 months ago

  • Tracker changed from Demande to Scénario
  • Start date deleted (07/07/2022)
  • Release set to Carnet de produit (Cadoles)
  • Story points set to 1.0

#3 Updated by Celine Rappeneau 2 months ago

  • Due date set to 08/26/2022
  • Target version set to Prestation Cadoles MEN 2022 30-35 (été)
  • Start date set to 07/25/2022

#4 Updated by Benjamin Bohard about 1 month ago

  • Assigned To set to Benjamin Bohard

#5 Updated by Joël Cuissinat 25 days ago

  • Status changed from Nouveau to Terminé (Sprint)
  • Release changed from Carnet de produit (Cadoles) to EOLE 2.7.2

Also available in: Atom PDF