fix: auto redefine in type is only for default
This commit is contained in:
parent
0a97dc877e
commit
a417517e61
2 changed files with 13 additions and 6 deletions
|
|
@ -409,7 +409,7 @@ class ParserVariable:
|
||||||
exists = obj.pop("exists", None)
|
exists = obj.pop("exists", None)
|
||||||
else:
|
else:
|
||||||
exists = None
|
exists = None
|
||||||
redefine = obj.pop("redefine", False) or (force_redefine is True and path in self.paths)
|
redefine = self.is_redefine(path, obj, force_redefine)
|
||||||
obj_type = self.get_family_or_variable_type(obj)
|
obj_type = self.get_family_or_variable_type(obj)
|
||||||
family_obj, children_obj = self.split_param_family_children(path, sources, obj_type, obj)
|
family_obj, children_obj = self.split_param_family_children(path, sources, obj_type, obj)
|
||||||
if self.version != "1.0" and not family_obj and comment:
|
if self.version != "1.0" and not family_obj and comment:
|
||||||
|
|
@ -430,7 +430,7 @@ class ParserVariable:
|
||||||
copy_before_set=True,
|
copy_before_set=True,
|
||||||
custom_type=True,
|
custom_type=True,
|
||||||
)
|
)
|
||||||
force_redefine=True
|
force_redefine = True
|
||||||
family_obj, children_obj = self.split_param_family_children(path, sources, obj_type, obj)
|
family_obj, children_obj = self.split_param_family_children(path, sources, obj_type, obj)
|
||||||
family_obj["type"] = self.paths[path].type
|
family_obj["type"] = self.paths[path].type
|
||||||
if path in self.paths:
|
if path in self.paths:
|
||||||
|
|
@ -522,6 +522,10 @@ class ParserVariable:
|
||||||
copy_before_set=copy_before_set,
|
copy_before_set=copy_before_set,
|
||||||
custom_type=custom_type,
|
custom_type=custom_type,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def is_redefine(self, path: str, obj, force_redefine: bool):
|
||||||
|
return obj.pop("redefine", False) or (force_redefine is True and path in self.paths and list(obj) in [[], ["default"]])
|
||||||
|
|
||||||
def split_param_family_children(self, path, sources, obj_type, obj):
|
def split_param_family_children(self, path, sources, obj_type, obj):
|
||||||
family_obj = {}
|
family_obj = {}
|
||||||
children_obj = {}
|
children_obj = {}
|
||||||
|
|
@ -716,7 +720,7 @@ class ParserVariable:
|
||||||
self.parse_params(path, obj, sources)
|
self.parse_params(path, obj, sources)
|
||||||
self.parse_secret_manager(path, obj, sources, family_is_dynamic, copy_before_set)
|
self.parse_secret_manager(path, obj, sources, family_is_dynamic, copy_before_set)
|
||||||
exists = obj.pop("exists", None)
|
exists = obj.pop("exists", None)
|
||||||
redefine = obj.pop("redefine", False) or (force_redefine is True and path in self.paths)
|
redefine = self.is_redefine(path, obj, force_redefine)
|
||||||
if not redefine and not exists:
|
if not redefine and not exists:
|
||||||
obj_type = obj.get("type")
|
obj_type = obj.get("type")
|
||||||
if obj_type in self.custom_variable_types:
|
if obj_type in self.custom_variable_types:
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,10 @@ my_leadership_4:
|
||||||
|
|
||||||
my_leadership:
|
my_leadership:
|
||||||
|
|
||||||
a_leader: # a description
|
a_leader:
|
||||||
- a value leader
|
description: a description
|
||||||
- a second leader
|
redefine: true
|
||||||
|
default:
|
||||||
|
- a value leader
|
||||||
|
- a second leader
|
||||||
...
|
...
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue