1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/plugins
Alexei Znamensky f5b1b3c6f0
Command Runner (#4476)
* initial commit, passing unit tests

* passing one very silly integration test

* multiple changes:

- updated copyright year
- cmd_runner
  - added fmt_optval
  - created specific exceptions
  - fixed bug in context class where values from module params were not
    being used for resolving cmd arguments
  - changed order of class declaration for readability purpose
- tests
  - minor improvements in integration test code
  - removed some extraneous code in msimple.yml
  - minor improvements in unit tests
  - added few missing cases to unit test

* multiple changes

cmd_runner.py

- renamed InvalidParameterName to MissingArgumentFormat
  - improved exception parameters
- added repr and str to all exceptions
- added unpacking decorator for fmt functions
- CmdRunner
  - improved parameter validation
- _CmdRunnerContext
  - Context runs must now pass named arguments
  - Simplified passing of additional arguments to module.run_command()
  - Provided multiple context variables with info about the run

Integration tests

- rename msimple.py to cmd_echo.py for clarity
- added more test cases

* cmd_runner: env update can be passed to runner

* adding runner context info to output

* added comment on OrderedDict

* wrong variable

* refactored all fmt functions into static methods of a class

Imports should be simpler now, only one object fmt, with attr access to all callables

* added unit tests for CmdRunner

* fixed sanity checks

* fixed mock imports

* added more unit tests for CmdRunner

* terminology consistency

* multiple adjustments:

- remove extraneous imports
- renamed some variables
- added wrapper around arg formatters to handle individual arg ignore_none behaviour

* removed old code commented out in test

* multiple changes:

- ensure fmt functions return list of strings
- renamed fmt parameter from `option` to `args`
- renamed fmt.mapped to fmt.as_map
- simplified fmt.as_map
- added tests for fmt.as_fixed

* more improvements in formats

* fixed sanity

* args_order can be a string (to be split())

and improved integration test

* simplified integration test

* removed overkill str() on values - run_command does that for us

* as_list makes more sense than as_str in that context

* added changelog fragment

* Update plugins/module_utils/cmd_runner.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* adjusted __repr__ output for the exceptions

* added superclass object to classes

* added additional comment on the testcase sample/example

* suggestion from PR

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-04-25 22:12:00 +02:00
..
action fixed the utf-8 marker (#3162) 2021-08-07 15:02:21 +02:00
become Update BOTMETA, fix some plugin authors, improve BOTMETA extra sanity test (#3069) 2021-07-26 11:44:41 +02:00
cache Fix sanity issues. (#4346) 2022-03-14 20:56:27 +01:00
callback [plugins/callback/syslog_json.py] use v2 api, add option to skip sysl… (#4223) 2022-03-03 07:33:29 +01:00
connection Get rid of distutils.spawn and distutils.util (#3934) 2022-01-04 06:56:28 +01:00
doc_fragments ldap: added documentation as requested (#4389) 2022-03-24 07:05:26 +01:00
filter Add options to filter lists_mergeby (#4058) 2022-01-28 08:19:19 +01:00
inventory Proxmox inventory: implement API token auth (#4540) 2022-04-24 12:55:47 +02:00
lookup Bug fix: Warns user if incorrect SDK version is installed (#4422) 2022-04-05 07:25:41 +02:00
module_utils Command Runner (#4476) 2022-04-25 22:12:00 +02:00
modules Allow Proxmox Snapshot Restoring (#4377) 2022-04-25 06:39:15 +02:00
test a_module test: fix crash in case of tombstoning (#3660) 2021-11-04 08:29:17 +01:00