feat(validation): refuse a variable declared by two input specs
This commit is contained in:
@@ -110,10 +110,14 @@ class ActionModule(ActionBase):
|
||||
result = super().run(tmp, task_vars)
|
||||
task_vars = task_vars or {}
|
||||
validator = _Validator(self._templar)
|
||||
declared = {}
|
||||
for path in self._task.args["specs"]:
|
||||
options = self._loader.load_from_file(path)["argument_specs"]["inputs"]["options"]
|
||||
_check_spec(options, path)
|
||||
for name, spec in options.items():
|
||||
if name in declared:
|
||||
raise AnsibleError(f"{name} is declared by both {declared[name]} and {path}")
|
||||
declared[name] = path
|
||||
if name in task_vars:
|
||||
validator.check(spec, task_vars[name], name)
|
||||
elif spec.get("required"):
|
||||
|
||||
Reference in New Issue
Block a user