Projet

Général

Profil

Anomalie #5970

problème dans le dictionnaire 23_proxy.xml avec creole 2.4

Ajouté par Bruno Boiget il y a plus de 10 ans. Mis à jour il y a plus de 10 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
Echéance:
% réalisé:

100%

Temps passé:
Distribution:
EOLE 2.4

Description

Les fonctions 'disabled_if_in' sur les variables xxx_ethx_proxy_link provoquent une erreur dans creoled/reconfigure.

Pour reproduire : python -d "from creole.loader import creole_loader; creole_loader(load_extras=True)" (ne plante pas sans load_extras)


Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/creole/loader.py", line 191, in creole_loader
    loader.read_dir(dirs, namespace)
  File "/usr/lib/python2.7/dist-packages/creole/var_loader.py", line 801, in read_dir
    self._gen_descr(namespace)
  File "/usr/lib/python2.7/dist-packages/creole/var_loader.py", line 1149, in _gen_descr
    containers = self.gen_container(paths)
  File "/usr/lib/python2.7/dist-packages/creole/var_loader.py", line 352, in gen_container
    ret.append(getattr(self, func_name)(paths))
  File "/usr/lib/python2.7/dist-packages/creole/loader.py", line 103, in gen_interfaces
    return self.gen_generic('interfaces', paths, copy_requires='ip')
  File "/usr/lib/python2.7/dist-packages/creole/var_loader.py", line 132, in gen_generic
    copy_requires=copy_requires)
  File "/usr/lib/python2.7/dist-packages/creole/var_loader.py", line 342, in _gen_tiramisu_config
    '', options, requires=requires, properties=properties))
  File "/usr/lib/python2.7/dist-packages/tiramisu/option.py", line 927, in __init__
    super(OptionDescription, self).__init__(name, doc, requires, properties)
  File "/usr/lib/python2.7/dist-packages/tiramisu/option.py", line 74, in __init__
    requires, self._name)
  File "/usr/lib/python2.7/dist-packages/tiramisu/option.py", line 1235, in validate_requires_arg
    " action: {1}").format(name, action))
ValueError: inconsistency in action types for option: interface1 action: disabled

En commentant ces fonctions, il n'y a plus de message d'erreur (mais il y a surement des effets de bord...).


<!--        <condition name='disabled_if_not_in' source='nombre_interfaces'>
            <param>1</param>
            <target type='interfacelist'>eth0_proxy_link</target>
            <target>adresse_ip_eth0_proxy_link</target>
            <target>adresse_mask_eth0_proxy_link</target>
            <target>adresse_bcast_eth0_proxy_link</target>
            <target>proxy_eth0_adresse</target>
            <target>proxy_eth0_network</target>
        </condition>
        <condition name='disabled_if_not_in' source='mode_conteneur_actif'>
            <param>oui</param>
            <target>adresse_ip_eth0_proxy_link</target>
            <target>adresse_mask_eth0_proxy_link</target>
            <target>adresse_bcast_eth0_proxy_link</target>
            <target>adresse_ip_eth1_proxy_link</target>
            <target>adresse_mask_eth1_proxy_link</target>
            <target>adresse_bcast_eth1_proxy_link</target>
            <target>adresse_ip_eth2_proxy_link</target>
            <target>adresse_mask_eth2_proxy_link</target>
            <target>adresse_bcast_eth2_proxy_link</target>
            <target>adresse_ip_eth3_proxy_link</target>
            <target>adresse_mask_eth3_proxy_link</target>
            <target>adresse_bcast_eth3_proxy_link</target>
        </condition>
-->


Demandes liées

Lié à creole - Anomalie #5848: Problème lié à la redéfinition de "nombre_interfaces" sur Amon Classée sans suite

Révisions associées

Révision 84d21f59 (diff)
Ajouté par Emmanuel GARETTE il y a plus de 10 ans

Interface-1 étant "disabled" avec un hidden_if_in, adresse_ip_eth1_proxy_link ne peut avoir de hidden_if_not_in

Fixes: #5970 @30m

Historique

#1 Mis à jour par Bruno Boiget il y a plus de 10 ans

  • Description mis à jour (diff)

#2 Mis à jour par Bruno Boiget il y a plus de 10 ans

  • Description mis à jour (diff)

#3 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

Cela veut dire que tu as un disabled_if_in quelque part.

Tu ne peux pas mélanger des disabled_if_not_in et disabled_if_in pour une même variable, sinon on ne sait pas quoi mettre comme valeur par défaut si rien ne match.

Par exemple si tu fais veux disabled une variable si ssh_eth0 ou admin_eth0 est à 'oui' avec comme valeur pour admin_eth0 à 'oui' et ssh_eth0 à non , si tu as :

disabled_if_not_in : admin_eth0 'non'
disabled_if_not_in : ssh_eth0 'non'

aucun des deux exigences ne matchs donc on disabled

Ou :

disabled_if_in : admin_eth0 'oui'
disabled_if_in : ssh_eth0 'oui'

au moins une des deux exigences matchs donc on disabled.

Par contre si tu dis :

disabled_if_not_in : admin_eth0 'non'
disabled_if_in : ssh_eth0 'oui'

aucune des deux conditions ne matchera. La valeur par défaut n'est pas du tout prévisible (on ne peut pas faire l'inverse de la première exigence, ni de la deuxième).

Si on fait le disabled_if_not_in en première, puis le disable_if_in on considèrera à tord qu'il ne faut pas 'disabled'.

#4 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Version cible changé de Eole 2.4-alpha à Eole 2.4-alpha2

#5 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

  • Assigné à mis à Emmanuel GARETTE

#6 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#7 Mis à jour par Joël Cuissinat il y a plus de 10 ans

  • Statut changé de Résolu à Fermé

Plus de bug

Formats disponibles : Atom PDF