feat(validation): refuse a variable declared by two input specs

This commit is contained in:
2026-10-05 18:08:55 +02:00
parent 7253f6af96
commit 73136b7ebb
2 changed files with 24 additions and 0 deletions
+4
View File
@@ -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"):