master/slave => leader/follower

This commit is contained in:
Emmanuel Garette 2020-04-18 09:00:03 +02:00
parent 1cd8873e5b
commit 308e980bfd
72 changed files with 399 additions and 399 deletions
src/rougail
tests/flattener_dicos
10load_masterslaves
10load_masterslaves_default_multi
10load_masterslaves_defaultmulti_master
10load_masterslaves_description
10load_masterslaves_normalize_family
10masterslave_autosaveexpert
10masterslave_mandatory
10masterslave_mandatoryslave
10masterslave_mastermandatory
10masterslave_multi
10masterslaves_append
10masterslaves_auto
10masterslaves_automaster
10masterslaves_automaster_expert
10masterslaves_familyaccent
10valid_enum_master
20family_modemasterslaves
40ifin_masterslaves
40ifin_masterslavesauto
60extra_group/extra_dirs/extra
70container_pathaccess_masterslaves
80condition_itself
80family_several
80leadership_none_slave_between_slave
80leadership_not_ordered
80leadership_not_same_family
80leadership_notmulti2
80masterslave_auto_save
80masterslave_notexists
80masterslaves_autofreeze
80masterslaves_notmulti

@ -488,7 +488,7 @@ class SpaceAnnotator(object):
leader_space.path = leader_fullname
def manage_slave(self,
def manage_follower(self,
namespace: str,
leader_family_name: str,
variable: 'Variable',
@ -512,8 +512,8 @@ class SpaceAnnotator(object):
def convert_groups(self): # pylint: disable=C0111
if hasattr(self.space, 'constraints') and hasattr(self.space.constraints, 'group'):
for group in self.space.constraints.group:
leader_fullname = group.master
follower_names = list(group.slave.keys())
leader_fullname = group.leader
follower_names = list(group.follower.keys())
leader_family_name = self.paths.get_variable_family_name(leader_fullname)
namespace = self.paths.get_variable_namespace(leader_fullname)
leader_name = self.paths.get_variable_name(leader_fullname)
@ -527,8 +527,8 @@ class SpaceAnnotator(object):
has_a_leader = True
else:
if has_a_leader:
# it's a slave
self.manage_slave(namespace,
# it's a follower
self.manage_follower(namespace,
leader_family_name,
variable,
leader_name,
@ -537,7 +537,7 @@ class SpaceAnnotator(object):
)
ori_leader_family.variable.pop(variable.name)
if follower_names == []:
# no more slave
# no more follower
break
elif variable.name == leader_name:
# it's a leader

@ -13,7 +13,7 @@
# Forked by:
# Cadoles (http://www.cadoles.com)
# Copyright (C) 2019
# Copyright (C) 2019-2020
# distribued with GPL-2 or later license
@ -172,8 +172,8 @@
<!ATTLIST condition source CDATA #REQUIRED>
<!ATTLIST condition fallback (True|False) "False">
<!ELEMENT group (slave+)>
<!ATTLIST group master CDATA #REQUIRED>
<!ELEMENT group (follower+)>
<!ATTLIST group leader CDATA #REQUIRED>
<!ATTLIST group description CDATA #IMPLIED>
<!ELEMENT param (#PCDATA)>
@ -186,6 +186,6 @@
<!ATTLIST target type (family|variable|filelist|iplist|portlist|tcpwrapperlist|packagelist|actionlist) "variable">
<!ATTLIST target optional (True|False) "False">
<!ELEMENT slave (#PCDATA)>
<!ELEMENT follower (#PCDATA)>
<!ELEMENT help ((variable* | family*)*)>

@ -34,8 +34,8 @@ from .annotator import ERASED_ATTRIBUTES, ActionAnnotator, ServiceAnnotator, Spa
from .utils import normalize_family
from .error import CreoleOperationError, SpaceObjShallNotBeUpdated, CreoleDictConsistencyError
# CreoleObjSpace's elements like 'family' or 'slave', that shall be forced to the Redefinable type
FORCE_REDEFINABLES = ('family', 'slave', 'service', 'disknod', 'variables', 'family_action')
# CreoleObjSpace's elements like 'family' or 'follower', that shall be forced to the Redefinable type
FORCE_REDEFINABLES = ('family', 'follower', 'service', 'disknod', 'variables', 'family_action')
# CreoleObjSpace's elements that shall be forced to the UnRedefinable type
FORCE_UNREDEFINABLES = ('value', 'input', 'profile', 'ewtapp', 'tag', 'saltaction')
# CreoleObjSpace's elements that shall be set to the UnRedefinable type

@ -59,11 +59,11 @@ class IsDefined:
if '.' in varname:
splitted_var = varname.split('.')
if len(splitted_var) != 2:
msg = _("Group variables must be of type master.slave")
msg = _("Group variables must be of type leader.follower")
raise KeyError(msg)
master, slave = splitted_var
if master in self.context:
return slave in self.context[master].slave.keys()
leader, follower = splitted_var
if leader in self.context:
return follower in self.context[leader].follower.keys()
return False
else:
return varname in self.context
@ -133,7 +133,7 @@ class CheetahTemplate(ChtTemplate):
class CreoleLeader:
def __init__(self, value, slave=None, index=None):
def __init__(self, value, follower=None, index=None):
"""
On rend la variable itérable pour pouvoir faire:
for ip in iplist:
@ -143,20 +143,20 @@ class CreoleLeader:
index is used for CreoleLint
"""
self._value = value
if slave is not None:
self.slave = slave
if follower is not None:
self.follower = follower
else:
self.slave = {}
self.follower = {}
self._index = index
def __getattr__(self, name):
"""Get slave variable or attribute of master value.
"""Get follower variable or attribute of leader value.
If the attribute is a name of a slave variable, return its value.
Otherwise, returns the requested attribute of master value.
If the attribute is a name of a follower variable, return its value.
Otherwise, returns the requested attribute of leader value.
"""
if name in self.slave:
value = self.slave[name]
if name in self.follower:
value = self.follower[name]
if isinstance(value, PropertiesOptionError):
raise AttributeError()
return value
@ -164,36 +164,36 @@ class CreoleLeader:
return getattr(self._value, name)
def __getitem__(self, index):
"""Get a master.slave at requested index.
"""Get a leader.follower at requested index.
"""
ret = {}
for key, values in self.slave.items():
for key, values in self.follower.items():
ret[key] = values[index]
return CreoleLeader(self._value[index], ret, index)
def __iter__(self):
"""Iterate over master.slave.
"""Iterate over leader.follower.
Return synchronised value of master.slave.
Return synchronised value of leader.follower.
"""
for i in range(len(self._value)):
ret = {}
for key, values in self.slave.items():
for key, values in self.follower.items():
ret[key] = values[i]
yield CreoleLeader(self._value[i], ret, i)
def __len__(self):
"""Delegate to master value
"""Delegate to leader value
"""
return len(self._value)
def __repr__(self):
"""Show CreoleLeader as dictionary.
The master value is stored under 'value' key.
The slaves are stored under 'slave' key.
The leader value is stored under 'value' key.
The followers are stored under 'follower' key.
"""
return repr({'value': self._value, 'slave': self.slave})
return repr({'value': self._value, 'follower': self.follower})
def __eq__(self, value):
return value == self._value
@ -214,7 +214,7 @@ class CreoleLeader:
return self._value >= value
def __str__(self):
"""Delegate to master value
"""Delegate to leader value
"""
return str(self._value)
@ -227,7 +227,7 @@ class CreoleLeader:
def __contains__(self, item):
return item in self._value
async def add_slave(self, config, name, path):
async def add_follower(self, config, name, path):
if isinstance(self._value, list):
values = []
for idx in range(len(self._value)):
@ -237,7 +237,7 @@ class CreoleLeader:
values.append(err)
else:
raise Exception('hu?')
self.slave[name] = values
self.follower[name] = values
class CreoleExtra:
@ -285,7 +285,7 @@ class CreoleTemplateEngine:
leader = CreoleLeader(await suboption.value.get())
self.creole_variables_dict[await suboption.option.name()] = leader
else:
await leader.add_slave(self.config,
await leader.add_follower(self.config,
await suboption.option.name(),
await suboption.option.path())
else:
@ -306,7 +306,7 @@ class CreoleTemplateEngine:
leader = CreoleLeader(await suboption.value.get())
leader_name = await suboption.option.name()
else:
await leader.add_slave(self.config,
await leader.add_follower(self.config,
await suboption.option.name(),
await suboption.option.path())
variables[leader_name] = leader

@ -10,22 +10,22 @@
</variable>
</family>
<family name="general1">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general1.master.master": [], "creole.general1.master.slave1": [], "creole.general1.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general1.leader.leader": [], "creole.general1.leader.follower1": [], "creole.general1.leader.follower2": []}

@ -13,19 +13,19 @@
</family>
<family doc="general1" name="general1">
<property>normal</property>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general1.master.slave1</param>
<param transitive="False" type="variable">creole.general1.leader.follower1</param>
</value>
</variable>
</leader>

@ -5,21 +5,21 @@
<variables>
<family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="master" multi="True">
<variable name="mode_conteneur_actif" type="oui/non" description="leader" multi="True">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True">
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True">
<value>value</value>
</variable>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": ["non"], "creole.general.master.master": [], "creole.general.master.slave1": [], "creole.general.master.slave2": []}
{"creole.general.mode_conteneur_actif": ["non"], "creole.general.leader.leader": [], "creole.general.leader.follower1": [], "creole.general.leader.follower2": []}

@ -3,22 +3,22 @@
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>
<variable doc="master" multi="True" name="mode_conteneur_actif" type="choice">
<variable doc="leader" multi="True" name="mode_conteneur_actif" type="choice">
<choice type="string">oui</choice>
<choice type="string">non</choice>
<property>mandatory</property>
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>mandatory</property>
<property>normal</property>
<value>value</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
</variable>
</leader>

@ -5,21 +5,21 @@
<variables>
<family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="master" multi="True">
<variable name="mode_conteneur_actif" type="oui/non" description="leader" multi="True">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True">
<variable name="leader" type="string" description="leader" multi="True">
<value>value</value>
</variable>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": ["non"], "creole.general.master.master": ["value"], "creole.general.master.slave1": [null], "creole.general.master.slave2": [null]}
{"creole.general.mode_conteneur_actif": ["non"], "creole.general.leader.leader": ["value"], "creole.general.leader.follower1": [null], "creole.general.leader.follower2": [null]}

@ -3,23 +3,23 @@
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>
<variable doc="master" multi="True" name="mode_conteneur_actif" type="choice">
<variable doc="leader" multi="True" name="mode_conteneur_actif" type="choice">
<choice type="string">oui</choice>
<choice type="string">non</choice>
<property>mandatory</property>
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string">
<variable doc="leader" multi="True" name="leader" type="string">
<property>mandatory</property>
<value>value</value>
</variable>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
</variable>
</leader>

@ -7,21 +7,21 @@
</variable>
</family>
<family name='general1'>
<variable name='master' type='string' description="master" multi="True"/>
<variable name='slave1' type='string' description="slave1" multi="True"/>
<variable name='slave2' type='string' description="slave2" multi="True"/>
<variable name='leader' type='string' description="leader" multi="True"/>
<variable name='follower1' type='string' description="follower1" multi="True"/>
<variable name='follower2' type='string' description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name='calc_val' target='slave1'>
<fill name='calc_val' target='follower1'>
<param name='valeur'>valfill</param>
</fill>
<fill name='calc_val' target='slave2'>
<param type='variable'>slave1</param>
<fill name='calc_val' target='follower2'>
<param type='variable'>follower1</param>
</fill>
<group master='master' description="other description">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader='leader' description="other description">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>
</rougail>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general1.master.master": [], "creole.general1.master.slave1": [], "creole.general1.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general1.leader.leader": [], "creole.general1.leader.follower1": [], "creole.general1.leader.follower2": []}

@ -13,19 +13,19 @@
</family>
<family doc="general1" name="general1">
<property>normal</property>
<leader doc="other description" name="master">
<leader doc="other description" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general1.master.slave1</param>
<param transitive="False" type="variable">creole.general1.leader.follower1</param>
</value>
</variable>
</leader>

@ -10,16 +10,16 @@
</variable>
</family>
<family name="general-1">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -5,7 +5,7 @@
<variables>
<family name="general-1">
<variable name="master" redefine="True" mandatory="True"/>
<variable name="leader" redefine="True" mandatory="True"/>
</family>
</variables>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general_1.master.master": [], "creole.general_1.master.slave1": [], "creole.general_1.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general_1.leader.leader": [], "creole.general_1.leader.follower1": [], "creole.general_1.leader.follower2": []}

@ -13,15 +13,15 @@
</family>
<family doc="general-1" name="general_1">
<property>basic</property>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>basic</property>
<variable doc="master" multi="True" name="master" type="string">
<variable doc="leader" multi="True" name="leader" type="string">
<property>mandatory</property>
</variable>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
</variable>
</leader>

@ -8,22 +8,22 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True" mode="expert"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True" mode="expert"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.master.master": [], "creole.general.master.slave1": [], "creole.general.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.leader.leader": [], "creole.general.leader.follower1": [], "creole.general.leader.follower2": []}

@ -10,19 +10,19 @@
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>expert</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general.master.slave1</param>
<param transitive="False" type="variable">creole.general.leader.follower1</param>
</value>
</variable>
</leader>

@ -8,22 +8,22 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True" mandatory="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True" mandatory="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.master.master": [], "creole.general.master.slave1": [], "creole.general.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.leader.leader": [], "creole.general.leader.follower1": [], "creole.general.leader.follower2": []}

@ -10,20 +10,20 @@
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>mandatory</property>
<property>normal</property>
<value name="calc_val" type="calculation">
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general.master.slave1</param>
<param transitive="False" type="variable">creole.general.leader.follower1</param>
</value>
</variable>
</leader>

@ -13,8 +13,8 @@
</variables>
<constraints>
<group master="nut_monitor_netmask">
<slave>nut_monitor_host</slave>
<group leader="nut_monitor_netmask">
<follower>nut_monitor_host</follower>
</group>
</constraints>

@ -8,22 +8,22 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True" mandatory="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True" mandatory="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.master.master": [], "creole.general.master.slave1": [], "creole.general.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.leader.leader": [], "creole.general.leader.follower1": [], "creole.general.leader.follower2": []}

@ -10,21 +10,21 @@
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>basic</property>
<variable doc="master" multi="True" name="master" type="string">
<variable doc="leader" multi="True" name="leader" type="string">
<property>mandatory</property>
</variable>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general.master.slave1</param>
<param transitive="False" type="variable">creole.general.leader.follower1</param>
</value>
</variable>
</leader>

@ -10,29 +10,29 @@
</variable>
</family>
<family name="general1">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="master1" type="string" description="master" multi="True"/>
<variable name="slave11" type="string" description="slave1" multi="True"/>
<variable name="slave21" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
<variable name="leader1" type="string" description="leader" multi="True"/>
<variable name="follower11" type="string" description="follower1" multi="True"/>
<variable name="follower21" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
<group master="master1">
<slave>slave11</slave>
<slave>slave21</slave>
<group leader="leader1">
<follower>follower11</follower>
<follower>follower21</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general1.master.master": [], "creole.general1.master.slave1": [], "creole.general1.master.slave2": [], "creole.general1.master1.master1": [], "creole.general1.master1.slave11": [], "creole.general1.master1.slave21": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general1.leader.leader": [], "creole.general1.leader.follower1": [], "creole.general1.leader.follower2": [], "creole.general1.leader1.leader1": [], "creole.general1.leader1.follower11": [], "creole.general1.leader1.follower21": []}

@ -13,29 +13,29 @@
</family>
<family doc="general1" name="general1">
<property>normal</property>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general1.master.slave1</param>
<param transitive="False" type="variable">creole.general1.leader.follower1</param>
</value>
</variable>
</leader>
<leader doc="master" name="master1">
<leader doc="leader" name="leader1">
<property>normal</property>
<variable doc="master" multi="True" name="master1" type="string"/>
<variable doc="slave1" multi="True" name="slave11" type="string">
<variable doc="leader" multi="True" name="leader1" type="string"/>
<variable doc="follower1" multi="True" name="follower11" type="string">
<property>normal</property>
</variable>
<variable doc="slave2" multi="True" name="slave21" type="string">
<variable doc="follower2" multi="True" name="follower21" type="string">
<property>normal</property>
</variable>
</leader>

@ -10,22 +10,22 @@
</variable>
</family>
<family name="general1">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -5,13 +5,13 @@
<variables>
<family name="general1">
<variable name="slave3" type="string" description="slave3" multi="True"/>
<variable name="follower3" type="string" description="follower3" multi="True"/>
</family>
</variables>
<constraints>
<group master="master">
<slave>slave3</slave>
<group leader="leader">
<follower>follower3</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general1.master.master": [], "creole.general1.master.slave1": [], "creole.general1.master.slave2": [], "creole.general1.master.slave3": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general1.leader.leader": [], "creole.general1.leader.follower1": [], "creole.general1.leader.follower2": [], "creole.general1.leader.follower3": []}

@ -13,22 +13,22 @@
</family>
<family doc="general1" name="general1">
<property>normal</property>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general1.master.slave1</param>
<param transitive="False" type="variable">creole.general1.leader.follower1</param>
</value>
</variable>
<variable doc="slave3" multi="True" name="slave3" type="string">
<variable doc="follower3" multi="True" name="follower3" type="string">
<property>normal</property>
</variable>
</leader>

@ -8,27 +8,27 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="slave3" type="string" description="slave3" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
<variable name="follower3" type="string" description="follower3" multi="True"/>
</family>
</variables>
<constraints>
<auto name="calc_val" target="slave1">
<auto name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</auto>
<auto name="calc_val" target="slave2">
<param type="variable">slave1</param>
<auto name="calc_val" target="follower2">
<param type="variable">follower1</param>
</auto>
<auto name="calc_val" target="slave3">
<param type="variable">master</param>
<auto name="calc_val" target="follower3">
<param type="variable">leader</param>
</auto>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<slave>slave3</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
<follower>follower3</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.master.master": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.leader.leader": []}

@ -10,10 +10,10 @@
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>force_default_on_freeze</property>
<property>frozen</property>
<property>hidden</property>
@ -22,22 +22,22 @@
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>force_default_on_freeze</property>
<property>frozen</property>
<property>hidden</property>
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general.master.slave1</param>
<param transitive="False" type="variable">creole.general.leader.follower1</param>
</value>
</variable>
<variable doc="slave3" multi="True" name="slave3" type="string">
<variable doc="follower3" multi="True" name="follower3" type="string">
<property>force_default_on_freeze</property>
<property>frozen</property>
<property>hidden</property>
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general.master.master</param>
<param transitive="False" type="variable">creole.general.leader.leader</param>
</value>
</variable>
</leader>

@ -8,22 +8,22 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<auto name="calc_val" target="slave1">
<auto name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</auto>
<auto name="calc_val" target="slave2">
<param type="variable">master</param>
<auto name="calc_val" target="follower2">
<param type="variable">leader</param>
</auto>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.master.master": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.leader.leader": []}

@ -10,10 +10,10 @@
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>force_default_on_freeze</property>
<property>frozen</property>
<property>hidden</property>
@ -22,13 +22,13 @@
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>force_default_on_freeze</property>
<property>frozen</property>
<property>hidden</property>
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general.master.master</param>
<param transitive="False" type="variable">creole.general.leader.leader</param>
</value>
</variable>
</leader>

@ -9,20 +9,20 @@
<value>non</value>
</variable>
</family>
<family name="mastermode" mode="expert">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<family name="leadermode" mode="expert">
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<auto name="calc_val" target="master">
<auto name="calc_val" target="leader">
<param name="valeur">valfill</param>
</auto>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -11,22 +11,22 @@
<value type="string">non</value>
</variable>
</family>
<family doc="mastermode" name="mastermode">
<family doc="leadermode" name="leadermode">
<property>expert</property>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>hidden</property>
<property>expert</property>
<variable doc="master" multi="True" name="master" type="string">
<variable doc="leader" multi="True" name="leader" type="string">
<property>force_default_on_freeze</property>
<property>frozen</property>
<value name="calc_val" type="calculation">
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>expert</property>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>expert</property>
</variable>
</leader>

@ -8,22 +8,22 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.master.master": [], "creole.general.master.slave1": [], "creole.general.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.leader.leader": [], "creole.general.leader.follower1": [], "creole.general.leader.follower2": []}

@ -10,19 +10,19 @@
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
<value name="calc_val" type="calculation">
<param transitive="False" type="variable">creole.general.master.slave1</param>
<param transitive="False" type="variable">creole.general.leader.follower1</param>
</value>
</variable>
</leader>

@ -8,20 +8,20 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
<separators/>
</variables>
<constraints>
<check name="valid_enum" target="slave1">
<check name="valid_enum" target="follower1">
<param>['a','b','c']</param>
</check>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.master.master": [], "creole.general.master.slave1": [], "creole.general.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.leader.leader": [], "creole.general.leader.follower1": [], "creole.general.leader.follower2": []}

@ -10,10 +10,10 @@
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="choice">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="choice">
<choice type="string">a</choice>
<choice type="string">b</choice>
<choice type="string">c</choice>
@ -21,7 +21,7 @@
<property>normal</property>
<value type="string">a</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
</variable>
</leader>

@ -8,17 +8,17 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True" mode="basic"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True" mode="basic"/>
</family>
<separators/>
</variables>
<constraints>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.master.master": [], "creole.general.master.slave1": [], "creole.general.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.leader.leader": [], "creole.general.leader.follower1": [], "creole.general.leader.follower2": []}

@ -10,13 +10,13 @@
<property>normal</property>
<value type="string">non</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
</variable>
</leader>

@ -9,20 +9,20 @@
<value>non</value>
</variable>
<variable name="condition" type="oui/non" description="condition"/>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
<condition name="disabled_if_in" source="condition">
<param>oui</param>
<target type="variable">slave1</target>
<target type="variable">follower1</target>
</condition>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.condition": "oui", "creole.general.master.master": [], "creole.general.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.condition": "oui", "creole.general.leader.leader": [], "creole.general.leader.follower2": []}

@ -17,14 +17,14 @@
<property>normal</property>
<value type="string">oui</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>normal</property>
<property expected="oui" inverse="False" source="creole.general.condition" type="calculation">disabled</property>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
</variable>
</leader>

@ -9,23 +9,23 @@
<value>non</value>
</variable>
<variable name="condition" type="oui/non" description="condition"/>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
<auto name="calc_val" target="slave1">
<auto name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</auto>
<condition name="disabled_if_in" source="condition">
<param>oui</param>
<target type="variable">slave1</target>
<target type="variable">follower1</target>
</condition>
</constraints>

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.general.condition": "oui", "creole.general.master.master": [], "creole.general.master.slave2": []}
{"creole.general.mode_conteneur_actif": "non", "creole.general.condition": "oui", "creole.general.leader.leader": [], "creole.general.leader.follower2": []}

@ -17,10 +17,10 @@
<property>normal</property>
<value type="string">oui</value>
</variable>
<leader doc="master" name="master">
<leader doc="leader" name="leader">
<property>normal</property>
<variable doc="master" multi="True" name="master" type="string"/>
<variable doc="slave1" multi="True" name="slave1" type="string">
<variable doc="leader" multi="True" name="leader" type="string"/>
<variable doc="follower1" multi="True" name="follower1" type="string">
<property>force_default_on_freeze</property>
<property>frozen</property>
<property>hidden</property>
@ -30,7 +30,7 @@
<param name="valeur" transitive="False" type="string">valfill</param>
</value>
</variable>
<variable doc="slave2" multi="True" name="slave2" type="string">
<variable doc="follower2" multi="True" name="follower2" type="string">
<property>normal</property>
</variable>
</leader>

@ -12,8 +12,8 @@
</family>
</variables>
<constraints>
<group master="extra.ejabberd.description">
<slave>mode</slave>
<group leader="extra.ejabberd.description">
<follower>mode</follower>
</group>
</constraints>
</rougail>

@ -20,8 +20,8 @@
</variables>
<constraints>
<group master="nut_monitor_netmask">
<slave>nut_monitor_host</slave>
<group leader="nut_monitor_netmask">
<follower>nut_monitor_host</follower>
</group>
</constraints>

@ -7,7 +7,7 @@
</variables>
<constraints>
<condition name="disabled_if_in" source="replicationType">
<param>master-master</param>
<param>leader-leader</param>
<target type="variable">replicationType</target>
</condition>
</constraints>

@ -10,22 +10,22 @@
</variable>
</family>
<family name="general">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -5,25 +5,25 @@
<variables>
<family name="general">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -10,22 +10,22 @@
</variable>
</family>
<family name="general1">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave2</slave>
<slave>slave1</slave>
<group leader="leader">
<follower>follower2</follower>
<follower>follower1</follower>
</group>
</constraints>

@ -10,24 +10,24 @@
</variable>
</family>
<family name="general1">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
</family>
<family name="general2">
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -10,22 +10,22 @@
</variable>
</family>
<family name="general1">
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1"/>
<variable name="slave2" type="string" description="slave2" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1"/>
<variable name="follower2" type="string" description="follower2" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -8,22 +8,22 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" auto_save="True" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" auto_save="True" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -8,26 +8,26 @@
<variable name="mode_conteneur_actif" type="oui/non" description="No change">
<value>non</value>
</variable>
<variable name="master" type="string" description="master" multi="True"/>
<variable name="slave1" type="string" description="slave1" multi="True"/>
<variable name="slave2" type="string" description="slave2" auto_save="True" multi="True"/>
<variable name="leader" type="string" description="leader" multi="True"/>
<variable name="follower1" type="string" description="follower1" multi="True"/>
<variable name="follower2" type="string" description="follower2" auto_save="True" multi="True"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
<group master="master1">
<slave>slave3</slave>
<slave>slave4</slave>
<group leader="leader1">
<follower>follower3</follower>
<follower>follower4</follower>
</group>
</constraints>

@ -5,22 +5,22 @@
<variables>
<family name="general">
<variable name="master" type="string" description="master" auto_freeze="True"/>
<variable name="slave1" type="string" description="slave1"/>
<variable name="slave2" type="string" description="slave2"/>
<variable name="leader" type="string" description="leader" auto_freeze="True"/>
<variable name="follower1" type="string" description="follower1"/>
<variable name="follower2" type="string" description="follower2"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>

@ -5,22 +5,22 @@
<variables>
<family name="general">
<variable name="master" type="string" description="master"/>
<variable name="slave1" type="string" description="slave1"/>
<variable name="slave2" type="string" description="slave2"/>
<variable name="leader" type="string" description="leader"/>
<variable name="follower1" type="string" description="follower1"/>
<variable name="follower2" type="string" description="follower2"/>
</family>
</variables>
<constraints>
<fill name="calc_val" target="slave1">
<fill name="calc_val" target="follower1">
<param name="valeur">valfill</param>
</fill>
<fill name="calc_val" target="slave2">
<param type="variable">slave1</param>
<fill name="calc_val" target="follower2">
<param type="variable">follower1</param>
</fill>
<group master="master">
<slave>slave1</slave>
<slave>slave2</slave>
<group leader="leader">
<follower>follower1</follower>
<follower>follower2</follower>
</group>
</constraints>