diff --git a/src/rougail/loader.py b/src/rougail/loader.py index d24732eaf..bff28aeb8 100644 --- a/src/rougail/loader.py +++ b/src/rougail/loader.py @@ -60,7 +60,7 @@ CONVERT_OPTION = {'number': dict(opttype=IntOption), 'string': dict(opttype=StrOption), 'password': dict(opttype=PasswordOption), 'mail': dict(opttype=EmailOption), - 'boolean': dict(opttype=BoolOption), + 'boolean': dict(opttype=BoolOption, initkwargs={'default': True}), 'symlink': dict(opttype=SymLinkOption), 'filename': dict(opttype=FilenameOption), 'date': dict(opttype=DateOption), @@ -269,6 +269,9 @@ class Variable(Common): self.option = None self.informations = {} self.attrib = {} + convert_option = CONVERT_OPTION[elt.attrib['type']] + if 'initkwargs' in convert_option: + self.attrib.update(convert_option['initkwargs']) if elt.attrib['type'] != 'symlink': self.attrib['properties'] = [] self.attrib['validators'] = [] @@ -278,15 +281,12 @@ class Variable(Common): self.populate_attrib(elt) self.is_follower = is_follower self.is_leader = is_leader - convert_option = CONVERT_OPTION[elt.attrib['type']] self.object_type = convert_option['opttype'] self.populate_choice(elt) for child in elt: self.populate_property(child) self.populate_value(child) self.populate_check(child) - if 'initkwargs' in convert_option: - self.attrib.update(convert_option['initkwargs']) if elt.attrib['type'] == 'symlink': self.attrib['opt'] = storage.get(self.attrib['opt']) @@ -371,9 +371,6 @@ class Variable(Common): if not self.is_leader: self.attrib['default_multi'].append(value) else: - if 'default' in self.attrib: - raise CreoleLoaderError(_('default value already set for {}' - '').format(self.attrib['path'])) value = convert_tiramisu_value(child.text, type_) if self.is_follower: self.attrib['default_multi'] = value diff --git a/tests/flattener_dicos/11disabled_if_in_filelist/00-base.xml b/tests/flattener_dicos/11disabled_if_in_filelist/00-base.xml index 900ea4d92..6a391d6bc 100644 --- a/tests/flattener_dicos/11disabled_if_in_filelist/00-base.xml +++ b/tests/flattener_dicos/11disabled_if_in_filelist/00-base.xml @@ -15,9 +15,7 @@ non - - non - + diff --git a/tests/flattener_dicos/11disabled_if_in_filelist/makedict/base.json b/tests/flattener_dicos/11disabled_if_in_filelist/makedict/base.json index e6f3324a0..8841e51c4 100644 --- a/tests/flattener_dicos/11disabled_if_in_filelist/makedict/base.json +++ b/tests/flattener_dicos/11disabled_if_in_filelist/makedict/base.json @@ -1 +1 @@ -{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": "non", "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.templating": true, "services.test.files.file.activate": true} +{"rougail.general.condition": "non", "rougail.general.mode_conteneur_actif": "non", "rougail.general.mode_conteneur_actif2": true, "services.test.files.file.group": "root", "services.test.files.file.mode": "0644", "services.test.files.file.name": "/etc/file", "services.test.files.file.owner": "root", "services.test.files.file.source": "file", "services.test.files.file.templating": true, "services.test.files.file.activate": true} diff --git a/tests/flattener_dicos/11disabled_if_in_filelist/result/00-base.xml b/tests/flattener_dicos/11disabled_if_in_filelist/result/00-base.xml index 850de90a3..5f8454781 100644 --- a/tests/flattener_dicos/11disabled_if_in_filelist/result/00-base.xml +++ b/tests/flattener_dicos/11disabled_if_in_filelist/result/00-base.xml @@ -49,13 +49,9 @@ disabled non - - oui - non - mandatory + normal disabled - non