condition and check

This commit is contained in:
Emmanuel Garette 2019-11-27 14:03:34 +01:00
parent 590283ef25
commit 4c84a8b89b
169 changed files with 316 additions and 434 deletions

View file

@ -477,6 +477,7 @@ class SpaceAnnotator(object):
self.filter_check()
self.filter_condition()
self.convert_valid_enums()
self.convert_check()
self.convert_autofill()
self.remove_empty_families()
self.change_variable_mode()
@ -484,8 +485,11 @@ class SpaceAnnotator(object):
self.filter_separators()
self.absolute_path_for_symlink_in_containers()
self.convert_helps()
#if hasattr(self.space, 'constraints'):
# print(vars(self.space.constraints))
if hasattr(self.space, 'constraints'):
del self.space.constraints.index
if vars(self.space.constraints):
raise Exception('constraints again?')
del self.space.constraints
def absolute_path_for_symlink_in_containers(self):
if not hasattr(self.space, 'containers'):
@ -717,7 +721,8 @@ class SpaceAnnotator(object):
del self.force_value[path]
def convert_valid_enums(self): # pylint: disable=C0111
if hasattr(self.space, 'variables'):
if not hasattr(self.space, 'variables'):
return
for variables in self.space.variables.values():
namespace = variables.name
if hasattr(variables, 'family'):
@ -991,6 +996,9 @@ class SpaceAnnotator(object):
remove_params.append(param_idx)
except TypeError as err:
raise CreoleDictConsistencyError(_('cannot load checkval value for variable {}: {}').format(check.target, err))
if proposed_value_type:
# no more supported
raise CreoleDictConsistencyError(_('cannot load checkval value for variable {}, no more supported').format(check.target))
remove_params.sort(reverse=True)
for param_idx in remove_params:
del check.param[param_idx]
@ -1021,7 +1029,6 @@ class SpaceAnnotator(object):
remove_indexes.sort(reverse=True)
for idx in remove_indexes:
del space[idx]
#convert level to "warnings_only" and hidden to "transitive"
for check in space:
if check.level == 'warning':
@ -1037,6 +1044,48 @@ class SpaceAnnotator(object):
param.hidden = None
check.transitive = transitive
if not self.space.constraints.check:
del self.space.constraints.check
def convert_check(self):
if not hasattr(self.space, 'constraints') or not hasattr(self.space.constraints, 'check'):
return
for check in self.space.constraints.check:
variable = self.paths.get_variable_obj(check.target)
check_ = self.objectspace.check()
check_.type = 'calculation'
name = check.name
if name == 'valid_differ':
name = 'valid_not_equal'
elif name == 'valid_network_netmask':
params_len = 1
if len(check.param) != params_len:
raise CreoleLoaderError(_('{} must have {} param').format(name, params_len))
elif name == 'valid_ipnetmask':
params_len = 1
if len(check.param) != params_len:
raise CreoleLoaderError(_('{} must have {} param').format(name, params_len))
name = 'valid_ip_netmask'
elif name == 'valid_broadcast':
params_len = 2
if len(check.param) != params_len:
raise CreoleLoaderError(_('{} must have {} param').format(name, params_len))
elif name == 'valid_in_network':
params_len = 2
if len(check.param) != params_len:
raise CreoleLoaderError(_('{} must have {} param').format(name, params_len))
check_.name = name
check_.warnings_only = check.warnings_only
check_.transitive = check.transitive
if hasattr(check, 'param'):
check_.param = check.param
if not hasattr(variable, 'check'):
variable.check = []
variable.check.append(check_)
del self.space.constraints.check
def convert_fill(self, fill_space, space): # pylint: disable=C0111,R0912
fills = {}
# sort fill/auto by index

View file

@ -6,7 +6,7 @@ from os import listdir
#from ast import literal_eval
from lxml.etree import parse, DTD
from tiramisu.option import (UnicodeOption, OptionDescription, PortOption,
from tiramisu.option import (StrOption, OptionDescription, PortOption,
IntOption, ChoiceOption, BoolOption, SymLinkOption, IPOption,
NetworkOption, NetmaskOption, DomainnameOption, BroadcastOption,
URLOption, EmailOption, FilenameOption, UsernameOption, DateOption,
@ -46,7 +46,7 @@ def convert_tiramisu_value(value, obj):
raise Exception('unknown value {} while trying to cast {} to boolean'.format(value, obj))
return prop[value]
func = {IntOption: int, UnicodeOption: str, PortOption: str,
func = {IntOption: int, StrOption: str, PortOption: str,
DomainnameOption: str, EmailOption: str, URLOption: str,
IPOption: str, NetmaskOption: str, NetworkOption: str,
BroadcastOption: str, FilenameOption: str,
@ -61,7 +61,7 @@ def convert_tiramisu_value(value, obj):
CONVERT_OPTION = {'number': dict(opttype=IntOption),
'choice': dict(opttype=ChoiceOption),
'string': dict(opttype=UnicodeOption),
'string': dict(opttype=StrOption),
'password': dict(opttype=PasswordOption),
'mail': dict(opttype=EmailOption),
'boolean': dict(opttype=BoolOption),
@ -119,7 +119,7 @@ class PopulateTiramisuObjects(object):
if set(attr.itervalues()) == set(['True', 'False']):
self.booleans.append(attr.name)
def make_tiramisu_objects(self, xmlroot, creolefunc_file, load_extra=True):
def make_tiramisu_objects(self, xmlroot, creolefunc_file):
elt = Elt({'name': 'baseoption'})
family = Family(elt, self.booleans, self.storage)
self.storage.add('.', family)
@ -142,8 +142,6 @@ class PopulateTiramisuObjects(object):
# `actions` family has to be loaded at the very end
# because it may use `creole` or `extra` variables
for xml in xmlelts_:
if not load_extra and xml.attrib['name'] not in ['creole', 'containers']:
continue
if xml.attrib['name'] == 'creole':
xmlelts.insert(0, xml)
elif xml.attrib['name'] == 'actions':
@ -155,12 +153,9 @@ class PopulateTiramisuObjects(object):
else:
xmlelts = xmlelts_
for xmlelt in xmlelts:
if xmlelt.tag == 'family':
self._iter_family(xmlelt, family)
elif xmlelt.tag == 'constraints':
self._iter_constraints(xmlelt, load_extra)
else:
if xmlelt.tag != 'family':
raise CreoleLoaderError(_('unknown tag {}').format(xmlelt.tag))
self._iter_family(xmlelt, family)
def _populate_variable(self, elt, subpath, is_follower, is_leader):
variable = Variable(elt, self.booleans, self.storage, is_follower, is_leader, self.eosfunc)
@ -188,164 +183,6 @@ class PopulateTiramisuObjects(object):
subpath += '.' + elt.attrib['name']
return subpath
def _iter_constraints(self, xmlelt, load_extra):
for elt in xmlelt:
if elt.tag == 'fill':
self._parse_fill(elt, load_extra)
elif elt.tag == 'check':
self._parse_check(elt, load_extra)
else:
raise CreoleLoaderError(_('unknown constraint {}').format(elt.tag))
def _check_extra(self, variable, load_extra):
if load_extra:
return True
return variable.startswith('creole.') or variable.startswith('containers.')
def _parse_fill(self, elt, load_extra):
if not self._check_extra(elt.attrib['target'], load_extra):
return
callback = getattr(self.eosfunc, elt.attrib['name'])
callback_params = {}
for param in elt:
name = param.attrib.get('name', '')
if param.attrib['type'] == 'string':
value = str(param.text)
elif param.attrib['type'] == 'eole':
hidden = param.attrib['hidden']
if hidden == 'True':
hidden = False
elif hidden == 'False':
hidden = True
else:
raise CreoleLoaderError(_('unknown hidden boolean {}').format(hidden))
if not self._check_extra(param.text, load_extra):
return
value = [self.storage.get(param.text), hidden]
elif param.attrib['type'] == 'number':
value = int(param.text)
elif param.attrib['type'] == 'context':
value = (None,)
else:
raise CreoleLoaderError(_('unknown param type {} in fill to {}').format(param.attrib['type'], elt.attrib['target']))
callback_params.setdefault(name, []).append(value)
if callback_params == {}:
callback_params = None
self.storage.add_callback(elt.attrib['target'], callback, callback_params)
def _parse_check(self, elt, load_extra):
if not self._check_extra(elt.attrib['target'], load_extra):
return
all_param_eole = True
for param in elt:
if param.attrib.get('type') != 'eole':
all_param_eole = False
break
if elt.attrib['name'] == 'valid_enum':
# only for valid_enum with checkval to True
if len(elt) != 1:
raise CreoleLoaderError(_('valid_enum cannot have more than one param for {}').format(elt.attrib['target']))
if elt[0].attrib['type'] == 'eole':
proposed = elt[0].text
type_ = 'eole'
else:
#proposed_value = literal_eval(elt[0].text)
proposed_value = eval(elt[0].text)
proposed = tuple(proposed_value)
type_ = 'string'
self.storage.add_information(elt.attrib['target'], 'proposed_value', {'value': proposed, 'type': type_})
validator = getattr(self.eosfunc, elt.attrib['name'])
elif elt.attrib['name'] == 'valid_differ' and all_param_eole:
if (HIGH_COMPATIBILITY and len(elt) not in [0, 1]) or (not HIGH_COMPATIBILITY and len(elt) != 1):
raise CreoleLoaderError(_('valid_differ length should be 1'))
if HIGH_COMPATIBILITY and len(elt) == 1:
if not self._check_extra(elt[0].text, load_extra):
return
variables = [self.storage.get(elt[0].text)]
else:
variables = []
self.storage.add_consistency(elt.attrib['target'],
'not_equal',
variables,
elt.attrib['warnings_only'],
elt.attrib['transitive'])
elif elt.attrib['name'] == 'valid_networknetmask':
if len(elt) != 1:
raise CreoleLoaderError(_('valid_networknetmask length should be 1'))
if not all_param_eole:
raise CreoleLoaderError(_('valid_networknetmask must have only eole variable'))
variables = [self.storage.get(elt[0].text)]
self.storage.add_consistency(elt.attrib['target'],
'network_netmask',
variables,
elt.attrib['warnings_only'],
elt.attrib['transitive'])
elif elt.attrib['name'] == 'valid_ipnetmask':
if len(elt) != 1:
raise CreoleLoaderError(_('valid_ipnetmask length should be 1'))
if not all_param_eole:
raise CreoleLoaderError(_('valid_ipnetmask must have only eole variable'))
if not self._check_extra(elt[0].text, load_extra):
return
variables = [self.storage.get(elt[0].text)]
self.storage.add_consistency(elt.attrib['target'],
'ip_netmask',
variables,
elt.attrib['warnings_only'],
elt.attrib['transitive'])
elif elt.attrib['name'] == 'valid_broadcast':
if len(elt) != 2:
raise CreoleLoaderError(_('valid_broadcast length should be 2'))
if not all_param_eole:
raise CreoleLoaderError(_('valid_broadcast must have only eole variable'))
if not self._check_extra(elt[0].text, load_extra):
return
variables = [self.storage.get(elt[0].text)]
if not self._check_extra(elt[1].text, load_extra):
return
variables.append(self.storage.get(elt[1].text))
self.storage.add_consistency(elt.attrib['target'],
'broadcast',
variables,
elt.attrib['warnings_only'],
elt.attrib['transitive'])
elif elt.attrib['name'] == 'valid_in_network':
if len(elt) != 2:
raise CreoleLoaderError(_('valid_in_network length should be 2'))
if not all_param_eole:
raise CreoleLoaderError(_('valid_in_network must have only eole variable'))
if not self._check_extra(elt[0].text, load_extra):
return
variables = [self.storage.get(elt[0].text)]
if not self._check_extra(elt[1].text, load_extra):
return
variables.append(self.storage.get(elt[1].text))
self.storage.add_consistency(elt.attrib['target'],
'in_network',
variables,
elt.attrib['warnings_only'],
elt.attrib['transitive'])
else:
validator = getattr(self.eosfunc, elt.attrib['name'])
validator_params = {}
for param in elt:
text = param.text
if param.attrib['type'] == 'eole':
hidden = param.attrib.get('hidden', 'True')
if hidden == 'True':
hidden = False
elif hidden == 'False':
hidden = True
else:
raise CreoleLoaderError(_('unknown hidden boolean {}').format(hidden))
if not self._check_extra(text, load_extra):
return
text = [self.storage.get(text), hidden]
validator_params.setdefault(param.attrib.get('name', ''), []).append(text)
self.storage.add_validator(elt.attrib['target'], validator, validator_params)
def _iter_leader(self, leader, subpath):
subpath = self._build_path(subpath, leader)
family = Family(leader, self.booleans, self.storage)
@ -461,18 +298,10 @@ class ElementStorage:
raise CreoleLoaderError(_('path already loaded {}').format(path))
self.paths[path] = elt
def add_callback(self, path, callback, callback_params):
elt = self.get(path)
elt.add_callback(callback, callback_params)
def add_information(self, path, name, information):
elt = self.get(path)
elt.add_information(name, information)
def add_validator(self, path, validator, validator_params):
elt = self.get(path)
elt.add_validator(validator, validator_params)
def add_consistency(self, path, consistence, variables, warnings_only, transitive):
elt = self.get(path)
elt.add_consistency(consistence, variables, warnings_only, transitive)
@ -508,9 +337,7 @@ class Variable(Common):
self.option = None
self.informations = {}
self.attrib = {}
self.callbacks = []
self.requires = []
self.validator = None
self.consistencies = []
self.attrib['properties'] = []
self.eosfunc = eosfunc
@ -559,6 +386,15 @@ class Variable(Common):
else:
self.attrib['properties'].append(child.text)
elif child.tag == 'value':
if child.attrib.get('type') == 'calculation':
if child.text.strip():
self.attrib['default'] = (child.text.strip(),)
else:
params = []
for param in child:
params.append(self.parse_param(param))
self.attrib['default'] = (child.attrib['name'], params)
else:
if "type" in child.attrib:
type_ = CONVERT_OPTION[child.attrib['type']]['opttype']
else:
@ -588,20 +424,33 @@ class Variable(Common):
del self.attrib['multi']
self.attrib['opt'] = storage.get(self.attrib['opt'])
def parse_param(self, param):
name = param.attrib.get('name', '')
if param.attrib['type'] == 'string':
value = param.text
elif param.attrib['type'] == 'eole':
hidden = param.attrib['hidden']
if hidden == 'True':
hidden = False
elif hidden == 'False':
hidden = True
else:
raise CreoleLoaderError(_('unknown hidden boolean {}').format(hidden))
value = [param.text, hidden]
elif param.attrib['type'] == 'number':
value = int(param.text)
else:
raise CreoleLoaderError(_('unknown param type {}').format(param.attrib['type']))
return(name, value)
def add_information(self, key, value):
if key in self.informations:
raise CreoleLoaderError(_('key already exists in information {}').format(key))
self.informations[key] = value
def add_callback(self, callback, callback_params):
self.callbacks.append((callback, callback_params))
def add_requires(self, requires):
self.requires.extend(requires)
def add_validator(self, validator, validator_params):
self.validator = (validator, validator_params)
def add_consistency(self, consistence, variables, warnings_only, transitive):
self.consistencies.append((consistence, variables, warnings_only, transitive))
@ -627,12 +476,48 @@ class Variable(Common):
return new_params
return params
def build_default(self):
if 'default' in self.attrib:
default = self.attrib['default']
if isinstance(default, tuple):
#('calc_val', [('', ['creole.general.mode_conteneur_actif1', False])])
args = []
kwargs = {}
if len(default) == 2:
for param in default[1]:
if isinstance(param[1], list):
value = ParamOption(self.storage.get(param[1][0]).get(), notraisepropertyerror=param[1][1])
else:
value = ParamValue(param[1])
if not param[0]:
args.append(value)
else:
kwargs[param[0]] = value
self.attrib['default'] = Calculation(getattr(self.eosfunc, default[0]),
Params(tuple(args),
kwargs=kwargs))
#for index, obj in enumerate(self.attrib.get('values', [])):
# print(obj)
#if isinstance(prop, tuple):
# action, kwargs = prop
# kwargs['condition'] = ParamOption(self.storage.get(kwargs['condition']).get(), todict=True)
# prop = Calculation(calc_value,
# Params(action,
# kwargs=kwargs))
# self.attrib['properties'][index] = prop
#if self.attrib['properties']:
# self.attrib['properties'] = tuple(self.attrib['properties'])
#else:
# del self.attrib['properties']
def get(self):
if self.option is None:
if self.object_type is SymLinkOption:
self.attrib['opt'] = self.attrib['opt'].get()
else:
self.build_properties()
self.build_default()
#for callback, callback_params in self.callbacks:
# self.attrib['callback'] = callback
# self.attrib['callback_params'] = self.build_params(callback_params)

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>basic</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>basic</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>expert</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>basic</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>basic</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="Général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>basic</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>basic</property>

View file

@ -1,11 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints>
<check name="valid_entier" target="creole.general.int" transitive="True" warnings_only="False">
<param name="mini" type="string">0</param>
<param name="maxi" type="string">100</param>
</check>
</constraints>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>
@ -15,6 +9,10 @@
<value>b</value>
</variable>
<variable doc="No change" multi="False" name="int" type="number">
<check level="error" name="valid_entier" transitive="True" type="calculation" warnings_only="False">
<param name="mini" type="string">0</param>
<param name="maxi" type="string">100</param>
</check>
<property>normal</property>
</variable>
</family>

View file

@ -1,11 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints>
<check name="valid_entier" target="creole.general.int" transitive="True" warnings_only="False">
<param name="mini" type="string">0</param>
<param name="maxi" type="eole">creole.general.int2</param>
</check>
</constraints>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>
@ -20,6 +14,10 @@
<value>100</value>
</variable>
<variable doc="No change" multi="False" name="int" type="number">
<check level="error" name="valid_entier" transitive="True" type="calculation" warnings_only="False">
<param name="mini" type="string">0</param>
<param name="maxi" type="eole">creole.general.int2</param>
</check>
<property>normal</property>
</variable>
</family>

View file

@ -1,11 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints>
<check name="valid_differ" target="creole.general.int" transitive="True" warnings_only="False">
<param type="eole">creole.general.int2</param>
</check>
<check name="valid_differ" target="creole.general.int" transitive="True" warnings_only="False"/>
</constraints>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>
@ -15,6 +9,10 @@
<value>b</value>
</variable>
<variable doc="No change" multi="False" name="int" type="number">
<check level="error" name="valid_not_equal" transitive="True" type="calculation" warnings_only="False">
<param type="eole">creole.general.int2</param>
</check>
<check level="error" name="valid_not_equal" transitive="True" type="calculation" warnings_only="False"/>
<property>normal</property>
</variable>
<variable doc="No change" multi="False" name="int2" type="number">

View file

@ -1,14 +1,12 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints>
<check name="valid_differ" target="creole.general.mode_conteneur_actif" transitive="True" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif1</param>
</check>
</constraints>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>
<variable doc="No change" multi="False" name="mode_conteneur_actif" type="choice">
<check level="error" name="valid_not_equal" transitive="True" type="calculation" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif1</param>
</check>
<choice type="string">oui</choice>
<choice type="string">non</choice>
<property>mandatory</property>

View file

@ -1,19 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints>
<check name="valid_differ" target="creole.general.mode_conteneur_actif3" transitive="True" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif1</param>
</check>
<check name="valid_differ" target="creole.general.mode_conteneur_actif3" transitive="True" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif2</param>
</check>
<check name="valid_differ" target="creole.general.mode_conteneur_actif3" transitive="True" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif1</param>
</check>
<check name="valid_differ" target="creole.general.mode_conteneur_actif3" transitive="True" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif2</param>
</check>
</constraints>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>
@ -39,6 +25,18 @@
<value type="string">non</value>
</variable>
<variable doc="No change" multi="False" name="mode_conteneur_actif3" type="string">
<check level="error" name="valid_not_equal" transitive="True" type="calculation" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif1</param>
</check>
<check level="error" name="valid_not_equal" transitive="True" type="calculation" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif2</param>
</check>
<check level="error" name="valid_not_equal" transitive="True" type="calculation" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif1</param>
</check>
<check level="error" name="valid_not_equal" transitive="True" type="calculation" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif2</param>
</check>
<property>mandatory</property>
<property>normal</property>
<value>oui</value>

View file

@ -1,13 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints>
<check name="valid_differ" target="creole.general.mode_conteneur_actif3" transitive="True" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif1</param>
</check>
<check name="valid_differ" target="creole.general.mode_conteneur_actif3" transitive="True" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif2</param>
</check>
</constraints>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>
@ -33,6 +25,12 @@
<value type="string">non</value>
</variable>
<variable doc="No change" multi="False" name="mode_conteneur_actif3" type="string">
<check level="error" name="valid_not_equal" transitive="True" type="calculation" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif1</param>
</check>
<check level="error" name="valid_not_equal" transitive="True" type="calculation" warnings_only="False">
<param type="eole">creole.general.mode_conteneur_actif2</param>
</check>
<property>mandatory</property>
<property>normal</property>
<value>oui</value>

View file

@ -1,10 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints>
<check name="valid_ipnetmask" target="creole.general.adresse_netmask_eth0" transitive="True" warnings_only="True">
<param type="eole">creole.general.adresse_ip_eth0</param>
</check>
</constraints>
<family doc="" name="creole">
<family doc="general" name="general">
<property>basic</property>
@ -20,6 +15,9 @@
<property>basic</property>
</variable>
<variable doc="Masque de sous réseau de la carte" multi="False" name="adresse_netmask_eth0" type="netmask">
<check level="error" name="valid_ip_netmask" transitive="True" type="calculation" warnings_only="True">
<param type="eole">creole.general.adresse_ip_eth0</param>
</check>
<property>mandatory</property>
<property>basic</property>
</variable>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="Général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>basic</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>expert</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="Général" name="general">
<property>normal</property>

View file

@ -20,7 +20,6 @@
<constraints>
<check name="valid_enum" target="enumvar">
<param>['a', 'b', 'c', 'é']</param>
<param name="checkval">False</param>
</check>
</constraints>

View file

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "non", "creole.enumfam.enumvar": "a"}
{"creole.general.mode_conteneur_actif": "non", "creole.enumfam.enumvar": "c"}

View file

@ -1,10 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints>
<check name="valid_enum" target="creole.enumfam.enumvar" transitive="True" warnings_only="False">
<param type="string">['a', 'b', 'c', 'é']</param>
</check>
</constraints>
<family doc="" name="creole">
<family doc="general" name="general">
<property>expert</property>
@ -18,10 +13,14 @@
</family>
<family doc="enumfam" name="enumfam">
<property>expert</property>
<variable doc="multi" help="bla bla bla" multi="False" name="enumvar" type="string">
<variable doc="multi" help="bla bla bla" multi="False" name="enumvar" type="choice">
<choice type="string">a</choice>
<choice type="string">b</choice>
<choice type="string">c</choice>
<choice type="string">é</choice>
<property>mandatory</property>
<property>expert</property>
<value>a</value>
<value type="string">c</value>
</variable>
</family>
<separators/>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>expert</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>expert</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>expert</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>expert</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>expert</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>expert</property>

View file

@ -15,7 +15,6 @@
<constraints>
<check name="valid_enum" target="mode_conteneur_actif">
<param>['a','b','c']</param>
<param name="checkval">False</param>
</check>
</constraints>

View file

@ -1 +1 @@
{"creole.general.mode_conteneur_actif": "a"}
{"creole.general.mode_conteneur_actif": "b"}

View file

@ -1,17 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints>
<check name="valid_enum" target="creole.general.mode_conteneur_actif" transitive="True" warnings_only="False">
<param type="string">['a','b','c']</param>
</check>
</constraints>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>
<variable doc="No change" multi="False" name="mode_conteneur_actif" type="string">
<variable doc="No change" multi="False" name="mode_conteneur_actif" type="choice">
<choice type="string">a</choice>
<choice type="string">b</choice>
<choice type="string">c</choice>
<property>mandatory</property>
<property>normal</property>
<value>a</value>
<value type="string">b</value>
</variable>
</family>
<separators/>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family name="containers">
<family name="container0" doc="test">
<family doc="files" name="files">

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family name="containers">
<family name="container0" doc="test">
<family doc="files" name="files">

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family name="containers">
<family name="container0" doc="test">
<family doc="files" name="files">

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family name="containers">
<family name="container0" doc="test">
<family doc="files" name="files">

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family name="containers">
<family name="container0" doc="test">
<family doc="files" name="files">

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family name="containers">
<family name="container0" doc="test">
<family doc="files" name="files">

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family name="containers">
<family name="container0" doc="test">
<family doc="files" name="files">

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="Général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>basic</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>hidden</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>basic</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="Général" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>basic</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

View file

@ -1,6 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<creole>
<constraints/>
<family doc="" name="creole">
<family doc="general" name="general">
<property>normal</property>

Some files were not shown because too many files have changed in this diff Show more