diff --git a/changelogs/fragments/58752_argument_aliases.yml b/changelogs/fragments/58752_argument_aliases.yml new file mode 100644 index 00000000000..0fa07db1f7f --- /dev/null +++ b/changelogs/fragments/58752_argument_aliases.yml @@ -0,0 +1,2 @@ +minor_changes: +- Added name of aliases in user error (https://github.com/ansible/ansible/issues/58752). diff --git a/lib/ansible/module_utils/basic.py b/lib/ansible/module_utils/basic.py index 95d73459b58..66b246cbd44 100644 --- a/lib/ansible/module_utils/basic.py +++ b/lib/ansible/module_utils/basic.py @@ -1574,7 +1574,13 @@ class AnsibleModule(object): msg = "Unsupported parameters for (%s) module: %s" % (self._name, ', '.join(sorted(list(unsupported_parameters)))) if self._options_context: msg += " found in %s." % " -> ".join(self._options_context) - msg += " Supported parameters include: %s" % (', '.join(sorted(spec.keys()))) + supported_parameters = list() + for key in sorted(spec.keys()): + if 'aliases' in spec[key] and spec[key]['aliases']: + supported_parameters.append("%s (%s)" % (key, ', '.join(sorted(spec[key]['aliases'])))) + else: + supported_parameters.append(key) + msg += " Supported parameters include: %s" % (', '.join(supported_parameters)) self.fail_json(msg=msg) if self.check_mode and not self.supports_check_mode: self.exit_json(skipped=True, msg="remote module (%s) does not support check mode" % self._name) diff --git a/test/units/module_utils/basic/test_argument_spec.py b/test/units/module_utils/basic/test_argument_spec.py index 6e297669561..36a699d66c1 100644 --- a/test/units/module_utils/basic/test_argument_spec.py +++ b/test/units/module_utils/basic/test_argument_spec.py @@ -85,6 +85,8 @@ INVALID_SPECS = ( # unknown parameter ({'arg': {'type': 'int'}}, {'other': 'bad', '_ansible_module_name': 'ansible_unittest'}, 'Unsupported parameters for (ansible_unittest) module: other Supported parameters include: arg'), + ({'arg': {'type': 'int', 'aliases': ['argument']}}, {'other': 'bad', '_ansible_module_name': 'ansible_unittest'}, + 'Unsupported parameters for (ansible_unittest) module: other Supported parameters include: arg (argument)'), # parameter is required ({'arg': {'required': True}}, {}, 'missing required arguments: arg'), )