mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
[PR #6968/f6714eda backport][stable-6] cmd_runner module utils: fix bug when argument spec has implicit type (#6977)
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
(cherry picked from commit f6714edabb
)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
This commit is contained in:
parent
caae74abd8
commit
0e0fce54ab
4 changed files with 21 additions and 1 deletions
2
changelogs/fragments/6968-cmdrunner-implicit-type.yml
Normal file
2
changelogs/fragments/6968-cmdrunner-implicit-type.yml
Normal 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).
|
|
@ -203,7 +203,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:
|
||||||
|
|
|
@ -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,
|
||||||
)
|
)
|
||||||
|
|
|
@ -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 == ""
|
||||||
|
|
Loading…
Reference in a new issue