1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

cmd_runner module utils: fix bug when argument spec has implicit type (#6968)

* cmd_runner module utils: fix bug when argument spec has implicit type

* add changelog frag
This commit is contained in:
Alexei Znamensky 2023-07-20 08:22:54 +12:00 committed by GitHub
parent e00e82b0ca
commit f6714edabb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 1 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- cmd_runner module utils - when a parameter in ``argument_spec`` has no type, meaning it is implicitly a ``str``, ``CmdRunner`` would fail trying to find the ``type`` key in that dictionary (https://github.com/ansible-collections/community.general/pull/6968).

View file

@ -208,7 +208,7 @@ class CmdRunner(object):
for mod_param_name, spec in iteritems(module.argument_spec): for mod_param_name, spec in iteritems(module.argument_spec):
if mod_param_name not in self.arg_formats: if mod_param_name not in self.arg_formats:
self.arg_formats[mod_param_name] = _Format.as_default_type(spec['type'], mod_param_name) self.arg_formats[mod_param_name] = _Format.as_default_type(spec.get('type', 'str'), mod_param_name)
def __call__(self, args_order=None, output_process=None, ignore_value_none=True, check_mode_skip=False, check_mode_return=None, **kwargs): def __call__(self, args_order=None, output_process=None, ignore_value_none=True, check_mode_skip=False, check_mode_return=None, **kwargs):
if output_process is None: if output_process is None:

View file

@ -26,6 +26,7 @@ def main():
arg_values=dict(type="dict", default={}), arg_values=dict(type="dict", default={}),
check_mode_skip=dict(type="bool", default=False), check_mode_skip=dict(type="bool", default=False),
aa=dict(type="raw"), aa=dict(type="raw"),
tt=dict(),
), ),
supports_check_mode=True, supports_check_mode=True,
) )

View file

@ -121,3 +121,20 @@ cmd_echo_tests:
- test_result.rc == None - test_result.rc == None
- test_result.out == None - test_result.out == None
- test_result.err == None - test_result.err == None
- name: set aa and tt value
arg_formats:
aa:
func: as_opt_eq_val
args: [--answer]
tt:
func: as_opt_val
args: [--tt-arg]
arg_order: 'aa tt'
arg_values:
tt: potatoes
aa: 11
assertions:
- test_result.rc == 0
- test_result.out == "-- --answer=11 --tt-arg potatoes\n"
- test_result.err == ""