Fix processing of add_file_common_args=True when argument_spec is not specified as kwarg. (#72334) (#72361)
(cherry picked from commit 233e7beb5b
)
This commit is contained in:
parent
42da480721
commit
2ff5bf0f21
2 changed files with 14 additions and 12 deletions
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- "ansible-test validate-modules - when a module uses ``add_file_common_args=True`` and does not use a keyword argument for ``argument_spec`` in ``AnsibleModule()``, the common file arguments were not considered added during validation (https://github.com/ansible/ansible/pull/72334)."
|
|
@ -146,19 +146,19 @@ def get_py_argument_spec(filename, collection):
|
|||
raise AnsibleModuleNotInitialized()
|
||||
|
||||
try:
|
||||
try:
|
||||
# for ping kwargs == {'argument_spec':{'data':{'type':'str','default':'pong'}}, 'supports_check_mode':True}
|
||||
# for ping kwargs == {'argument_spec':{'data':{'type':'str','default':'pong'}}, 'supports_check_mode':True}
|
||||
if 'argument_spec' in fake.kwargs:
|
||||
argument_spec = fake.kwargs['argument_spec']
|
||||
# If add_file_common_args is truish, add options from FILE_COMMON_ARGUMENTS when not present.
|
||||
# This is the only modification to argument_spec done by AnsibleModule itself, and which is
|
||||
# not caught by setup_env's AnsibleModule replacement
|
||||
if fake.kwargs.get('add_file_common_args'):
|
||||
for k, v in FILE_COMMON_ARGUMENTS.items():
|
||||
if k not in argument_spec:
|
||||
argument_spec[k] = v
|
||||
return argument_spec, fake.args, fake.kwargs
|
||||
except KeyError:
|
||||
return fake.args[0], fake.args, fake.kwargs
|
||||
else:
|
||||
argument_spec = fake.args[0]
|
||||
# If add_file_common_args is truish, add options from FILE_COMMON_ARGUMENTS when not present.
|
||||
# This is the only modification to argument_spec done by AnsibleModule itself, and which is
|
||||
# not caught by setup_env's AnsibleModule replacement
|
||||
if fake.kwargs.get('add_file_common_args'):
|
||||
for k, v in FILE_COMMON_ARGUMENTS.items():
|
||||
if k not in argument_spec:
|
||||
argument_spec[k] = v
|
||||
return argument_spec, fake.args, fake.kwargs
|
||||
except (TypeError, IndexError):
|
||||
return {}, (), {}
|
||||
|
||||
|
|
Loading…
Reference in a new issue