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/module_utils
patchback[bot] a163ec3afa
Command Runner (#4476) (#4572)
* 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>
(cherry picked from commit f5b1b3c6f0)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2022-04-25 22:26:36 +02:00
..
identity/keycloak keycloak: add missing validate_certs parameters for open_url calls (#4382) (#4410) 2022-03-28 22:25:14 +02:00
mh MH decorators - added decorators for check_mode (#3849) (#3860) 2021-12-05 22:14:08 +01:00
net_tools/pritunl [pritunl] removed unnecessary data from auth string (#4530) (#4538) 2022-04-20 09:33:57 +02:00
oracle mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
remote_management/lxca mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
source_control bitbucket: Support Basic Auth (#2045) 2021-10-31 19:09:25 +01:00
storage mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
_mount.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
_version.py Use vendored copy of distutils.version. (#3984) (#3987) 2022-01-05 22:05:13 +01:00
alicloud_ecs.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
cloud.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
cmd_runner.py Command Runner (#4476) (#4572) 2022-04-25 22:26:36 +02:00
csv.py Replace ansible.module_utils._text by ansible.module_utils.common.text.converters (#2877) 2021-06-26 23:59:11 +02:00
database.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
dimensiondata.py sanity: Add future boilerplate (#573) 2020-06-24 21:50:36 +02:00
gandi_livedns_api.py Replace ansible.module_utils._text by ansible.module_utils.common.text.converters (#2877) 2021-06-26 23:59:11 +02:00
gitlab.py Prepare for distutils.version being removed in Python 3.12 (#3936) (#3941) 2021-12-24 19:15:47 +01:00
heroku.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
hwc_utils.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
ibm_sa_utils.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
ilo_redfish_utils.py Modules for managing HPE iLO (#3740) (#3892) 2021-12-11 21:56:10 +01:00
influxdb.py Prepare for distutils.version being removed in Python 3.12 (#3936) (#3941) 2021-12-24 19:15:47 +01:00
ipa.py ipa_group: add append option (#3545) 2021-10-19 13:36:08 +02:00
known_hosts.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
ldap.py Replace ansible.module_utils._text by ansible.module_utils.common.text.converters (#2877) 2021-06-26 23:59:11 +02:00
linode.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
lxd.py Adding while loop to wait for cluster container creation (#4039) (#4095) 2022-01-28 07:38:10 +01:00
manageiq.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
memset.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
module_helper.py module_helper.py Breakdown (#2393) 2021-05-11 19:31:10 +02:00
oneandone.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
oneview.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
online.py Fix new devel sanity errors. (#3194) 2021-08-12 12:07:50 +02:00
opennebula.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
proxmox.py Refactor all Proxmox modules to use shared module_utils. (#4029) (#4164) 2022-02-07 17:48:11 +01:00
pure.py sanity: Add future boilerplate (#573) 2020-06-24 21:50:36 +02:00
rax.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
redfish_utils.py Redfish: Added IndicatorLED commands to the Systems category (#4458) (#4494) 2022-04-11 20:22:58 +02:00
redhat.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
redis.py Add tls parameter to redis module (#4207) (#4343) 2022-03-11 06:15:51 +00:00
rundeck.py Add new modules rundeck_job_run and rundeck_job_executions_info (#3521) 2021-10-11 06:55:47 +02:00
saslprep.py sanity: Add future boilerplate (#573) 2020-06-24 21:50:36 +02:00
scaleway.py Add scaleway_private_network module (#4042) (#4197) 2022-02-14 18:27:07 +01:00
univention_umc.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
utm_utils.py mass-added the utf-8 marker (#3163) 2021-08-08 10:40:22 +02:00
version.py Fix comment. (#3993) (#3995) 2022-01-06 15:10:49 +01:00
vexata.py Replace ansible.module_utils._text by ansible.module_utils.common.text.converters (#2877) 2021-06-26 23:59:11 +02:00
xenserver.py xenserver_guest - fixed validations (#2243) 2021-04-17 09:32:13 +02:00