Projet

Général

Profil

Tâche #15778

creole - Scénario #15610: Corriger les problèmes liés à Creole 2.6

Traceback à l'affichage du diff gen_config sur AmonEcole

Ajouté par Joël Cuissinat il y a environ 8 ans. Mis à jour il y a environ 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
04/04/2016
Echéance:
% réalisé:

100%

Temps estimé:
2.00 h
Temps passé:
Restant à faire (heures):
0.0

Description

Si on importe le fichier de configuration "etb3.amonecole/default-2.5.2", les valeurs se chargent mais si on essaie d'enregistrer ça plante :

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/eolegenconfig/webapi.py", line 276, in validate_config
    diff = lib.diff_config(id_, zephir_sync=zephir_sync)
  File "/usr/lib/python2.7/dist-packages/eolegenconfig/lib.py", line 1043, in diff_config
    master_value = new_values[master_path][1]
KeyError: 'creole.dhcp.adresse_network_dhcp.adresse_network_dhcp'

Révisions associées

Révision 8bca1611 (diff)
Ajouté par Emmanuel GARETTE il y a environ 8 ans

les masters ne sont pas forcement modifiés quand les slaves le sont (ref #15778 @1h)

Historique

#1 Mis à jour par Joël Cuissinat il y a environ 8 ans

  • Projet changé de creole à eole-genconfig

#2 Mis à jour par Emmanuel GARETTE il y a environ 8 ans

  • Statut changé de Nouveau à En cours

#3 Mis à jour par Emmanuel GARETTE il y a environ 8 ans

  • Statut changé de En cours à Résolu
  • Assigné à mis à Emmanuel GARETTE
  • % réalisé changé de 0 à 100
  • Restant à faire (heures) changé de 2.0 à 0.25

Pour tester :

from eolegenconfig import lib
id_='pouet'
lib.get_config(id_)
lib.diff_config(id_)

Un script rapide pour valider qu'il n'y a pas de "perte" dans la migration de la conf :

from json import load
a=load(open('/tmp/config.eol', 'r'))
b=load(open('/etc/eole/config.eol', 'r'))

assert set(a.keys()) - set(b.keys()) == set()
assert set(b.keys()) - set(a.keys()) == set()

for i in a.keys():
 if i == '___version___':
  continue
 if a[i] != b[i]:
  if isinstance(b[i], dict):
   for j, val in enumerate(a[i]['val']):
    if str(j) in b[i]['val']:
     assert val == b[i]['val'][str(j)]
    else:
     print i, "index:", j, val, "pas de valeur dans b" 
  else:
   print i, a[i]['val'], b[i]['val']

#4 Mis à jour par Joël Cuissinat il y a environ 8 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) changé de 0.25 à 0.0

Problème non reproduit.

Formats disponibles : Atom PDF