Project

General

Profile

Anomalie #5970

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

Added by Bruno Boiget over 6 years ago. Updated over 6 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Category:
-
Start date:
Due date:
% Done:

100%

Spent time:
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>
-->


Related issues

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

Associated revisions

Revision 84d21f59 (diff)
Added by Emmanuel GARETTE over 6 years ago

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

History

#1 Updated by Bruno Boiget over 6 years ago

  • Description updated (diff)

#2 Updated by Bruno Boiget over 6 years ago

  • Description updated (diff)

#3 Updated by Emmanuel GARETTE over 6 years ago

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 Updated by Joël Cuissinat over 6 years ago

  • Target version changed from Eole 2.4-alpha to Eole 2.4-alpha2

#5 Updated by Emmanuel GARETTE over 6 years ago

  • Assigned To set to Emmanuel GARETTE

#6 Updated by Emmanuel GARETTE over 6 years ago

  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100

#7 Updated by Joël Cuissinat over 6 years ago

  • Status changed from Résolu to Fermé

Plus de bug

Also available in: Atom PDF