diff --git a/.azure-pipelines/azure-pipelines.yml b/.azure-pipelines/azure-pipelines.yml index 455d0659b4..808c0a34ae 100644 --- a/.azure-pipelines/azure-pipelines.yml +++ b/.azure-pipelines/azure-pipelines.yml @@ -51,7 +51,7 @@ variables: resources: containers: - container: default - image: quay.io/ansible/azure-pipelines-test-container:7.0.0 + image: quay.io/ansible/azure-pipelines-test-container:6.0.0 pool: Standard @@ -119,12 +119,12 @@ stages: nameFormat: Python {0} testFormat: devel/units/{0}/1 targets: + - test: 3.8 - test: 3.9 - test: '3.10' - test: '3.11' - test: '3.12' - test: '3.13' - - test: '3.14' - stage: Units_2_19 displayName: Units 2.19 dependsOn: [] @@ -134,8 +134,7 @@ stages: nameFormat: Python {0} testFormat: 2.19/units/{0}/1 targets: - - test: 3.8 - - test: "3.11" + - test: 3.9 - test: "3.13" - stage: Units_2_18 displayName: Units 2.18 @@ -147,7 +146,6 @@ stages: testFormat: 2.18/units/{0}/1 targets: - test: 3.8 - - test: "3.11" - test: "3.13" - stage: Units_2_17 displayName: Units 2.17 @@ -159,7 +157,6 @@ stages: testFormat: 2.17/units/{0}/1 targets: - test: 3.7 - - test: "3.10" - test: "3.12" ## Remote @@ -171,10 +168,10 @@ stages: parameters: testFormat: devel/{0} targets: - - name: Alpine 3.22 - test: alpine/3.22 - # - name: Fedora 42 - # test: fedora/42 + - name: Alpine 3.21 + test: alpine/3.21 + # - name: Fedora 41 + # test: fedora/41 - name: Ubuntu 22.04 test: ubuntu/22.04 - name: Ubuntu 24.04 @@ -193,10 +190,10 @@ stages: test: macos/15.3 - name: RHEL 10.0 test: rhel/10.0 - - name: RHEL 9.6 - test: rhel/9.6 - - name: FreeBSD 14.3 - test: freebsd/14.3 + - name: RHEL 9.5 + test: rhel/9.5 + - name: FreeBSD 14.2 + test: freebsd/14.2 - name: FreeBSD 13.5 test: freebsd/13.5 groups: @@ -211,12 +208,8 @@ stages: parameters: testFormat: 2.19/{0} targets: - - name: RHEL 9.5 - test: rhel/9.5 - name: RHEL 10.0 test: rhel/10.0 - - name: FreeBSD 14.2 - test: freebsd/14.2 groups: - 1 - 2 @@ -247,8 +240,8 @@ stages: parameters: testFormat: 2.17/{0} targets: - - name: FreeBSD 13.5 - test: freebsd/13.5 + - name: FreeBSD 13.3 + test: freebsd/13.3 - name: RHEL 9.3 test: rhel/9.3 groups: @@ -265,10 +258,10 @@ stages: parameters: testFormat: devel/linux/{0} targets: - - name: Fedora 42 - test: fedora42 - - name: Alpine 3.22 - test: alpine322 + - name: Fedora 41 + test: fedora41 + - name: Alpine 3.21 + test: alpine321 - name: Ubuntu 22.04 test: ubuntu2204 - name: Ubuntu 24.04 @@ -285,10 +278,8 @@ stages: parameters: testFormat: 2.19/linux/{0} targets: - - name: Fedora 41 - test: fedora41 - - name: Alpine 3.21 - test: alpine321 + - name: Ubuntu 24.04 + test: ubuntu2404 groups: - 1 - 2 @@ -361,9 +352,9 @@ stages: # nameFormat: Python {0} # testFormat: devel/generic/{0}/1 # targets: -# - test: '3.9' -# - test: '3.12' -# - test: '3.14' +# - test: '3.8' +# - test: '3.11' +# - test: '3.13' # - stage: Generic_2_19 # displayName: Generic 2.19 # dependsOn: [] diff --git a/CHANGELOG.md b/CHANGELOG.md index b35c52441b..8fe0b634c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,645 @@ -# Placeholder changelog +# Community General Release Notes -This file is a placeholder; a version-specific `CHANGELOG-vX.md` will be generated during releases from fragments -under `changelogs/fragments`. On release branches once a release has been created, consult the branch's version-specific -file for changes that have occurred in that branch. +**Topics** + +- v11\.1\.0 + - Release Summary + - Minor Changes + - Deprecated Features + - Bugfixes + - New Plugins + - Callback + - New Modules +- v11\.0\.0 + - Release Summary + - Minor Changes + - Deprecated Features + - Removed Features \(previously deprecated\) + - Security Fixes + - Bugfixes + - Known Issues + - New Plugins + - Callback + - Connection + - Filter + - Inventory + - Lookup + - New Modules +This changelog describes changes after version 10\.0\.0\. + + +## v11\.1\.0 + + +### Release Summary + +Regular bugfix and feature release\. + + +### Minor Changes + +* cloudflare\_dns \- adds support for PTR records \([https\://github\.com/ansible\-collections/community\.general/pull/10267](https\://github\.com/ansible\-collections/community\.general/pull/10267)\)\. +* cloudflare\_dns \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* cloudflare\_dns \- simplify validations and refactor some code\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10269](https\://github\.com/ansible\-collections/community\.general/pull/10269)\)\. +* crypttab \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* datadog\_monitor \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* dense callback plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\. +* gitlab\_deploy\_key \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* gitlab\_group\_access\_token \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* gitlab\_hook \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* gitlab\_project\_access\_token \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* gitlab\_runner \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* iocage inventory plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\. +* ipa\_group \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* jc filter plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\. +* jenkins\_build \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* jenkins\_build\_info \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* keycloak \- add support for grant\_type\=client\_credentials to all keycloak modules\, so that specifying auth\_client\_id and auth\_client\_secret is sufficient for authentication \([https\://github\.com/ansible\-collections/community\.general/pull/10231](https\://github\.com/ansible\-collections/community\.general/pull/10231)\)\. +* keycloak module utils \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* logstash callback plugin \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* mail callback plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\. +* nmcli \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* nmcli \- simplify validations and refactor some code\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10323](https\://github\.com/ansible\-collections/community\.general/pull/10323)\)\. +* oneandone\_firewall\_policy \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* oneandone\_load\_balancer \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* oneandone\_monitoring\_policy \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* onepassword\_info \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* osx\_defaults \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* ovh\_ip\_loadbalancing\_backend \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* pacemaker\_cluster \- add state\=maintenance for managing pacemaker maintenance mode \([https\://github\.com/ansible\-collections/community\.general/issues/10200](https\://github\.com/ansible\-collections/community\.general/issues/10200)\, [https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\. +* pacemaker\_cluster \- rename node to name and add node alias \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\. +* pacemaker\_resource \- enhance module by removing duplicative code \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\. +* packet\_device \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* pagerduty \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* pingdom \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* python\_runner module utils \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* rhevm \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* rocketchat \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* sensu\_silence \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* sl\_vm \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* urpmi \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* wsl connection plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\. +* xattr \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. +* xen\_orchestra inventory plugin \- use f\-strings instead of concatenation \([https\://github\.com/ansible\-collections/community\.general/pull/10285](https\://github\.com/ansible\-collections/community\.general/pull/10285)\)\. +* xfconf \- minor adjustments the the code \([https\://github\.com/ansible\-collections/community\.general/pull/10311](https\://github\.com/ansible\-collections/community\.general/pull/10311)\)\. +* xml \- remove redundant brackets in conditionals\, no functional changes \([https\://github\.com/ansible\-collections/community\.general/pull/10328](https\://github\.com/ansible\-collections/community\.general/pull/10328)\)\. + + +### Deprecated Features + +* catapult \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/issues/10318](https\://github\.com/ansible\-collections/community\.general/issues/10318)\, [https\://github\.com/ansible\-collections/community\.general/pull/10329](https\://github\.com/ansible\-collections/community\.general/pull/10329)\)\. +* pacemaker\_cluster \- the parameter state will become a required parameter in community\.general 12\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\. + + +### Bugfixes + +* dependent lookup plugin \- avoid deprecated ansible\-core 2\.19 functionality \([https\://github\.com/ansible\-collections/community\.general/pull/10359](https\://github\.com/ansible\-collections/community\.general/pull/10359)\)\. +* github\_release \- support multiple types of GitHub tokens\; no longer failing when ghs\_ token type is provided \([https\://github\.com/ansible\-collections/community\.general/issues/10338](https\://github\.com/ansible\-collections/community\.general/issues/10338)\, [https\://github\.com/ansible\-collections/community\.general/pull/10339](https\://github\.com/ansible\-collections/community\.general/pull/10339)\)\. +* icinga2 inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.general/pull/10271](https\://github\.com/ansible\-collections/community\.general/pull/10271)\)\. +* incus connection plugin \- fix error handling to return more useful Ansible errors to the user \([https\://github\.com/ansible\-collections/community\.general/issues/10344](https\://github\.com/ansible\-collections/community\.general/issues/10344)\, [https\://github\.com/ansible\-collections/community\.general/pull/10349](https\://github\.com/ansible\-collections/community\.general/pull/10349)\)\. +* linode inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.general/pull/10271](https\://github\.com/ansible\-collections/community\.general/pull/10271)\)\. +* logstash callback plugin \- remove reference to Python 2 library \([https\://github\.com/ansible\-collections/community\.general/pull/10345](https\://github\.com/ansible\-collections/community\.general/pull/10345)\)\. + + +### New Plugins + + +#### Callback + +* community\.general\.tasks\_only \- Only show tasks\. + + +### New Modules + +* community\.general\.jenkins\_credential \- Manage Jenkins credentials and domains via API\. + + +## v11\.0\.0 + + +### Release Summary + +This is release 11\.0\.0 of community\.general\, released on 2025\-06\-16\. + + +### Minor Changes + +* CmdRunner module utils \- the convenience method cmd\_runner\_fmt\.as\_fixed\(\) now accepts multiple arguments as a list \([https\://github\.com/ansible\-collections/community\.general/pull/9893](https\://github\.com/ansible\-collections/community\.general/pull/9893)\)\. +* MH module utils \- delegate debug to the underlying AnsibleModule instance or issues a warning if an attribute already exists with that name \([https\://github\.com/ansible\-collections/community\.general/pull/9577](https\://github\.com/ansible\-collections/community\.general/pull/9577)\)\. +* alternatives \- add family parameter that allows to utilize the \-\-family option available in RedHat version of update\-alternatives \([https\://github\.com/ansible\-collections/community\.general/issues/5060](https\://github\.com/ansible\-collections/community\.general/issues/5060)\, [https\://github\.com/ansible\-collections/community\.general/pull/9096](https\://github\.com/ansible\-collections/community\.general/pull/9096)\)\. +* apache2\_mod\_proxy \- better handling regexp extraction \([https\://github\.com/ansible\-collections/community\.general/pull/9609](https\://github\.com/ansible\-collections/community\.general/pull/9609)\)\. +* apache2\_mod\_proxy \- change type of state to a list of strings\. No change for the users \([https\://github\.com/ansible\-collections/community\.general/pull/9600](https\://github\.com/ansible\-collections/community\.general/pull/9600)\)\. +* apache2\_mod\_proxy \- code simplification\, no change in functionality \([https\://github\.com/ansible\-collections/community\.general/pull/9457](https\://github\.com/ansible\-collections/community\.general/pull/9457)\)\. +* apache2\_mod\_proxy \- improve readability when using results from fecth\_url\(\) \([https\://github\.com/ansible\-collections/community\.general/pull/9608](https\://github\.com/ansible\-collections/community\.general/pull/9608)\)\. +* apache2\_mod\_proxy \- refactor repeated code into method \([https\://github\.com/ansible\-collections/community\.general/pull/9599](https\://github\.com/ansible\-collections/community\.general/pull/9599)\)\. +* apache2\_mod\_proxy \- remove unused parameter and code from Balancer constructor \([https\://github\.com/ansible\-collections/community\.general/pull/9614](https\://github\.com/ansible\-collections/community\.general/pull/9614)\)\. +* apache2\_mod\_proxy \- simplified and improved string manipulation \([https\://github\.com/ansible\-collections/community\.general/pull/9614](https\://github\.com/ansible\-collections/community\.general/pull/9614)\)\. +* apache2\_mod\_proxy \- use deps to handle dependencies \([https\://github\.com/ansible\-collections/community\.general/pull/9612](https\://github\.com/ansible\-collections/community\.general/pull/9612)\)\. +* apache2\_module \- added workaround for new PHP module name\, from php7\_module to php\_module \([https\://github\.com/ansible\-collections/community\.general/pull/9951](https\://github\.com/ansible\-collections/community\.general/pull/9951)\)\. +* bitwarden lookup plugin \- add new option collection\_name to filter results by collection name\, and new option result\_count to validate number of results \([https\://github\.com/ansible\-collections/community\.general/pull/9728](https\://github\.com/ansible\-collections/community\.general/pull/9728)\)\. +* bitwarden lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* cargo \- add features parameter to allow activating specific features when installing Rust packages \([https\://github\.com/ansible\-collections/community\.general/pull/10198](https\://github\.com/ansible\-collections/community\.general/pull/10198)\)\. +* cartesian lookup plugin \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\. +* cgroup\_memory\_recap callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* cgroup\_memory\_recap callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* chef\_databag lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* chroot connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* chroot connection plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* chroot connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* cloud\_init\_data\_facts \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* cloudflare\_dns \- add support for comment and tags \([https\://github\.com/ansible\-collections/community\.general/pull/9132](https\://github\.com/ansible\-collections/community\.general/pull/9132)\)\. +* cobbler inventory plugin \- add connection\_timeout option to specify the connection timeout to the cobbler server \([https\://github\.com/ansible\-collections/community\.general/pull/11063](https\://github\.com/ansible\-collections/community\.general/pull/11063)\)\. +* cobbler inventory plugin \- add facts\_level option to allow requesting fully rendered variables for Cobbler systems \([https\://github\.com/ansible\-collections/community\.general/issues/9419](https\://github\.com/ansible\-collections/community\.general/issues/9419)\, [https\://github\.com/ansible\-collections/community\.general/pull/9975](https\://github\.com/ansible\-collections/community\.general/pull/9975)\)\. +* cobbler inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* cobbler inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* cobbler inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* collection\_version lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* consul\_kv lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* consul\_token \- fix idempotency when policies or roles are supplied by name \([https\://github\.com/ansible\-collections/community\.general/issues/9841](https\://github\.com/ansible\-collections/community\.general/issues/9841)\, [https\://github\.com/ansible\-collections/community\.general/pull/9845](https\://github\.com/ansible\-collections/community\.general/pull/9845)\)\. +* context\_demo callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* context\_demo callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* counter filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* counter\_enabled callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* counter\_enabled callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* cpanm \- enable usage of option \-\-with\-recommends \([https\://github\.com/ansible\-collections/community\.general/issues/9554](https\://github\.com/ansible\-collections/community\.general/issues/9554)\, [https\://github\.com/ansible\-collections/community\.general/pull/9555](https\://github\.com/ansible\-collections/community\.general/pull/9555)\)\. +* cpanm \- enable usage of option \-\-with\-suggests \([https\://github\.com/ansible\-collections/community\.general/pull/9555](https\://github\.com/ansible\-collections/community\.general/pull/9555)\)\. +* crc32 filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* credstash lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* cronvar \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* crypttab \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* cyberarkpassword lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* cyberarkpassword lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* default\_without\_diff callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* dense callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* dense callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* dependent lookup plugin \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\. +* dependent lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* deps module utils \- add deps\.clear\(\) to clear out previously declared dependencies \([https\://github\.com/ansible\-collections/community\.general/pull/9179](https\://github\.com/ansible\-collections/community\.general/pull/9179)\)\. +* dict filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* dict\_kv filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* dig lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* dig lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* diy callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* diy callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* dnstxt lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* dnstxt lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* doas become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* doas become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\. +* dsv lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* dzdo become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* dzdo become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\. +* elastic callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* elastic callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\. +* elastic callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* etcd lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* etcd3 lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* etcd3 lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* filetree lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* flattened lookup plugin \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\. +* from\_csv filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* from\_csv filter plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* from\_ini filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* from\_ini filter plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* funcd connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* funcd connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* git\_config \- remove redundant required\=False from argument\_spec \([https\://github\.com/ansible\-collections/community\.general/pull/10177](https\://github\.com/ansible\-collections/community\.general/pull/10177)\)\. +* github\_app\_access\_token lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* github\_key \- add api\_url parameter to support GitHub Enterprise Server installations \([https\://github\.com/ansible\-collections/community\.general/pull/10191](https\://github\.com/ansible\-collections/community\.general/pull/10191)\)\. +* gitlab\_instance\_variable \- add support for raw variables suboption \([https\://github\.com/ansible\-collections/community\.general/pull/9425](https\://github\.com/ansible\-collections/community\.general/pull/9425)\)\. +* gitlab\_project \- add option build\_timeout \([https\://github\.com/ansible\-collections/community\.general/pull/9960](https\://github\.com/ansible\-collections/community\.general/pull/9960)\)\. +* gitlab\_project\_members \- extend choices parameter access\_level by missing upstream valid value owner \([https\://github\.com/ansible\-collections/community\.general/pull/9953](https\://github\.com/ansible\-collections/community\.general/pull/9953)\)\. +* gitlab\_runners inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* gitlab\_runners inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* gitlab\_runners inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* groupby\_as\_dict filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* hashids filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* hiera lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* homebrew \- greatly speed up module when multiple packages are passed in the name option \([https\://github\.com/ansible\-collections/community\.general/pull/9181](https\://github\.com/ansible\-collections/community\.general/pull/9181)\)\. +* homebrew \- remove duplicated package name validation \([https\://github\.com/ansible\-collections/community\.general/pull/9076](https\://github\.com/ansible\-collections/community\.general/pull/9076)\)\. +* hpilo\_boot \- add option to get an idempotent behavior while powering on server\, resulting in success instead of failure when using state\: boot\_once option \([https\://github\.com/ansible\-collections/community\.general/pull/9646](https\://github\.com/ansible\-collections/community\.general/pull/9646)\)\. +* icinga2 inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* icinga2 inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* idrac\_redfish\_command\, idrac\_redfish\_config\, idrac\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\. +* ilo\_redfish\_command\, ilo\_redfish\_config\, ilo\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\. +* incus connection plugin \- adds remote\_user and incus\_become\_method parameters for allowing a non\-root user to connect to an Incus instance \([https\://github\.com/ansible\-collections/community\.general/pull/9743](https\://github\.com/ansible\-collections/community\.general/pull/9743)\)\. +* incus connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* incus connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* ini\_file \- modify an inactive option also when there are spaces in front of the comment symbol \([https\://github\.com/ansible\-collections/community\.general/pull/10102](https\://github\.com/ansible\-collections/community\.general/pull/10102)\, [https\://github\.com/ansible\-collections/community\.general/issues/8539](https\://github\.com/ansible\-collections/community\.general/issues/8539)\)\. +* iocage connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* iocage connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* iocage inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* iocage inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* iocage inventory plugin \- the new parameter hooks\_results of the plugin is a list of files inside a jail that provide configuration parameters for the inventory\. The inventory plugin reads the files from the jails and put the contents into the items of created variable iocage\_hooks \([https\://github\.com/ansible\-collections/community\.general/issues/9650](https\://github\.com/ansible\-collections/community\.general/issues/9650)\, [https\://github\.com/ansible\-collections/community\.general/pull/9651](https\://github\.com/ansible\-collections/community\.general/pull/9651)\)\. +* iocage inventory plugin \- the new parameter inventory\_hostname\_tag of the plugin provides the name of the tag in the C\(iocage properties notes\) that contains the jails alias\. The new parameter inventory\_hostname\_required\, if enabled\, makes the tag mandatory \([https\://github\.com/ansible\-collections/community\.general/issues/10206](https\://github\.com/ansible\-collections/community\.general/issues/10206)\, [https\://github\.com/ansible\-collections/community\.general/pull/10207](https\://github\.com/ansible\-collections/community\.general/pull/10207)\)\. +* iocage inventory plugin \- the new parameter sudo of the plugin lets the command iocage list \-l to run as root on the iocage host\. This is needed to get the IPv4 of a running DHCP jail \([https\://github\.com/ansible\-collections/community\.general/issues/9572](https\://github\.com/ansible\-collections/community\.general/issues/9572)\, [https\://github\.com/ansible\-collections/community\.general/pull/9573](https\://github\.com/ansible\-collections/community\.general/pull/9573)\)\. +* iptables\_state action plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* iptables\_state action plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9318](https\://github\.com/ansible\-collections/community\.general/pull/9318)\)\. +* iso\_extract \- adds password parameter that is passed to 7z \([https\://github\.com/ansible\-collections/community\.general/pull/9159](https\://github\.com/ansible\-collections/community\.general/pull/9159)\)\. +* jabber callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* jabber callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* jail connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* jail connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* jc filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* jira \- adds client\_cert and client\_key parameters for supporting client certificate authentification when connecting to Jira \([https\://github\.com/ansible\-collections/community\.general/pull/9753](https\://github\.com/ansible\-collections/community\.general/pull/9753)\)\. +* jira \- transition operation now has status\_id to directly reference wanted transition \([https\://github\.com/ansible\-collections/community\.general/pull/9602](https\://github\.com/ansible\-collections/community\.general/pull/9602)\)\. +* json\_query filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* keep\_keys filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* keycloak \- add an action group for Keycloak modules to allow module\_defaults to be set for Keycloak tasks \([https\://github\.com/ansible\-collections/community\.general/pull/9284](https\://github\.com/ansible\-collections/community\.general/pull/9284)\)\. +* keycloak module\_utils \- user groups can now be referenced by their name\, like staff\, or their path\, like /staff/engineering\. The path syntax allows users to reference subgroups\, which is not possible otherwise \([https\://github\.com/ansible\-collections/community\.general/pull/9898](https\://github\.com/ansible\-collections/community\.general/pull/9898)\)\. +* keycloak\_\* modules \- refresh\_token parameter added\. When multiple authentication parameters are provided \(token\, refresh\_token\, and auth\_username/auth\_password\)\, modules will now automatically retry requests upon authentication errors \(401\)\, using in order the token\, refresh token\, and username/password \([https\://github\.com/ansible\-collections/community\.general/pull/9494](https\://github\.com/ansible\-collections/community\.general/pull/9494)\)\. +* keycloak\_realm \- remove ID requirement when creating a realm to allow Keycloak generating its own realm ID \([https\://github\.com/ansible\-collections/community\.general/pull/9768](https\://github\.com/ansible\-collections/community\.general/pull/9768)\)\. +* keycloak\_user module \- user groups can now be referenced by their name\, like staff\, or their path\, like /staff/engineering\. The path syntax allows users to reference subgroups\, which is not possible otherwise \([https\://github\.com/ansible\-collections/community\.general/pull/9898](https\://github\.com/ansible\-collections/community\.general/pull/9898)\)\. +* keyring lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* known\_hosts \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* ksu become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* ksu become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\. +* lastpass lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* launchd \- add plist option for services such as sshd\, where the plist filename doesn\'t match the service name \([https\://github\.com/ansible\-collections/community\.general/pull/9102](https\://github\.com/ansible\-collections/community\.general/pull/9102)\)\. +* linode inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* linode inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* lists filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* lists\_mergeby filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* lldp \- adds multivalues parameter to control behavior when lldpctl outputs an attribute multiple times \([https\://github\.com/ansible\-collections/community\.general/pull/9657](https\://github\.com/ansible\-collections/community\.general/pull/9657)\)\. +* lmdb\_kv lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* lmdb\_kv lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* locale\_gen \- invert the logic to determine ubuntu\_mode\, making it look first for /etc/locale\.gen \(set ubuntu\_mode to False\) and only then looking for /var/lib/locales/supported\.d/ \(set ubuntu\_mode to True\) \([https\://github\.com/ansible\-collections/community\.general/pull/9238](https\://github\.com/ansible\-collections/community\.general/pull/9238)\, [https\://github\.com/ansible\-collections/community\.general/issues/9131](https\://github\.com/ansible\-collections/community\.general/issues/9131)\, [https\://github\.com/ansible\-collections/community\.general/issues/8487](https\://github\.com/ansible\-collections/community\.general/issues/8487)\)\. +* locale\_gen \- new return value mechanism to better express the semantics of the ubuntu\_mode\, with the possible values being either glibc \(ubuntu\_mode\=False\) or ubuntu\_legacy \(ubuntu\_mode\=True\) \([https\://github\.com/ansible\-collections/community\.general/pull/9238](https\://github\.com/ansible\-collections/community\.general/pull/9238)\)\. +* log\_plays callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* log\_plays callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* loganalytics callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* loganalytics callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\. +* loganalytics callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* logdna callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* logdna callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* logentries callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* logentries callback plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* logentries callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* logstash callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* lvg \- add remove\_extra\_pvs parameter to control if ansible should remove physical volumes which are not in the pvs parameter \([https\://github\.com/ansible\-collections/community\.general/pull/9698](https\://github\.com/ansible\-collections/community\.general/pull/9698)\)\. +* lxc connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* lxc connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* lxd connection plugin \- adds remote\_user and lxd\_become\_method parameters for allowing a non\-root user to connect to an LXD instance \([https\://github\.com/ansible\-collections/community\.general/pull/9659](https\://github\.com/ansible\-collections/community\.general/pull/9659)\)\. +* lxd connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* lxd connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* lxd inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* lxd inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* lxd inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* machinectl become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* machinectl become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\. +* mail callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* mail callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* manageiq\_alert\_profiles \- improve handling of parameter requirements \([https\://github\.com/ansible\-collections/community\.general/pull/9449](https\://github\.com/ansible\-collections/community\.general/pull/9449)\)\. +* manifold lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* manifold lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* maven\_artifact \- removed compatibility code for ansible\-core \< 2\.12 \([https\://github\.com/ansible\-collections/community\.general/pull/10192](https\://github\.com/ansible\-collections/community\.general/pull/10192)\)\. +* memcached cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* memcached cache plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9320](https\://github\.com/ansible\-collections/community\.general/pull/9320)\)\. +* merge\_variables lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* nmap inventory plugin \- adds dns\_servers option for specifying DNS servers for name resolution\. Accepts hostnames or IP addresses in the same format as the exclude option \([https\://github\.com/ansible\-collections/community\.general/pull/9849](https\://github\.com/ansible\-collections/community\.general/pull/9849)\)\. +* nmap inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* nmap inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* nmap inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* nmcli \- add sriov parameter that enables support for SR\-IOV settings \([https\://github\.com/ansible\-collections/community\.general/pull/9168](https\://github\.com/ansible\-collections/community\.general/pull/9168)\)\. +* nmcli \- add a option fail\_over\_mac \([https\://github\.com/ansible\-collections/community\.general/issues/9570](https\://github\.com/ansible\-collections/community\.general/issues/9570)\, [https\://github\.com/ansible\-collections/community\.general/pull/9571](https\://github\.com/ansible\-collections/community\.general/pull/9571)\)\. +* nmcli \- add support for Infiniband MAC setting when type is infiniband \([https\://github\.com/ansible\-collections/community\.general/pull/9962](https\://github\.com/ansible\-collections/community\.general/pull/9962)\)\. +* nmcli \- adds VRF support with new type value vrf and new slave\_type value vrf as well as new table parameter \([https\://github\.com/ansible\-collections/community\.general/pull/9658](https\://github\.com/ansible\-collections/community\.general/pull/9658)\, [https\://github\.com/ansible\-collections/community\.general/issues/8014](https\://github\.com/ansible\-collections/community\.general/issues/8014)\)\. +* nmcli \- adds autoconnect\_priority and autoconnect\_retries options to support autoconnect logic \([https\://github\.com/ansible\-collections/community\.general/pull/10134](https\://github\.com/ansible\-collections/community\.general/pull/10134)\)\. +* nrdp callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* nrdp callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* null callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* one\_template \- adds filter option for retrieving templates which are not owned by the user \([https\://github\.com/ansible\-collections/community\.general/pull/9547](https\://github\.com/ansible\-collections/community\.general/pull/9547)\, [https\://github\.com/ansible\-collections/community\.general/issues/9278](https\://github\.com/ansible\-collections/community\.general/issues/9278)\)\. +* one\_vm \- update allowed values for updateconf to include new parameters as per the latest OpenNebula API documentation\. + Added parameters\: + + - OS\: FIRMWARE\; + - CPU\_MODEL\: MODEL\, FEATURES\; + - FEATURES\: VIRTIO\_BLK\_QUEUES\, VIRTIO\_SCSI\_QUEUES\, IOTHREADS\; + - GRAPHICS\: PORT\, COMMAND\; + - VIDEO\: ATS\, IOMMU\, RESOLUTION\, TYPE\, VRAM\; + - RAW\: VALIDATE\; + - BACKUP\_CONFIG\: FS\_FREEZE\, KEEP\_LAST\, BACKUP\_VOLATILE\, MODE\, INCREMENT\_MODE\. + + \([https\://github\.com/ansible\-collections/community\.general/pull/9959](https\://github\.com/ansible\-collections/community\.general/pull/9959)\)\. +* onepassword lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* onepassword lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* onepassword\_doc lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* onepassword\_ssh\_key \- refactor to move code to lookup class \([https\://github\.com/ansible\-collections/community\.general/pull/9633](https\://github\.com/ansible\-collections/community\.general/pull/9633)\)\. +* online inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* online inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* opennebula inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* opennebula inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* opennebula inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* opentelemetry callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* opentelemetry callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\. +* opentelemetry callback plugin \- remove code handling Python versions prior to 3\.7 \([https\://github\.com/ansible\-collections/community\.general/pull/9482](https\://github\.com/ansible\-collections/community\.general/pull/9482)\)\. +* opentelemetry callback plugin \- remove code handling Python versions prior to 3\.7 \([https\://github\.com/ansible\-collections/community\.general/pull/9503](https\://github\.com/ansible\-collections/community\.general/pull/9503)\)\. +* opentelemetry callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* pacemaker\_cluster \- remove unused code \([https\://github\.com/ansible\-collections/community\.general/pull/9471](https\://github\.com/ansible\-collections/community\.general/pull/9471)\)\. +* pacemaker\_cluster \- using safer mechanism to run external command \([https\://github\.com/ansible\-collections/community\.general/pull/9471](https\://github\.com/ansible\-collections/community\.general/pull/9471)\)\. +* pacemaker\_resource \- add maintenance mode support for handling resource creation and deletion \([https\://github\.com/ansible\-collections/community\.general/issues/10180](https\://github\.com/ansible\-collections/community\.general/issues/10180)\, [https\://github\.com/ansible\-collections/community\.general/pull/10194](https\://github\.com/ansible\-collections/community\.general/pull/10194)\)\. +* pacman\_key \- support verifying that keys are trusted and not expired \([https\://github\.com/ansible\-collections/community\.general/issues/9949](https\://github\.com/ansible\-collections/community\.general/issues/9949)\, [https\://github\.com/ansible\-collections/community\.general/pull/9950](https\://github\.com/ansible\-collections/community\.general/pull/9950)\)\. +* parted \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* passwordstore lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* pbrun become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* pbrun become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\. +* pfexec become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* pfexec become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\. +* pickle cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* pipx \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9180](https\://github\.com/ansible\-collections/community\.general/pull/9180)\)\. +* pipx \- parameter name now accepts Python package specifiers \([https\://github\.com/ansible\-collections/community\.general/issues/7815](https\://github\.com/ansible\-collections/community\.general/issues/7815)\, [https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\. +* pipx module\_utils \- filtering application list by name now happens in the modules \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\. +* pipx\_info \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9180](https\://github\.com/ansible\-collections/community\.general/pull/9180)\)\. +* pipx\_info \- filtering application list by name now happens in the module \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\. +* pmrun become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* pmrun become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\. +* pulp\_repo \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* puppet \- improve parameter formatting\, no impact to user \([https\://github\.com/ansible\-collections/community\.general/pull/10014](https\://github\.com/ansible\-collections/community\.general/pull/10014)\)\. +* qubes connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* qubes connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* random\_mac filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* random\_pet lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* redfish module utils \- add REDFISH\_COMMON\_ARGUMENT\_SPEC\, a corresponding redfish docs fragment\, and support for its validate\_certs\, ca\_path\, and ciphers options \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\. +* redfish module utils \- removed compatibility code for ansible\-core \< 2\.14 \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\)\. +* redfish\_command \- add PowerFullPowerCycle to power command options \([https\://github\.com/ansible\-collections/community\.general/pull/9729](https\://github\.com/ansible\-collections/community\.general/pull/9729)\)\. +* redfish\_command \- add update\_custom\_oem\_header\, update\_custom\_oem\_params\, and update\_custom\_oem\_mime\_type options \([https\://github\.com/ansible\-collections/community\.general/pull/9123](https\://github\.com/ansible\-collections/community\.general/pull/9123)\)\. +* redfish\_command\, redfish\_config\, redfish\_info \- add validate\_certs and ca\_path options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\. +* redfish\_config \- add command SetPowerRestorePolicy to set the desired power state of the system when power is restored \([https\://github\.com/ansible\-collections/community\.general/pull/9837](https\://github\.com/ansible\-collections/community\.general/pull/9837)\)\. +* redfish\_info \- add command GetAccountServiceConfig to get full information about AccountService configuration \([https\://github\.com/ansible\-collections/community\.general/pull/9403](https\://github\.com/ansible\-collections/community\.general/pull/9403)\)\. +* redfish\_info \- add command GetPowerRestorePolicy to get the desired power state of the system when power is restored \([https\://github\.com/ansible\-collections/community\.general/pull/9824](https\://github\.com/ansible\-collections/community\.general/pull/9824)\)\. +* redfish\_utils module utils \- remove redundant code \([https\://github\.com/ansible\-collections/community\.general/pull/9190](https\://github\.com/ansible\-collections/community\.general/pull/9190)\)\. +* redhat\_subscription \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* redis cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* redis cache plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* redis cache plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9320](https\://github\.com/ansible\-collections/community\.general/pull/9320)\)\. +* redis lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* remove\_keys filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* replace\_keys filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* revbitspss lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* reveal\_ansible\_type filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* rocketchat \- fix duplicate JSON conversion for Rocket\.Chat \< 7\.4\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9965](https\://github\.com/ansible\-collections/community\.general/pull/9965)\)\. +* rocketchat \- option is\_pre740 has been added to control the format of the payload\. For Rocket\.Chat 7\.4\.0 or newer\, it must be set to false \([https\://github\.com/ansible\-collections/community\.general/pull/9882](https\://github\.com/ansible\-collections/community\.general/pull/9882)\)\. +* rpm\_ostree\_pkg \- added the options apply\_live \([https\://github\.com/ansible\-collections/community\.general/pull/9167](https\://github\.com/ansible\-collections/community\.general/pull/9167)\)\. +* rpm\_ostree\_pkg \- added the return value needs\_reboot \([https\://github\.com/ansible\-collections/community\.general/pull/9167](https\://github\.com/ansible\-collections/community\.general/pull/9167)\)\. +* run0 become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* saltstack connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* saltstack connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* say callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* say callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* scaleway inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* scaleway inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* scaleway inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* scaleway\_lb \- minor simplification in the code \([https\://github\.com/ansible\-collections/community\.general/pull/9189](https\://github\.com/ansible\-collections/community\.general/pull/9189)\)\. +* selective callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* selective callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* sesu become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* sesu become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\. +* shelvefile lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* shutdown action plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* shutdown action plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* shutdown action plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9318](https\://github\.com/ansible\-collections/community\.general/pull/9318)\)\. +* slack callback plugin \- add http\_agent option to enable the user to set a custom user agent for slack callback plugin \([https\://github\.com/ansible\-collections/community\.general/issues/9813](https\://github\.com/ansible\-collections/community\.general/issues/9813)\, [https\://github\.com/ansible\-collections/community\.general/pull/9836](https\://github\.com/ansible\-collections/community\.general/pull/9836)\)\. +* slack callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* slack callback plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* slack callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* snap \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9598](https\://github\.com/ansible\-collections/community\.general/pull/9598)\)\. +* snap\_alias \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9598](https\://github\.com/ansible\-collections/community\.general/pull/9598)\)\. +* solaris\_zone \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* sorcery \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* splunk callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* splunk callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\. +* splunk callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* ssh\_config \- add dynamicforward option \([https\://github\.com/ansible\-collections/community\.general/pull/9192](https\://github\.com/ansible\-collections/community\.general/pull/9192)\)\. +* ssh\_config \- add other\_options option \([https\://github\.com/ansible\-collections/community\.general/issues/8053](https\://github\.com/ansible\-collections/community\.general/issues/8053)\, [https\://github\.com/ansible\-collections/community\.general/pull/9684](https\://github\.com/ansible\-collections/community\.general/pull/9684)\)\. +* stackpath\_compute inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* stackpath\_compute inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* sudosu become plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* sudosu become plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9319](https\://github\.com/ansible\-collections/community\.general/pull/9319)\)\. +* sumologic callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* sumologic callback plugin \- instead of trying to extract the ansible\-core version from task data\, use ansible\-core\'s actual version \([https\://github\.com/ansible\-collections/community\.general/pull/10193](https\://github\.com/ansible\-collections/community\.general/pull/10193)\)\. +* syslog\_json callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* systemd\_info \- add wildcard expression support in unitname option \([https\://github\.com/ansible\-collections/community\.general/pull/9821](https\://github\.com/ansible\-collections/community\.general/pull/9821)\)\. +* systemd\_info \- extend support to timer units \([https\://github\.com/ansible\-collections/community\.general/pull/9891](https\://github\.com/ansible\-collections/community\.general/pull/9891)\)\. +* terraform \- adds the no\_color parameter\, which suppresses or allows color codes in stdout from Terraform commands \([https\://github\.com/ansible\-collections/community\.general/pull/10154](https\://github\.com/ansible\-collections/community\.general/pull/10154)\)\. +* time filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* timestamp callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* timestamp callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* timezone \- open file using open\(\) as a context manager \([https\://github\.com/ansible\-collections/community\.general/pull/9579](https\://github\.com/ansible\-collections/community\.general/pull/9579)\)\. +* to\_ini filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* to\_ini filter plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* tss lookup plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* tss lookup plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9324](https\://github\.com/ansible\-collections/community\.general/pull/9324)\)\. +* ufw \- add support for vrrp protocol \([https\://github\.com/ansible\-collections/community\.general/issues/9562](https\://github\.com/ansible\-collections/community\.general/issues/9562)\, [https\://github\.com/ansible\-collections/community\.general/pull/9582](https\://github\.com/ansible\-collections/community\.general/pull/9582)\)\. +* unicode\_normalize filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* unixy callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* unixy callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* version\_sort filter plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9585](https\://github\.com/ansible\-collections/community\.general/pull/9585)\)\. +* virtualbox inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* virtualbox inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\. +* virtualbox inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* vmadm \- add new options flexible\_disk\_size and owner\_uuid \([https\://github\.com/ansible\-collections/community\.general/pull/9892](https\://github\.com/ansible\-collections/community\.general/pull/9892)\)\. +* wdc\_redfish\_command\, wdc\_redfish\_info \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\. +* xbps \- add root and repository options to enable bootstrapping new void installations \([https\://github\.com/ansible\-collections/community\.general/pull/9174](https\://github\.com/ansible\-collections/community\.general/pull/9174)\)\. +* xcc\_redfish\_command \- add validate\_certs\, ca\_path\, and ciphers options to configure TLS/SSL \([https\://github\.com/ansible\-collections/community\.general/issues/3686](https\://github\.com/ansible\-collections/community\.general/issues/3686)\, [https\://github\.com/ansible\-collections/community\.general/pull/9964](https\://github\.com/ansible\-collections/community\.general/pull/9964)\)\. +* xen\_orchestra inventory plugin \- add use\_vm\_uuid and use\_host\_uuid boolean options to allow switching over to using VM/Xen name labels instead of UUIDs as item names \([https\://github\.com/ansible\-collections/community\.general/pull/9787](https\://github\.com/ansible\-collections/community\.general/pull/9787)\)\. +* xen\_orchestra inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* xen\_orchestra inventory plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9323](https\://github\.com/ansible\-collections/community\.general/pull/9323)\)\. +* xfconf \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9226](https\://github\.com/ansible\-collections/community\.general/pull/9226)\)\. +* xfconf\_info \- add return value version \([https\://github\.com/ansible\-collections/community\.general/pull/9226](https\://github\.com/ansible\-collections/community\.general/pull/9226)\)\. +* xml \- support adding value of children when creating with subnodes \([https\://github\.com/ansible\-collections/community\.general/pull/8437](https\://github\.com/ansible\-collections/community\.general/pull/8437)\)\. +* yaml cache plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* yaml callback plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\. +* yaml callback plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9321](https\://github\.com/ansible\-collections/community\.general/pull/9321)\)\. +* zone connection plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\. +* zone connection plugin \- use f\-strings instead of interpolations or format \([https\://github\.com/ansible\-collections/community\.general/pull/9322](https\://github\.com/ansible\-collections/community\.general/pull/9322)\)\. +* zypper \- add quiet option \([https\://github\.com/ansible\-collections/community\.general/pull/9270](https\://github\.com/ansible\-collections/community\.general/pull/9270)\)\. +* zypper \- add simple\_errors option \([https\://github\.com/ansible\-collections/community\.general/pull/9270](https\://github\.com/ansible\-collections/community\.general/pull/9270)\)\. +* zypper \- adds skip\_post\_errors that allows to skip RPM post\-install errors \(Zypper return code 107\) \([https\://github\.com/ansible\-collections/community\.general/issues/9972](https\://github\.com/ansible\-collections/community\.general/issues/9972)\)\. + + +### Deprecated Features + +* MH module utils \- attribute debug definition in subclasses of MH is now deprecated\, as that name will become a delegation to AnsibleModule in community\.general 12\.0\.0\, and any such attribute will be overridden by that delegation in that version \([https\://github\.com/ansible\-collections/community\.general/pull/9577](https\://github\.com/ansible\-collections/community\.general/pull/9577)\)\. +* atomic\_container \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9487](https\://github\.com/ansible\-collections/community\.general/pull/9487)\)\. +* atomic\_host \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9487](https\://github\.com/ansible\-collections/community\.general/pull/9487)\)\. +* atomic\_image \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9487](https\://github\.com/ansible\-collections/community\.general/pull/9487)\)\. +* facter \- module is deprecated and will be removed in community\.general 12\.0\.0\, use community\.general\.facter\_facts instead \([https\://github\.com/ansible\-collections/community\.general/pull/9451](https\://github\.com/ansible\-collections/community\.general/pull/9451)\)\. +* locale\_gen \- ubuntu\_mode\=True\, or mechanism\=ubuntu\_legacy is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9238](https\://github\.com/ansible\-collections/community\.general/pull/9238)\)\. +* manifold lookup plugin \- plugin is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10028](https\://github\.com/ansible\-collections/community\.general/pull/10028)\)\. +* opkg \- deprecate value \"\" for parameter force \([https\://github\.com/ansible\-collections/community\.general/pull/9172](https\://github\.com/ansible\-collections/community\.general/pull/9172)\)\. +* pipx module\_utils \- function make\_process\_list\(\) is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10031](https\://github\.com/ansible\-collections/community\.general/pull/10031)\)\. +* profitbricks \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\. +* profitbricks\_datacenter \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\. +* profitbricks\_nic \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\. +* profitbricks\_volume \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\. +* profitbricks\_volume\_attachments \- module is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9733](https\://github\.com/ansible\-collections/community\.general/pull/9733)\)\. +* pure module utils \- the module utils is deprecated and will be removed from community\.general 12\.0\.0\. The modules using this were removed in community\.general 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9432](https\://github\.com/ansible\-collections/community\.general/pull/9432)\)\. +* purestorage doc fragments \- the doc fragment is deprecated and will be removed from community\.general 12\.0\.0\. The modules using this were removed in community\.general 3\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9432](https\://github\.com/ansible\-collections/community\.general/pull/9432)\)\. +* redfish\_utils module utils \- deprecate method RedfishUtils\.\_init\_session\(\) \([https\://github\.com/ansible\-collections/community\.general/pull/9190](https\://github\.com/ansible\-collections/community\.general/pull/9190)\)\. +* sensu\_check \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\. +* sensu\_client \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\. +* sensu\_handler \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\. +* sensu\_silence \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\. +* sensu\_subscription \- module is deprecated and will be removed in community\.general 13\.0\.0\, use collection sensu\.sensu\_go instead \([https\://github\.com/ansible\-collections/community\.general/pull/9483](https\://github\.com/ansible\-collections/community\.general/pull/9483)\)\. +* slack \- the default value auto of the prepend\_hash option is deprecated and will change to never in community\.general 12\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9443](https\://github\.com/ansible\-collections/community\.general/pull/9443)\)\. +* stackpath\_compute inventory plugin \- plugin is deprecated and will be removed in community\.general 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10026](https\://github\.com/ansible\-collections/community\.general/pull/10026)\)\. +* yaml callback plugin \- deprecate plugin in favor of result\_format\=yaml in plugin ansible\.bulitin\.default \([https\://github\.com/ansible\-collections/community\.general/pull/9456](https\://github\.com/ansible\-collections/community\.general/pull/9456)\)\. +* yaml callback plugin \- the YAML callback plugin was deprecated for removal in community\.general 13\.0\.0\. Since it needs to use ansible\-core internals since ansible\-core 2\.19 that are changing a lot\, we will remove this plugin already from community\.general 12\.0\.0 to ease the maintenance burden \([https\://github\.com/ansible\-collections/community\.general/pull/10213](https\://github\.com/ansible\-collections/community\.general/pull/10213)\)\. + + +### Removed Features \(previously deprecated\) + +* Dropped support for ansible\-core 2\.15\. The collection now requires ansible\-core 2\.16 or newer\. This means that on the controller\, Python 3\.10\+ is required\. On the target side\, Python 2\.7 and Python 3\.6\+ are supported \([https\://github\.com/ansible\-collections/community\.general/pull/10160](https\://github\.com/ansible\-collections/community\.general/pull/10160)\, [https\://github\.com/ansible\-collections/community\.general/pull/10192](https\://github\.com/ansible\-collections/community\.general/pull/10192)\)\. +* The Proxmox content \(modules and plugins\) has been moved to the [new collection community\.proxmox](https\://github\.com/ansible\-collections/community\.proxmox)\. Since community\.general 11\.0\.0\, these modules and plugins have been replaced by deprecated redirections to community\.proxmox\. You need to explicitly install community\.proxmox\, for example with ansible\-galaxy collection install community\.proxmox\, or by installing a new enough version of the Ansible community package\. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages \([https\://github\.com/ansible\-collections/community\.general/pull/10110](https\://github\.com/ansible\-collections/community\.general/pull/10110)\)\. +* apt\_rpm \- the present and installed states are no longer equivalent to latest\, but to present\_not\_latest \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* clc\_\* modules and doc fragment \- the modules were removed since CenturyLink Cloud services went EOL in September 2023 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* django\_manage \- the ack\_venv\_creation\_deprecation option has been removed\. It had no effect anymore anyway \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* git\_config \- it is no longer allowed to use state\=present with no value to read the config value\. Use the community\.general\.git\_config\_info module instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* git\_config \- the list\_all option has been removed\. Use the community\.general\.git\_config\_info module instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* hipchat \- the module was removed since the hipchat service has been discontinued and the self\-hosted variant has been End of Life since 2020 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* manifold lookup plugin \- the plugin was removed since the company was acquired in 2021 and service was ceased afterwards \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* mh\.mixins\.deps module utils \- this module utils has been removed\. Use the deps module utils instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* mh\.mixins\.vars module utils \- this module utils has been removed\. Use VarDict from the vardict module utils instead \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* mh\.module\_helper module utils \- AnsibleModule and VarsMixin are no longer provided \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* mh\.module\_helper module utils \- VarDict is now imported from the vardict module utils and no longer from the removed mh\.mixins\.vars module utils \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* mh\.module\_helper module utils \- the attributes use\_old\_vardict and mute\_vardict\_deprecation from ModuleHelper have been removed\. We suggest to remove them from your modules if you no longer support community\.general \< 11\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* module\_helper module utils \- StateMixin\, DependencyCtxMgr\, VarMeta\, VarDict\, and VarsMixin are no longer provided \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* pipx \- module no longer supports pipx older than 1\.7\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10137](https\://github\.com/ansible\-collections/community\.general/pull/10137)\)\. +* pipx\_info \- module no longer supports pipx older than 1\.7\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10137](https\://github\.com/ansible\-collections/community\.general/pull/10137)\)\. +* profitbrick\* modules \- the modules were removed since the supporting library is unsupported since 2021 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* redfish\_utils module utils \- the \_init\_session method has been removed \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. +* stackpath\_compute inventory plugin \- the plugin was removed since the company and the service were sunset in June 2024 \([https\://github\.com/ansible\-collections/community\.general/pull/10126](https\://github\.com/ansible\-collections/community\.general/pull/10126)\)\. + + +### Security Fixes + +* keycloak\_authentication \- API calls did not properly set the priority during update resulting in incorrectly sorted authentication flows\. This apparently only affects Keycloak 25 or newer \([https\://github\.com/ansible\-collections/community\.general/pull/9263](https\://github\.com/ansible\-collections/community\.general/pull/9263)\)\. +* keycloak\_client \- Sanitize saml\.encryption\.private\.key so it does not show in the logs \([https\://github\.com/ansible\-collections/community\.general/pull/9621](https\://github\.com/ansible\-collections/community\.general/pull/9621)\)\. + + +### Bugfixes + +* apache2\_mod\_proxy \- make compatible with Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9762](https\://github\.com/ansible\-collections/community\.general/pull/9762)\)\. +* apache2\_mod\_proxy \- passing the cluster\'s page as referer for the member\'s pages\. This makes the module actually work again for halfway modern Apache versions\. According to some comments founds on the net the referer was required since at least 2019 for some versions of Apache 2 \([https\://github\.com/ansible\-collections/community\.general/pull/9762](https\://github\.com/ansible\-collections/community\.general/pull/9762)\)\. +* cloudflare\_dns \- fix crash when deleting a DNS record or when updating a record with solo\=true \([https\://github\.com/ansible\-collections/community\.general/issues/9652](https\://github\.com/ansible\-collections/community\.general/issues/9652)\, [https\://github\.com/ansible\-collections/community\.general/pull/9649](https\://github\.com/ansible\-collections/community\.general/pull/9649)\)\. +* cloudlare\_dns \- handle exhausted response stream in case of HTTP errors to show nice error message to the user \([https\://github\.com/ansible\-collections/community\.general/issues/9782](https\://github\.com/ansible\-collections/community\.general/issues/9782)\, [https\://github\.com/ansible\-collections/community\.general/pull/9818](https\://github\.com/ansible\-collections/community\.general/pull/9818)\)\. +* cobbler\_system \- fix bug with Cobbler \>\= 3\.4\.0 caused by giving more than 2 positional arguments to CobblerXMLRPCInterface\.get\_system\_handle\(\) \([https\://github\.com/ansible\-collections/community\.general/issues/8506](https\://github\.com/ansible\-collections/community\.general/issues/8506)\, [https\://github\.com/ansible\-collections/community\.general/pull/10145](https\://github\.com/ansible\-collections/community\.general/pull/10145)\)\. +* cobbler\_system \- update minimum version number to avoid wrong comparisons that happen in some cases using LooseVersion class which results in TypeError \([https\://github\.com/ansible\-collections/community\.general/issues/8506](https\://github\.com/ansible\-collections/community\.general/issues/8506)\, [https\://github\.com/ansible\-collections/community\.general/pull/10145](https\://github\.com/ansible\-collections/community\.general/pull/10145)\, [https\://github\.com/ansible\-collections/community\.general/pull/10178](https\://github\.com/ansible\-collections/community\.general/pull/10178)\)\. +* dependent look plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\. +* dig lookup plugin \- correctly handle NoNameserver exception \([https\://github\.com/ansible\-collections/community\.general/pull/9363](https\://github\.com/ansible\-collections/community\.general/pull/9363)\, [https\://github\.com/ansible\-collections/community\.general/issues/9362](https\://github\.com/ansible\-collections/community\.general/issues/9362)\)\. +* diy callback plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\. +* dnf\_config\_manager \- fix hanging when prompting to import GPG keys \([https\://github\.com/ansible\-collections/community\.general/pull/9124](https\://github\.com/ansible\-collections/community\.general/pull/9124)\, [https\://github\.com/ansible\-collections/community\.general/issues/8830](https\://github\.com/ansible\-collections/community\.general/issues/8830)\)\. +* dnf\_config\_manager \- forces locale to C before module starts\. If the locale was set to non\-English\, the output of the dnf config\-manager could not be parsed \([https\://github\.com/ansible\-collections/community\.general/pull/9157](https\://github\.com/ansible\-collections/community\.general/pull/9157)\, [https\://github\.com/ansible\-collections/community\.general/issues/9046](https\://github\.com/ansible\-collections/community\.general/issues/9046)\)\. +* dnf\_versionlock \- add support for dnf5 \([https\://github\.com/ansible\-collections/community\.general/issues/9556](https\://github\.com/ansible\-collections/community\.general/issues/9556)\)\. +* elasticsearch\_plugin \- fix ERROR\: D is not a recognized option issue when configuring proxy settings \([https\://github\.com/ansible\-collections/community\.general/pull/9774](https\://github\.com/ansible\-collections/community\.general/pull/9774)\, [https\://github\.com/ansible\-collections/community\.general/issues/9773](https\://github\.com/ansible\-collections/community\.general/issues/9773)\)\. +* flatpak \- force the locale language to C when running the flatpak command \([https\://github\.com/ansible\-collections/community\.general/pull/9187](https\://github\.com/ansible\-collections/community\.general/pull/9187)\, [https\://github\.com/ansible\-collections/community\.general/issues/8883](https\://github\.com/ansible\-collections/community\.general/issues/8883)\)\. +* gio\_mime \- fix command line when determining version of gio \([https\://github\.com/ansible\-collections/community\.general/pull/9171](https\://github\.com/ansible\-collections/community\.general/pull/9171)\, [https\://github\.com/ansible\-collections/community\.general/issues/9158](https\://github\.com/ansible\-collections/community\.general/issues/9158)\)\. +* github\_deploy\_key \- check that key really exists on 422 to avoid masking other errors \([https\://github\.com/ansible\-collections/community\.general/issues/6718](https\://github\.com/ansible\-collections/community\.general/issues/6718)\, [https\://github\.com/ansible\-collections/community\.general/pull/10011](https\://github\.com/ansible\-collections/community\.general/pull/10011)\)\. +* github\_key \- in check mode\, a faulty call to \`datetime\.strftime\(\.\.\.\)\` was being made which generated an exception \([https\://github\.com/ansible\-collections/community\.general/issues/9185](https\://github\.com/ansible\-collections/community\.general/issues/9185)\)\. +* gitlab\_group\_access\_token\, gitlab\_project\_access\_token \- fix handling of group and project access tokens for changes in GitLab 17\.10 \([https\://github\.com/ansible\-collections/community\.general/pull/10196](https\://github\.com/ansible\-collections/community\.general/pull/10196)\)\. +* hashids and unicode\_normalize filter plugins \- avoid deprecated AnsibleFilterTypeError on ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/9992](https\://github\.com/ansible\-collections/community\.general/pull/9992)\)\. +* homebrew \- emit a useful error message if brew info reports a package tap is null \([https\://github\.com/ansible\-collections/community\.general/pull/10013](https\://github\.com/ansible\-collections/community\.general/pull/10013)\, [https\://github\.com/ansible\-collections/community\.general/issues/10012](https\://github\.com/ansible\-collections/community\.general/issues/10012)\)\. +* homebrew \- fix crash when package names include tap \([https\://github\.com/ansible\-collections/community\.general/issues/9777](https\://github\.com/ansible\-collections/community\.general/issues/9777)\, [https\://github\.com/ansible\-collections/community\.general/pull/9803](https\://github\.com/ansible\-collections/community\.general/pull/9803)\)\. +* homebrew \- fix incorrect handling of aliased homebrew modules when the alias is requested \([https\://github\.com/ansible\-collections/community\.general/pull/9255](https\://github\.com/ansible\-collections/community\.general/pull/9255)\, [https\://github\.com/ansible\-collections/community\.general/issues/9240](https\://github\.com/ansible\-collections/community\.general/issues/9240)\)\. +* homebrew \- fix incorrect handling of homebrew modules when a tap is requested \([https\://github\.com/ansible\-collections/community\.general/pull/9546](https\://github\.com/ansible\-collections/community\.general/pull/9546)\, [https\://github\.com/ansible\-collections/community\.general/issues/9533](https\://github\.com/ansible\-collections/community\.general/issues/9533)\)\. +* homebrew \- make package name parsing more resilient \([https\://github\.com/ansible\-collections/community\.general/pull/9665](https\://github\.com/ansible\-collections/community\.general/pull/9665)\, [https\://github\.com/ansible\-collections/community\.general/issues/9641](https\://github\.com/ansible\-collections/community\.general/issues/9641)\)\. +* homebrew\_cask \- allow \+ symbol in Homebrew cask name validation regex \([https\://github\.com/ansible\-collections/community\.general/pull/9128](https\://github\.com/ansible\-collections/community\.general/pull/9128)\)\. +* homebrew\_cask \- handle unusual brew version strings \([https\://github\.com/ansible\-collections/community\.general/issues/8432](https\://github\.com/ansible\-collections/community\.general/issues/8432)\, [https\://github\.com/ansible\-collections/community\.general/pull/9881](https\://github\.com/ansible\-collections/community\.general/pull/9881)\)\. +* htpasswd \- report changes when file permissions are adjusted \([https\://github\.com/ansible\-collections/community\.general/issues/9485](https\://github\.com/ansible\-collections/community\.general/issues/9485)\, [https\://github\.com/ansible\-collections/community\.general/pull/9490](https\://github\.com/ansible\-collections/community\.general/pull/9490)\)\. +* iocage inventory plugin \- the plugin parses the IP4 tab of the jails list and put the elements into the new variable iocage\_ip4\_dict\. In multiple interface format the variable iocage\_ip4 keeps the comma\-separated list of IP4 \([https\://github\.com/ansible\-collections/community\.general/issues/9538](https\://github\.com/ansible\-collections/community\.general/issues/9538)\)\. +* ipa\_host \- module revoked existing host certificates even if user\_certificate was not given \([https\://github\.com/ansible\-collections/community\.general/pull/9694](https\://github\.com/ansible\-collections/community\.general/pull/9694)\)\. +* java\_cert \- the module no longer fails if the optional parameters pkcs12\_alias and cert\_alias are not provided \([https\://github\.com/ansible\-collections/community\.general/pull/9970](https\://github\.com/ansible\-collections/community\.general/pull/9970)\)\. +* kdeconfig \- allow option values beginning with a dash \([https\://github\.com/ansible\-collections/community\.general/issues/10127](https\://github\.com/ansible\-collections/community\.general/issues/10127)\, [https\://github\.com/ansible\-collections/community\.general/pull/10128](https\://github\.com/ansible\-collections/community\.general/pull/10128)\)\. +* keycloak \- update more than 10 sub\-groups \([https\://github\.com/ansible\-collections/community\.general/issues/9690](https\://github\.com/ansible\-collections/community\.general/issues/9690)\, [https\://github\.com/ansible\-collections/community\.general/pull/9692](https\://github\.com/ansible\-collections/community\.general/pull/9692)\)\. +* keycloak module utils \- replaces missing return in get\_role\_composites method which caused it to return None instead of composite roles \([https\://github\.com/ansible\-collections/community\.general/issues/9678](https\://github\.com/ansible\-collections/community\.general/issues/9678)\, [https\://github\.com/ansible\-collections/community\.general/pull/9691](https\://github\.com/ansible\-collections/community\.general/pull/9691)\)\. +* keycloak\_authentication \- fix authentification config duplication for Keycloak \< 26\.2\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/9987](https\://github\.com/ansible\-collections/community\.general/pull/9987)\)\. +* keycloak\_client \- fix and improve existing tests\. The module showed a diff without actual changes\, solved by improving the normalise\_cr\(\) function \([https\://github\.com/ansible\-collections/community\.general/pull/9644](https\://github\.com/ansible\-collections/community\.general/pull/9644)\)\. +* keycloak\_client \- fix diff by removing code that turns the attributes dict which contains additional settings into a list \([https\://github\.com/ansible\-collections/community\.general/pull/9077](https\://github\.com/ansible\-collections/community\.general/pull/9077)\)\. +* keycloak\_client \- fix the idempotency regression by normalizing the Keycloak response for after\_client \([https\://github\.com/ansible\-collections/community\.general/issues/9905](https\://github\.com/ansible\-collections/community\.general/issues/9905)\, [https\://github\.com/ansible\-collections/community\.general/pull/9976](https\://github\.com/ansible\-collections/community\.general/pull/9976)\)\. +* keycloak\_client \- in check mode\, detect whether the lists in before client \(for example redirect URI list\) contain items that the lists in the desired client do not contain \([https\://github\.com/ansible\-collections/community\.general/pull/9739](https\://github\.com/ansible\-collections/community\.general/pull/9739)\)\. +* keycloak\_clientscope \- fix diff and end\_state by removing the code that turns the attributes dict\, which contains additional config items\, into a list \([https\://github\.com/ansible\-collections/community\.general/pull/9082](https\://github\.com/ansible\-collections/community\.general/pull/9082)\)\. +* keycloak\_clientscope\_type \- sort the default and optional clientscope lists to improve the diff \([https\://github\.com/ansible\-collections/community\.general/pull/9202](https\://github\.com/ansible\-collections/community\.general/pull/9202)\)\. +* keycloak\_user\_rolemapping \- fix \-\-diff mode \([https\://github\.com/ansible\-collections/community\.general/issues/10067](https\://github\.com/ansible\-collections/community\.general/issues/10067)\, [https\://github\.com/ansible\-collections/community\.general/pull/10075](https\://github\.com/ansible\-collections/community\.general/pull/10075)\)\. +* lldp \- fix crash caused by certain lldpctl output where an attribute is defined as branch and leaf \([https\://github\.com/ansible\-collections/community\.general/pull/9657](https\://github\.com/ansible\-collections/community\.general/pull/9657)\)\. +* nmcli \- enable changing only the order of DNS servers or search suffixes \([https\://github\.com/ansible\-collections/community\.general/issues/8724](https\://github\.com/ansible\-collections/community\.general/issues/8724)\, [https\://github\.com/ansible\-collections/community\.general/pull/9880](https\://github\.com/ansible\-collections/community\.general/pull/9880)\)\. +* onepassword\_doc lookup plugin \- ensure that 1Password Connect support also works for this plugin \([https\://github\.com/ansible\-collections/community\.general/pull/9625](https\://github\.com/ansible\-collections/community\.general/pull/9625)\)\. +* passwordstore lookup plugin \- fix subkey creation even when create\=false \([https\://github\.com/ansible\-collections/community\.general/issues/9105](https\://github\.com/ansible\-collections/community\.general/issues/9105)\, [https\://github\.com/ansible\-collections/community\.general/pull/9106](https\://github\.com/ansible\-collections/community\.general/pull/9106)\)\. +* pickle cache plugin \- avoid extra JSON serialization with ansible\-core \>\= 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/10136](https\://github\.com/ansible\-collections/community\.general/pull/10136)\)\. +* pipx \- honor option global when state\=latest \([https\://github\.com/ansible\-collections/community\.general/pull/9623](https\://github\.com/ansible\-collections/community\.general/pull/9623)\)\. +* qubes connection plugin \- fix the printing of debug information \([https\://github\.com/ansible\-collections/community\.general/pull/9334](https\://github\.com/ansible\-collections/community\.general/pull/9334)\)\. +* redfish\_utils module utils \- Fix VerifyBiosAttributes command on multi system resource nodes \([https\://github\.com/ansible\-collections/community\.general/pull/9234](https\://github\.com/ansible\-collections/community\.general/pull/9234)\)\. +* redfish\_utils module utils \- remove undocumented default applytime \([https\://github\.com/ansible\-collections/community\.general/pull/9114](https\://github\.com/ansible\-collections/community\.general/pull/9114)\)\. +* redhat\_subscription \- do not try to unsubscribe \(i\.e\. remove subscriptions\) + when unregistering a system\: newer versions of subscription\-manager\, as + available in EL 10 and Fedora 41\+\, do not support entitlements anymore\, and + thus unsubscribing will fail + \([https\://github\.com/ansible\-collections/community\.general/pull/9578](https\://github\.com/ansible\-collections/community\.general/pull/9578)\)\. +* redhat\_subscription \- use the \"enable\_content\" option \(when available\) when + registering using D\-Bus\, to ensure that subscription\-manager enables the + content on registration\; this is particular important on EL 10\+ and Fedora + 41\+ + \([https\://github\.com/ansible\-collections/community\.general/pull/9778](https\://github\.com/ansible\-collections/community\.general/pull/9778)\)\. +* reveal\_ansible\_type filter plugin and ansible\_type test plugin \- make compatible with ansible\-core\'s Data Tagging feature \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\. +* rundeck\_acl\_policy \- ensure that project ACLs are sent to the correct endpoint \([https\://github\.com/ansible\-collections/community\.general/pull/10097](https\://github\.com/ansible\-collections/community\.general/pull/10097)\)\. +* slack \- fail if Slack API response is not OK with error message \([https\://github\.com/ansible\-collections/community\.general/pull/9198](https\://github\.com/ansible\-collections/community\.general/pull/9198)\)\. +* sudoers \- display stdout and stderr raised while failed validation \([https\://github\.com/ansible\-collections/community\.general/issues/9674](https\://github\.com/ansible\-collections/community\.general/issues/9674)\, [https\://github\.com/ansible\-collections/community\.general/pull/9871](https\://github\.com/ansible\-collections/community\.general/pull/9871)\)\. +* sysrc \- no longer always reporting changed\=true when state\=absent\. This fixes the method exists\(\) \([https\://github\.com/ansible\-collections/community\.general/issues/10004](https\://github\.com/ansible\-collections/community\.general/issues/10004)\, [https\://github\.com/ansible\-collections/community\.general/pull/10005](https\://github\.com/ansible\-collections/community\.general/pull/10005)\)\. +* sysrc \- split the output of sysrc \-e \-a on the first \= only \([https\://github\.com/ansible\-collections/community\.general/issues/10120](https\://github\.com/ansible\-collections/community\.general/issues/10120)\, [https\://github\.com/ansible\-collections/community\.general/pull/10121](https\://github\.com/ansible\-collections/community\.general/pull/10121)\)\. +* xml \- ensure file descriptor is closed \([https\://github\.com/ansible\-collections/community\.general/pull/9695](https\://github\.com/ansible\-collections/community\.general/pull/9695)\)\. +* yaml callback plugin \- adjust to latest changes in ansible\-core devel \([https\://github\.com/ansible\-collections/community\.general/pull/10212](https\://github\.com/ansible\-collections/community\.general/pull/10212)\)\. +* yaml callback plugin \- use ansible\-core internals to avoid breakage with Data Tagging \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\. +* yaml callback plugin \- when using ansible\-core 2\.19\.0b2 or newer\, uses a new utility provided by ansible\-core\. This allows us to remove all hacks and vendored code that was part of the plugin for ansible\-core versions with Data Tagging so far \([https\://github\.com/ansible\-collections/community\.general/pull/10242](https\://github\.com/ansible\-collections/community\.general/pull/10242)\)\. +* zfs \- fix handling of multi\-line values of user\-defined ZFS properties \([https\://github\.com/ansible\-collections/community\.general/pull/6264](https\://github\.com/ansible\-collections/community\.general/pull/6264)\)\. +* zfs\_facts \- parameter type now accepts multple values as documented \([https\://github\.com/ansible\-collections/community\.general/issues/5909](https\://github\.com/ansible\-collections/community\.general/issues/5909)\, [https\://github\.com/ansible\-collections/community\.general/pull/9697](https\://github\.com/ansible\-collections/community\.general/pull/9697)\)\. +* zypper\_repository \- make compatible with Python 3\.12\+ \([https\://github\.com/ansible\-collections/community\.general/issues/10222](https\://github\.com/ansible\-collections/community\.general/issues/10222)\, [https\://github\.com/ansible\-collections/community\.general/pull/10223](https\://github\.com/ansible\-collections/community\.general/pull/10223)\)\. +* zypper\_repository \- use metalink attribute to identify repositories without \ element \([https\://github\.com/ansible\-collections/community\.general/issues/10224](https\://github\.com/ansible\-collections/community\.general/issues/10224)\, [https\://github\.com/ansible\-collections/community\.general/pull/10225](https\://github\.com/ansible\-collections/community\.general/pull/10225)\)\. + + +### Known Issues + +* reveal\_ansible\_type filter plugin and ansible\_type test plugin \- note that ansible\-core\'s Data Tagging feature implements new aliases\, such as \_AnsibleTaggedStr for str\, \_AnsibleTaggedInt for int\, and \_AnsibleTaggedFloat for float \([https\://github\.com/ansible\-collections/community\.general/pull/9833](https\://github\.com/ansible\-collections/community\.general/pull/9833)\)\. + + +### New Plugins + + +#### Callback + +* community\.general\.print\_task \- Prints playbook task snippet to job output\. + + +#### Connection + +* community\.general\.wsl \- Run tasks in WSL distribution using wsl\.exe CLI via SSH\. + + +#### Filter + +* community\.general\.accumulate \- Produce a list of accumulated sums of the input list contents\. +* community\.general\.json\_diff \- Create a JSON patch by comparing two JSON files\. +* community\.general\.json\_patch \- Apply a JSON\-Patch \(RFC 6902\) operation to an object\. +* community\.general\.json\_patch\_recipe \- Apply JSON\-Patch \(RFC 6902\) operations to an object\. +* community\.general\.to\_prettytable \- Format a list of dictionaries as an ASCII table\. + + +#### Inventory + +* community\.general\.iocage \- iocage inventory source\. + + +#### Lookup + +* community\.general\.onepassword\_ssh\_key \- Fetch SSH keys stored in 1Password\. + + +### New Modules + +* community\.general\.android\_sdk \- Manages Android SDK packages\. +* community\.general\.decompress \- Decompresses compressed files\. +* community\.general\.ldap\_inc \- Use the Modify\-Increment LDAP V3 feature to increment an attribute value\. +* community\.general\.lvm\_pv \- Manage LVM Physical Volumes\. +* community\.general\.pacemaker\_resource \- Manage pacemaker resources\. +* community\.general\.systemd\_creds\_decrypt \- C\(systemd\)\'s C\(systemd\-creds decrypt\) plugin\. +* community\.general\.systemd\_creds\_encrypt \- C\(systemd\)\'s C\(systemd\-creds encrypt\) plugin\. +* community\.general\.systemd\_info \- Gather C\(systemd\) unit info\. +* community\.general\.xdg\_mime \- Set default handler for MIME types\, for applications using XDG tools\. +* community\.general\.zpool \- Manage ZFS zpools\. diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 119e04e170..34d54467b8 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,624 @@ -Placeholder changelog -===================== +=============================== +Community General Release Notes +=============================== -This file is a placeholder; a version-specific ``CHANGELOG-vX.rst`` will be generated during releases from fragments -under ``changelogs/fragments``. On release branches once a release has been created, consult the branch's version-specific -file for changes that have occurred in that branch. +.. contents:: Topics + +This changelog describes changes after version 10.0.0. + +v11.1.0 +======= + +Release Summary +--------------- + +Regular bugfix and feature release. + +Minor Changes +------------- + +- cloudflare_dns - adds support for PTR records (https://github.com/ansible-collections/community.general/pull/10267). +- cloudflare_dns - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- cloudflare_dns - simplify validations and refactor some code, no functional changes (https://github.com/ansible-collections/community.general/pull/10269). +- crypttab - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- datadog_monitor - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- dense callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). +- gitlab_deploy_key - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- gitlab_group_access_token - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- gitlab_hook - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- gitlab_project_access_token - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- gitlab_runner - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- iocage inventory plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). +- ipa_group - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- jc filter plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). +- jenkins_build - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- jenkins_build_info - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- keycloak - add support for ``grant_type=client_credentials`` to all keycloak modules, so that specifying ``auth_client_id`` and ``auth_client_secret`` is sufficient for authentication (https://github.com/ansible-collections/community.general/pull/10231). +- keycloak module utils - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- logstash callback plugin - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- mail callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). +- nmcli - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- nmcli - simplify validations and refactor some code, no functional changes (https://github.com/ansible-collections/community.general/pull/10323). +- oneandone_firewall_policy - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- oneandone_load_balancer - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- oneandone_monitoring_policy - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- onepassword_info - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- osx_defaults - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- ovh_ip_loadbalancing_backend - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- pacemaker_cluster - add ``state=maintenance`` for managing pacemaker maintenance mode (https://github.com/ansible-collections/community.general/issues/10200, https://github.com/ansible-collections/community.general/pull/10227). +- pacemaker_cluster - rename ``node`` to ``name`` and add ``node`` alias (https://github.com/ansible-collections/community.general/pull/10227). +- pacemaker_resource - enhance module by removing duplicative code (https://github.com/ansible-collections/community.general/pull/10227). +- packet_device - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- pagerduty - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- pingdom - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- python_runner module utils - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- rhevm - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- rocketchat - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- sensu_silence - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- sl_vm - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- urpmi - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- wsl connection plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). +- xattr - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). +- xen_orchestra inventory plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). +- xfconf - minor adjustments the the code (https://github.com/ansible-collections/community.general/pull/10311). +- xml - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). + +Deprecated Features +------------------- + +- catapult - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10329). +- pacemaker_cluster - the parameter ``state`` will become a required parameter in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/10227). + +Bugfixes +-------- + +- dependent lookup plugin - avoid deprecated ansible-core 2.19 functionality (https://github.com/ansible-collections/community.general/pull/10359). +- github_release - support multiple types of GitHub tokens; no longer failing when ``ghs_`` token type is provided (https://github.com/ansible-collections/community.general/issues/10338, https://github.com/ansible-collections/community.general/pull/10339). +- icinga2 inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.general/pull/10271). +- incus connection plugin - fix error handling to return more useful Ansible errors to the user (https://github.com/ansible-collections/community.general/issues/10344, https://github.com/ansible-collections/community.general/pull/10349). +- linode inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.general/pull/10271). +- logstash callback plugin - remove reference to Python 2 library (https://github.com/ansible-collections/community.general/pull/10345). + +New Plugins +----------- + +Callback +~~~~~~~~ + +- community.general.tasks_only - Only show tasks. + +New Modules +----------- + +- community.general.jenkins_credential - Manage Jenkins credentials and domains via API. + +v11.0.0 +======= + +Release Summary +--------------- + +This is release 11.0.0 of ``community.general``, released on 2025-06-16. + +Minor Changes +------------- + +- CmdRunner module utils - the convenience method ``cmd_runner_fmt.as_fixed()`` now accepts multiple arguments as a list (https://github.com/ansible-collections/community.general/pull/9893). +- MH module utils - delegate ``debug`` to the underlying ``AnsibleModule`` instance or issues a warning if an attribute already exists with that name (https://github.com/ansible-collections/community.general/pull/9577). +- alternatives - add ``family`` parameter that allows to utilize the ``--family`` option available in RedHat version of update-alternatives (https://github.com/ansible-collections/community.general/issues/5060, https://github.com/ansible-collections/community.general/pull/9096). +- apache2_mod_proxy - better handling regexp extraction (https://github.com/ansible-collections/community.general/pull/9609). +- apache2_mod_proxy - change type of ``state`` to a list of strings. No change for the users (https://github.com/ansible-collections/community.general/pull/9600). +- apache2_mod_proxy - code simplification, no change in functionality (https://github.com/ansible-collections/community.general/pull/9457). +- apache2_mod_proxy - improve readability when using results from ``fecth_url()`` (https://github.com/ansible-collections/community.general/pull/9608). +- apache2_mod_proxy - refactor repeated code into method (https://github.com/ansible-collections/community.general/pull/9599). +- apache2_mod_proxy - remove unused parameter and code from ``Balancer`` constructor (https://github.com/ansible-collections/community.general/pull/9614). +- apache2_mod_proxy - simplified and improved string manipulation (https://github.com/ansible-collections/community.general/pull/9614). +- apache2_mod_proxy - use ``deps`` to handle dependencies (https://github.com/ansible-collections/community.general/pull/9612). +- apache2_module - added workaround for new PHP module name, from ``php7_module`` to ``php_module`` (https://github.com/ansible-collections/community.general/pull/9951). +- bitwarden lookup plugin - add new option ``collection_name`` to filter results by collection name, and new option ``result_count`` to validate number of results (https://github.com/ansible-collections/community.general/pull/9728). +- bitwarden lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- cargo - add ``features`` parameter to allow activating specific features when installing Rust packages (https://github.com/ansible-collections/community.general/pull/10198). +- cartesian lookup plugin - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160). +- cgroup_memory_recap callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- cgroup_memory_recap callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- chef_databag lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- chroot connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- chroot connection plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- chroot connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- cloud_init_data_facts - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- cloudflare_dns - add support for ``comment`` and ``tags`` (https://github.com/ansible-collections/community.general/pull/9132). +- cobbler inventory plugin - add ``connection_timeout`` option to specify the connection timeout to the cobbler server (https://github.com/ansible-collections/community.general/pull/11063). +- cobbler inventory plugin - add ``facts_level`` option to allow requesting fully rendered variables for Cobbler systems (https://github.com/ansible-collections/community.general/issues/9419, https://github.com/ansible-collections/community.general/pull/9975). +- cobbler inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- cobbler inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- cobbler inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- collection_version lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- consul_kv lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- consul_token - fix idempotency when ``policies`` or ``roles`` are supplied by name (https://github.com/ansible-collections/community.general/issues/9841, https://github.com/ansible-collections/community.general/pull/9845). +- context_demo callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- context_demo callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- counter filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- counter_enabled callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- counter_enabled callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- cpanm - enable usage of option ``--with-recommends`` (https://github.com/ansible-collections/community.general/issues/9554, https://github.com/ansible-collections/community.general/pull/9555). +- cpanm - enable usage of option ``--with-suggests`` (https://github.com/ansible-collections/community.general/pull/9555). +- crc32 filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- credstash lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- cronvar - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- crypttab - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- cyberarkpassword lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- cyberarkpassword lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- default_without_diff callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- dense callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- dense callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- dependent lookup plugin - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160). +- dependent lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- deps module utils - add ``deps.clear()`` to clear out previously declared dependencies (https://github.com/ansible-collections/community.general/pull/9179). +- dict filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- dict_kv filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- dig lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- dig lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- diy callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- diy callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- dnstxt lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- dnstxt lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- doas become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- doas become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319). +- dsv lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- dzdo become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- dzdo become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319). +- elastic callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- elastic callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). +- elastic callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- etcd lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- etcd3 lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- etcd3 lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- filetree lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- flattened lookup plugin - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160). +- from_csv filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- from_csv filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- from_ini filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- from_ini filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- funcd connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- funcd connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- git_config - remove redundant ``required=False`` from ``argument_spec`` (https://github.com/ansible-collections/community.general/pull/10177). +- github_app_access_token lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- github_key - add ``api_url`` parameter to support GitHub Enterprise Server installations (https://github.com/ansible-collections/community.general/pull/10191). +- gitlab_instance_variable - add support for ``raw`` variables suboption (https://github.com/ansible-collections/community.general/pull/9425). +- gitlab_project - add option ``build_timeout`` (https://github.com/ansible-collections/community.general/pull/9960). +- gitlab_project_members - extend choices parameter ``access_level`` by missing upstream valid value ``owner`` (https://github.com/ansible-collections/community.general/pull/9953). +- gitlab_runners inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- gitlab_runners inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- gitlab_runners inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- groupby_as_dict filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- hashids filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- hiera lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- homebrew - greatly speed up module when multiple packages are passed in the ``name`` option (https://github.com/ansible-collections/community.general/pull/9181). +- homebrew - remove duplicated package name validation (https://github.com/ansible-collections/community.general/pull/9076). +- hpilo_boot - add option to get an idempotent behavior while powering on server, resulting in success instead of failure when using ``state: boot_once`` option (https://github.com/ansible-collections/community.general/pull/9646). +- icinga2 inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- icinga2 inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- idrac_redfish_command, idrac_redfish_config, idrac_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964). +- ilo_redfish_command, ilo_redfish_config, ilo_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964). +- incus connection plugin - adds ``remote_user`` and ``incus_become_method`` parameters for allowing a non-root user to connect to an Incus instance (https://github.com/ansible-collections/community.general/pull/9743). +- incus connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- incus connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- ini_file - modify an inactive option also when there are spaces in front of the comment symbol (https://github.com/ansible-collections/community.general/pull/10102, https://github.com/ansible-collections/community.general/issues/8539). +- iocage connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- iocage connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- iocage inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- iocage inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- iocage inventory plugin - the new parameter ``hooks_results`` of the plugin is a list of files inside a jail that provide configuration parameters for the inventory. The inventory plugin reads the files from the jails and put the contents into the items of created variable ``iocage_hooks`` (https://github.com/ansible-collections/community.general/issues/9650, https://github.com/ansible-collections/community.general/pull/9651). +- iocage inventory plugin - the new parameter ``inventory_hostname_tag`` of the plugin provides the name of the tag in the C(iocage properties notes) that contains the jails alias. The new parameter ``inventory_hostname_required``, if enabled, makes the tag mandatory (https://github.com/ansible-collections/community.general/issues/10206, https://github.com/ansible-collections/community.general/pull/10207). +- iocage inventory plugin - the new parameter ``sudo`` of the plugin lets the command ``iocage list -l`` to run as root on the iocage host. This is needed to get the IPv4 of a running DHCP jail (https://github.com/ansible-collections/community.general/issues/9572, https://github.com/ansible-collections/community.general/pull/9573). +- iptables_state action plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- iptables_state action plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9318). +- iso_extract - adds ``password`` parameter that is passed to 7z (https://github.com/ansible-collections/community.general/pull/9159). +- jabber callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- jabber callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- jail connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- jail connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- jc filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- jira - adds ``client_cert`` and ``client_key`` parameters for supporting client certificate authentification when connecting to Jira (https://github.com/ansible-collections/community.general/pull/9753). +- jira - transition operation now has ``status_id`` to directly reference wanted transition (https://github.com/ansible-collections/community.general/pull/9602). +- json_query filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- keep_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- keycloak - add an action group for Keycloak modules to allow ``module_defaults`` to be set for Keycloak tasks (https://github.com/ansible-collections/community.general/pull/9284). +- keycloak module_utils - user groups can now be referenced by their name, like ``staff``, or their path, like ``/staff/engineering``. The path syntax allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898). +- keycloak_* modules - ``refresh_token`` parameter added. When multiple authentication parameters are provided (``token``, ``refresh_token``, and ``auth_username``/``auth_password``), modules will now automatically retry requests upon authentication errors (401), using in order the token, refresh token, and username/password (https://github.com/ansible-collections/community.general/pull/9494). +- keycloak_realm - remove ID requirement when creating a realm to allow Keycloak generating its own realm ID (https://github.com/ansible-collections/community.general/pull/9768). +- keycloak_user module - user groups can now be referenced by their name, like ``staff``, or their path, like ``/staff/engineering``. The path syntax allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898). +- keyring lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- known_hosts - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- ksu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- ksu become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319). +- lastpass lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- launchd - add ``plist`` option for services such as sshd, where the plist filename doesn't match the service name (https://github.com/ansible-collections/community.general/pull/9102). +- linode inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- linode inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- lists filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- lists_mergeby filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- lldp - adds ``multivalues`` parameter to control behavior when lldpctl outputs an attribute multiple times (https://github.com/ansible-collections/community.general/pull/9657). +- lmdb_kv lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- lmdb_kv lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- locale_gen - invert the logic to determine ``ubuntu_mode``, making it look first for ``/etc/locale.gen`` (set ``ubuntu_mode`` to ``False``) and only then looking for ``/var/lib/locales/supported.d/`` (set ``ubuntu_mode`` to ``True``) (https://github.com/ansible-collections/community.general/pull/9238, https://github.com/ansible-collections/community.general/issues/9131, https://github.com/ansible-collections/community.general/issues/8487). +- locale_gen - new return value ``mechanism`` to better express the semantics of the ``ubuntu_mode``, with the possible values being either ``glibc`` (``ubuntu_mode=False``) or ``ubuntu_legacy`` (``ubuntu_mode=True``) (https://github.com/ansible-collections/community.general/pull/9238). +- log_plays callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- log_plays callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- loganalytics callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- loganalytics callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). +- loganalytics callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- logdna callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- logdna callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- logentries callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- logentries callback plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- logentries callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- logstash callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- lvg - add ``remove_extra_pvs`` parameter to control if ansible should remove physical volumes which are not in the ``pvs`` parameter (https://github.com/ansible-collections/community.general/pull/9698). +- lxc connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- lxc connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- lxd connection plugin - adds ``remote_user`` and ``lxd_become_method`` parameters for allowing a non-root user to connect to an LXD instance (https://github.com/ansible-collections/community.general/pull/9659). +- lxd connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- lxd connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- lxd inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- lxd inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- lxd inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- machinectl become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- machinectl become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319). +- mail callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- mail callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- manageiq_alert_profiles - improve handling of parameter requirements (https://github.com/ansible-collections/community.general/pull/9449). +- manifold lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- manifold lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- maven_artifact - removed compatibility code for ansible-core < 2.12 (https://github.com/ansible-collections/community.general/pull/10192). +- memcached cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- memcached cache plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9320). +- merge_variables lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- nmap inventory plugin - adds ``dns_servers`` option for specifying DNS servers for name resolution. Accepts hostnames or IP addresses in the same format as the ``exclude`` option (https://github.com/ansible-collections/community.general/pull/9849). +- nmap inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- nmap inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- nmap inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- nmcli - add ``sriov`` parameter that enables support for SR-IOV settings (https://github.com/ansible-collections/community.general/pull/9168). +- nmcli - add a option ``fail_over_mac`` (https://github.com/ansible-collections/community.general/issues/9570, https://github.com/ansible-collections/community.general/pull/9571). +- nmcli - add support for Infiniband MAC setting when ``type`` is ``infiniband`` (https://github.com/ansible-collections/community.general/pull/9962). +- nmcli - adds VRF support with new ``type`` value ``vrf`` and new ``slave_type`` value ``vrf`` as well as new ``table`` parameter (https://github.com/ansible-collections/community.general/pull/9658, https://github.com/ansible-collections/community.general/issues/8014). +- nmcli - adds ``autoconnect_priority`` and ``autoconnect_retries`` options to support autoconnect logic (https://github.com/ansible-collections/community.general/pull/10134). +- nrdp callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- nrdp callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- null callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- one_template - adds ``filter`` option for retrieving templates which are not owned by the user (https://github.com/ansible-collections/community.general/pull/9547, https://github.com/ansible-collections/community.general/issues/9278). +- one_vm - update allowed values for ``updateconf`` to include new parameters as per the latest OpenNebula API documentation. + Added parameters: + + * ``OS``: ``FIRMWARE``; + * ``CPU_MODEL``: ``MODEL``, ``FEATURES``; + * ``FEATURES``: ``VIRTIO_BLK_QUEUES``, ``VIRTIO_SCSI_QUEUES``, ``IOTHREADS``; + * ``GRAPHICS``: ``PORT``, ``COMMAND``; + * ``VIDEO``: ``ATS``, ``IOMMU``, ``RESOLUTION``, ``TYPE``, ``VRAM``; + * ``RAW``: ``VALIDATE``; + * ``BACKUP_CONFIG``: ``FS_FREEZE``, ``KEEP_LAST``, ``BACKUP_VOLATILE``, ``MODE``, ``INCREMENT_MODE``. + + (https://github.com/ansible-collections/community.general/pull/9959). +- onepassword lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- onepassword lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- onepassword_doc lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- onepassword_ssh_key - refactor to move code to lookup class (https://github.com/ansible-collections/community.general/pull/9633). +- online inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- online inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- opennebula inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- opennebula inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- opennebula inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- opentelemetry callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- opentelemetry callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). +- opentelemetry callback plugin - remove code handling Python versions prior to 3.7 (https://github.com/ansible-collections/community.general/pull/9482). +- opentelemetry callback plugin - remove code handling Python versions prior to 3.7 (https://github.com/ansible-collections/community.general/pull/9503). +- opentelemetry callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- pacemaker_cluster - remove unused code (https://github.com/ansible-collections/community.general/pull/9471). +- pacemaker_cluster - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/9471). +- pacemaker_resource - add maintenance mode support for handling resource creation and deletion (https://github.com/ansible-collections/community.general/issues/10180, https://github.com/ansible-collections/community.general/pull/10194). +- pacman_key - support verifying that keys are trusted and not expired (https://github.com/ansible-collections/community.general/issues/9949, https://github.com/ansible-collections/community.general/pull/9950). +- parted - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- passwordstore lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- pbrun become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- pbrun become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319). +- pfexec become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- pfexec become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319). +- pickle cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- pipx - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9180). +- pipx - parameter ``name`` now accepts Python package specifiers (https://github.com/ansible-collections/community.general/issues/7815, https://github.com/ansible-collections/community.general/pull/10031). +- pipx module_utils - filtering application list by name now happens in the modules (https://github.com/ansible-collections/community.general/pull/10031). +- pipx_info - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9180). +- pipx_info - filtering application list by name now happens in the module (https://github.com/ansible-collections/community.general/pull/10031). +- pmrun become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- pmrun become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319). +- pulp_repo - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- puppet - improve parameter formatting, no impact to user (https://github.com/ansible-collections/community.general/pull/10014). +- qubes connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- qubes connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- random_mac filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- random_pet lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- redfish module utils - add ``REDFISH_COMMON_ARGUMENT_SPEC``, a corresponding ``redfish`` docs fragment, and support for its ``validate_certs``, ``ca_path``, and ``ciphers`` options (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964). +- redfish module utils - removed compatibility code for ansible-core < 2.14 (https://github.com/ansible-collections/community.general/pull/10160). +- redfish_command - add ``PowerFullPowerCycle`` to power command options (https://github.com/ansible-collections/community.general/pull/9729). +- redfish_command - add ``update_custom_oem_header``, ``update_custom_oem_params``, and ``update_custom_oem_mime_type`` options (https://github.com/ansible-collections/community.general/pull/9123). +- redfish_command, redfish_config, redfish_info - add ``validate_certs`` and ``ca_path`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964). +- redfish_config - add command ``SetPowerRestorePolicy`` to set the desired power state of the system when power is restored (https://github.com/ansible-collections/community.general/pull/9837). +- redfish_info - add command ``GetAccountServiceConfig`` to get full information about AccountService configuration (https://github.com/ansible-collections/community.general/pull/9403). +- redfish_info - add command ``GetPowerRestorePolicy`` to get the desired power state of the system when power is restored (https://github.com/ansible-collections/community.general/pull/9824). +- redfish_utils module utils - remove redundant code (https://github.com/ansible-collections/community.general/pull/9190). +- redhat_subscription - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- redis cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- redis cache plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- redis cache plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9320). +- redis lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- remove_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- replace_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- revbitspss lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- reveal_ansible_type filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- rocketchat - fix duplicate JSON conversion for Rocket.Chat < 7.4.0 (https://github.com/ansible-collections/community.general/pull/9965). +- rocketchat - option ``is_pre740`` has been added to control the format of the payload. For Rocket.Chat 7.4.0 or newer, it must be set to ``false`` (https://github.com/ansible-collections/community.general/pull/9882). +- rpm_ostree_pkg - added the options ``apply_live`` (https://github.com/ansible-collections/community.general/pull/9167). +- rpm_ostree_pkg - added the return value ``needs_reboot`` (https://github.com/ansible-collections/community.general/pull/9167). +- run0 become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- saltstack connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- saltstack connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- say callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- say callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- scaleway inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- scaleway inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- scaleway inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- scaleway_lb - minor simplification in the code (https://github.com/ansible-collections/community.general/pull/9189). +- selective callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- selective callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- sesu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- sesu become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319). +- shelvefile lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- shutdown action plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- shutdown action plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- shutdown action plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9318). +- slack callback plugin - add ``http_agent`` option to enable the user to set a custom user agent for slack callback plugin (https://github.com/ansible-collections/community.general/issues/9813, https://github.com/ansible-collections/community.general/pull/9836). +- slack callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- slack callback plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- slack callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- snap - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9598). +- snap_alias - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9598). +- solaris_zone - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- sorcery - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- splunk callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- splunk callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). +- splunk callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- ssh_config - add ``dynamicforward`` option (https://github.com/ansible-collections/community.general/pull/9192). +- ssh_config - add ``other_options`` option (https://github.com/ansible-collections/community.general/issues/8053, https://github.com/ansible-collections/community.general/pull/9684). +- stackpath_compute inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- stackpath_compute inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- sudosu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- sudosu become plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9319). +- sumologic callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- sumologic callback plugin - instead of trying to extract the ansible-core version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). +- syslog_json callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- systemd_info - add wildcard expression support in ``unitname`` option (https://github.com/ansible-collections/community.general/pull/9821). +- systemd_info - extend support to timer units (https://github.com/ansible-collections/community.general/pull/9891). +- terraform - adds the ``no_color`` parameter, which suppresses or allows color codes in stdout from Terraform commands (https://github.com/ansible-collections/community.general/pull/10154). +- time filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- timestamp callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- timestamp callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- timezone - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). +- to_ini filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- to_ini filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- tss lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- tss lookup plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). +- ufw - add support for ``vrrp`` protocol (https://github.com/ansible-collections/community.general/issues/9562, https://github.com/ansible-collections/community.general/pull/9582). +- unicode_normalize filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- unixy callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- unixy callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- version_sort filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). +- virtualbox inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- virtualbox inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). +- virtualbox inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- vmadm - add new options ``flexible_disk_size`` and ``owner_uuid`` (https://github.com/ansible-collections/community.general/pull/9892). +- wdc_redfish_command, wdc_redfish_info - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964). +- xbps - add ``root`` and ``repository`` options to enable bootstrapping new void installations (https://github.com/ansible-collections/community.general/pull/9174). +- xcc_redfish_command - add ``validate_certs``, ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, https://github.com/ansible-collections/community.general/pull/9964). +- xen_orchestra inventory plugin - add ``use_vm_uuid`` and ``use_host_uuid`` boolean options to allow switching over to using VM/Xen name labels instead of UUIDs as item names (https://github.com/ansible-collections/community.general/pull/9787). +- xen_orchestra inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- xen_orchestra inventory plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). +- xfconf - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9226). +- xfconf_info - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9226). +- xml - support adding value of children when creating with subnodes (https://github.com/ansible-collections/community.general/pull/8437). +- yaml cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- yaml callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). +- yaml callback plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). +- zone connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). +- zone connection plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9322). +- zypper - add ``quiet`` option (https://github.com/ansible-collections/community.general/pull/9270). +- zypper - add ``simple_errors`` option (https://github.com/ansible-collections/community.general/pull/9270). +- zypper - adds ``skip_post_errors`` that allows to skip RPM post-install errors (Zypper return code 107) (https://github.com/ansible-collections/community.general/issues/9972). + +Deprecated Features +------------------- + +- MH module utils - attribute ``debug`` definition in subclasses of MH is now deprecated, as that name will become a delegation to ``AnsibleModule`` in community.general 12.0.0, and any such attribute will be overridden by that delegation in that version (https://github.com/ansible-collections/community.general/pull/9577). +- atomic_container - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487). +- atomic_host - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487). +- atomic_image - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487). +- facter - module is deprecated and will be removed in community.general 12.0.0, use ``community.general.facter_facts`` instead (https://github.com/ansible-collections/community.general/pull/9451). +- locale_gen - ``ubuntu_mode=True``, or ``mechanism=ubuntu_legacy`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9238). +- manifold lookup plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10028). +- opkg - deprecate value ``""`` for parameter ``force`` (https://github.com/ansible-collections/community.general/pull/9172). +- pipx module_utils - function ``make_process_list()`` is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10031). +- profitbricks - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). +- profitbricks_datacenter - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). +- profitbricks_nic - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). +- profitbricks_volume - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). +- profitbricks_volume_attachments - module is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). +- pure module utils - the module utils is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432). +- purestorage doc fragments - the doc fragment is deprecated and will be removed from community.general 12.0.0. The modules using this were removed in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432). +- redfish_utils module utils - deprecate method ``RedfishUtils._init_session()`` (https://github.com/ansible-collections/community.general/pull/9190). +- sensu_check - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). +- sensu_client - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). +- sensu_handler - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). +- sensu_silence - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). +- sensu_subscription - module is deprecated and will be removed in community.general 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). +- slack - the default value ``auto`` of the ``prepend_hash`` option is deprecated and will change to ``never`` in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/9443). +- stackpath_compute inventory plugin - plugin is deprecated and will be removed in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10026). +- yaml callback plugin - deprecate plugin in favor of ``result_format=yaml`` in plugin ``ansible.bulitin.default`` (https://github.com/ansible-collections/community.general/pull/9456). +- yaml callback plugin - the YAML callback plugin was deprecated for removal in community.general 13.0.0. Since it needs to use ansible-core internals since ansible-core 2.19 that are changing a lot, we will remove this plugin already from community.general 12.0.0 to ease the maintenance burden (https://github.com/ansible-collections/community.general/pull/10213). + +Removed Features (previously deprecated) +---------------------------------------- + +- Dropped support for ansible-core 2.15. The collection now requires ansible-core 2.16 or newer. This means that on the controller, Python 3.10+ is required. On the target side, Python 2.7 and Python 3.6+ are supported (https://github.com/ansible-collections/community.general/pull/10160, https://github.com/ansible-collections/community.general/pull/10192). +- The Proxmox content (modules and plugins) has been moved to the `new collection community.proxmox `__. Since community.general 11.0.0, these modules and plugins have been replaced by deprecated redirections to community.proxmox. You need to explicitly install community.proxmox, for example with ``ansible-galaxy collection install community.proxmox``, or by installing a new enough version of the Ansible community package. We suggest to update your roles and playbooks to use the new FQCNs as soon as possible to avoid getting deprecation messages (https://github.com/ansible-collections/community.general/pull/10110). +- apt_rpm - the ``present`` and ``installed`` states are no longer equivalent to ``latest``, but to ``present_not_latest`` (https://github.com/ansible-collections/community.general/pull/10126). +- clc_* modules and doc fragment - the modules were removed since CenturyLink Cloud services went EOL in September 2023 (https://github.com/ansible-collections/community.general/pull/10126). +- django_manage - the ``ack_venv_creation_deprecation`` option has been removed. It had no effect anymore anyway (https://github.com/ansible-collections/community.general/pull/10126). +- git_config - it is no longer allowed to use ``state=present`` with no value to read the config value. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126). +- git_config - the ``list_all`` option has been removed. Use the ``community.general.git_config_info`` module instead (https://github.com/ansible-collections/community.general/pull/10126). +- hipchat - the module was removed since the hipchat service has been discontinued and the self-hosted variant has been End of Life since 2020 (https://github.com/ansible-collections/community.general/pull/10126). +- manifold lookup plugin - the plugin was removed since the company was acquired in 2021 and service was ceased afterwards (https://github.com/ansible-collections/community.general/pull/10126). +- mh.mixins.deps module utils - this module utils has been removed. Use the ``deps`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126). +- mh.mixins.vars module utils - this module utils has been removed. Use ``VarDict`` from the ``vardict`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126). +- mh.module_helper module utils - ``AnsibleModule`` and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126). +- mh.module_helper module utils - ``VarDict`` is now imported from the ``vardict`` module utils and no longer from the removed ``mh.mixins.vars`` module utils (https://github.com/ansible-collections/community.general/pull/10126). +- mh.module_helper module utils - the attributes ``use_old_vardict`` and ``mute_vardict_deprecation`` from ``ModuleHelper`` have been removed. We suggest to remove them from your modules if you no longer support community.general < 11.0.0 (https://github.com/ansible-collections/community.general/pull/10126). +- module_helper module utils - ``StateMixin``, ``DependencyCtxMgr``, ``VarMeta``, ``VarDict``, and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126). +- pipx - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137). +- pipx_info - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137). +- profitbrick* modules - the modules were removed since the supporting library is unsupported since 2021 (https://github.com/ansible-collections/community.general/pull/10126). +- redfish_utils module utils - the ``_init_session`` method has been removed (https://github.com/ansible-collections/community.general/pull/10126). +- stackpath_compute inventory plugin - the plugin was removed since the company and the service were sunset in June 2024 (https://github.com/ansible-collections/community.general/pull/10126). + +Security Fixes +-------------- + +- keycloak_authentication - API calls did not properly set the ``priority`` during update resulting in incorrectly sorted authentication flows. This apparently only affects Keycloak 25 or newer (https://github.com/ansible-collections/community.general/pull/9263). +- keycloak_client - Sanitize ``saml.encryption.private.key`` so it does not show in the logs (https://github.com/ansible-collections/community.general/pull/9621). + +Bugfixes +-------- + +- apache2_mod_proxy - make compatible with Python 3 (https://github.com/ansible-collections/community.general/pull/9762). +- apache2_mod_proxy - passing the cluster's page as referer for the member's pages. This makes the module actually work again for halfway modern Apache versions. According to some comments founds on the net the referer was required since at least 2019 for some versions of Apache 2 (https://github.com/ansible-collections/community.general/pull/9762). +- cloudflare_dns - fix crash when deleting a DNS record or when updating a record with ``solo=true`` (https://github.com/ansible-collections/community.general/issues/9652, https://github.com/ansible-collections/community.general/pull/9649). +- cloudlare_dns - handle exhausted response stream in case of HTTP errors to show nice error message to the user (https://github.com/ansible-collections/community.general/issues/9782, https://github.com/ansible-collections/community.general/pull/9818). +- cobbler_system - fix bug with Cobbler >= 3.4.0 caused by giving more than 2 positional arguments to ``CobblerXMLRPCInterface.get_system_handle()`` (https://github.com/ansible-collections/community.general/issues/8506, https://github.com/ansible-collections/community.general/pull/10145). +- cobbler_system - update minimum version number to avoid wrong comparisons that happen in some cases using LooseVersion class which results in TypeError (https://github.com/ansible-collections/community.general/issues/8506, https://github.com/ansible-collections/community.general/pull/10145, https://github.com/ansible-collections/community.general/pull/10178). +- dependent look plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833). +- dig lookup plugin - correctly handle ``NoNameserver`` exception (https://github.com/ansible-collections/community.general/pull/9363, https://github.com/ansible-collections/community.general/issues/9362). +- diy callback plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833). +- dnf_config_manager - fix hanging when prompting to import GPG keys (https://github.com/ansible-collections/community.general/pull/9124, https://github.com/ansible-collections/community.general/issues/8830). +- dnf_config_manager - forces locale to ``C`` before module starts. If the locale was set to non-English, the output of the ``dnf config-manager`` could not be parsed (https://github.com/ansible-collections/community.general/pull/9157, https://github.com/ansible-collections/community.general/issues/9046). +- dnf_versionlock - add support for dnf5 (https://github.com/ansible-collections/community.general/issues/9556). +- elasticsearch_plugin - fix ``ERROR: D is not a recognized option`` issue when configuring proxy settings (https://github.com/ansible-collections/community.general/pull/9774, https://github.com/ansible-collections/community.general/issues/9773). +- flatpak - force the locale language to ``C`` when running the flatpak command (https://github.com/ansible-collections/community.general/pull/9187, https://github.com/ansible-collections/community.general/issues/8883). +- gio_mime - fix command line when determining version of ``gio`` (https://github.com/ansible-collections/community.general/pull/9171, https://github.com/ansible-collections/community.general/issues/9158). +- github_deploy_key - check that key really exists on 422 to avoid masking other errors (https://github.com/ansible-collections/community.general/issues/6718, https://github.com/ansible-collections/community.general/pull/10011). +- github_key - in check mode, a faulty call to ```datetime.strftime(...)``` was being made which generated an exception (https://github.com/ansible-collections/community.general/issues/9185). +- gitlab_group_access_token, gitlab_project_access_token - fix handling of group and project access tokens for changes in GitLab 17.10 (https://github.com/ansible-collections/community.general/pull/10196). +- hashids and unicode_normalize filter plugins - avoid deprecated ``AnsibleFilterTypeError`` on ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/9992). +- homebrew - emit a useful error message if ``brew info`` reports a package tap is ``null`` (https://github.com/ansible-collections/community.general/pull/10013, https://github.com/ansible-collections/community.general/issues/10012). +- homebrew - fix crash when package names include tap (https://github.com/ansible-collections/community.general/issues/9777, https://github.com/ansible-collections/community.general/pull/9803). +- homebrew - fix incorrect handling of aliased homebrew modules when the alias is requested (https://github.com/ansible-collections/community.general/pull/9255, https://github.com/ansible-collections/community.general/issues/9240). +- homebrew - fix incorrect handling of homebrew modules when a tap is requested (https://github.com/ansible-collections/community.general/pull/9546, https://github.com/ansible-collections/community.general/issues/9533). +- homebrew - make package name parsing more resilient (https://github.com/ansible-collections/community.general/pull/9665, https://github.com/ansible-collections/community.general/issues/9641). +- homebrew_cask - allow ``+`` symbol in Homebrew cask name validation regex (https://github.com/ansible-collections/community.general/pull/9128). +- homebrew_cask - handle unusual brew version strings (https://github.com/ansible-collections/community.general/issues/8432, https://github.com/ansible-collections/community.general/pull/9881). +- htpasswd - report changes when file permissions are adjusted (https://github.com/ansible-collections/community.general/issues/9485, https://github.com/ansible-collections/community.general/pull/9490). +- iocage inventory plugin - the plugin parses the IP4 tab of the jails list and put the elements into the new variable ``iocage_ip4_dict``. In multiple interface format the variable ``iocage_ip4`` keeps the comma-separated list of IP4 (https://github.com/ansible-collections/community.general/issues/9538). +- ipa_host - module revoked existing host certificates even if ``user_certificate`` was not given (https://github.com/ansible-collections/community.general/pull/9694). +- java_cert - the module no longer fails if the optional parameters ``pkcs12_alias`` and ``cert_alias`` are not provided (https://github.com/ansible-collections/community.general/pull/9970). +- kdeconfig - allow option values beginning with a dash (https://github.com/ansible-collections/community.general/issues/10127, https://github.com/ansible-collections/community.general/pull/10128). +- keycloak - update more than 10 sub-groups (https://github.com/ansible-collections/community.general/issues/9690, https://github.com/ansible-collections/community.general/pull/9692). +- keycloak module utils - replaces missing return in get_role_composites method which caused it to return None instead of composite roles (https://github.com/ansible-collections/community.general/issues/9678, https://github.com/ansible-collections/community.general/pull/9691). +- keycloak_authentication - fix authentification config duplication for Keycloak < 26.2.0 (https://github.com/ansible-collections/community.general/pull/9987). +- keycloak_client - fix and improve existing tests. The module showed a diff without actual changes, solved by improving the ``normalise_cr()`` function (https://github.com/ansible-collections/community.general/pull/9644). +- keycloak_client - fix diff by removing code that turns the attributes dict which contains additional settings into a list (https://github.com/ansible-collections/community.general/pull/9077). +- keycloak_client - fix the idempotency regression by normalizing the Keycloak response for ``after_client`` (https://github.com/ansible-collections/community.general/issues/9905, https://github.com/ansible-collections/community.general/pull/9976). +- keycloak_client - in check mode, detect whether the lists in before client (for example redirect URI list) contain items that the lists in the desired client do not contain (https://github.com/ansible-collections/community.general/pull/9739). +- keycloak_clientscope - fix diff and ``end_state`` by removing the code that turns the attributes dict, which contains additional config items, into a list (https://github.com/ansible-collections/community.general/pull/9082). +- keycloak_clientscope_type - sort the default and optional clientscope lists to improve the diff (https://github.com/ansible-collections/community.general/pull/9202). +- keycloak_user_rolemapping - fix ``--diff`` mode (https://github.com/ansible-collections/community.general/issues/10067, https://github.com/ansible-collections/community.general/pull/10075). +- lldp - fix crash caused by certain lldpctl output where an attribute is defined as branch and leaf (https://github.com/ansible-collections/community.general/pull/9657). +- nmcli - enable changing only the order of DNS servers or search suffixes (https://github.com/ansible-collections/community.general/issues/8724, https://github.com/ansible-collections/community.general/pull/9880). +- onepassword_doc lookup plugin - ensure that 1Password Connect support also works for this plugin (https://github.com/ansible-collections/community.general/pull/9625). +- passwordstore lookup plugin - fix subkey creation even when ``create=false`` (https://github.com/ansible-collections/community.general/issues/9105, https://github.com/ansible-collections/community.general/pull/9106). +- pickle cache plugin - avoid extra JSON serialization with ansible-core >= 2.19 (https://github.com/ansible-collections/community.general/pull/10136). +- pipx - honor option ``global`` when ``state=latest`` (https://github.com/ansible-collections/community.general/pull/9623). +- qubes connection plugin - fix the printing of debug information (https://github.com/ansible-collections/community.general/pull/9334). +- redfish_utils module utils - Fix ``VerifyBiosAttributes`` command on multi system resource nodes (https://github.com/ansible-collections/community.general/pull/9234). +- redfish_utils module utils - remove undocumented default applytime (https://github.com/ansible-collections/community.general/pull/9114). +- redhat_subscription - do not try to unsubscribe (i.e. remove subscriptions) + when unregistering a system: newer versions of subscription-manager, as + available in EL 10 and Fedora 41+, do not support entitlements anymore, and + thus unsubscribing will fail + (https://github.com/ansible-collections/community.general/pull/9578). +- redhat_subscription - use the "enable_content" option (when available) when + registering using D-Bus, to ensure that subscription-manager enables the + content on registration; this is particular important on EL 10+ and Fedora + 41+ + (https://github.com/ansible-collections/community.general/pull/9778). +- reveal_ansible_type filter plugin and ansible_type test plugin - make compatible with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833). +- rundeck_acl_policy - ensure that project ACLs are sent to the correct endpoint (https://github.com/ansible-collections/community.general/pull/10097). +- slack - fail if Slack API response is not OK with error message (https://github.com/ansible-collections/community.general/pull/9198). +- sudoers - display stdout and stderr raised while failed validation (https://github.com/ansible-collections/community.general/issues/9674, https://github.com/ansible-collections/community.general/pull/9871). +- sysrc - no longer always reporting ``changed=true`` when ``state=absent``. This fixes the method ``exists()`` (https://github.com/ansible-collections/community.general/issues/10004, https://github.com/ansible-collections/community.general/pull/10005). +- sysrc - split the output of ``sysrc -e -a`` on the first ``=`` only (https://github.com/ansible-collections/community.general/issues/10120, https://github.com/ansible-collections/community.general/pull/10121). +- xml - ensure file descriptor is closed (https://github.com/ansible-collections/community.general/pull/9695). +- yaml callback plugin - adjust to latest changes in ansible-core devel (https://github.com/ansible-collections/community.general/pull/10212). +- yaml callback plugin - use ansible-core internals to avoid breakage with Data Tagging (https://github.com/ansible-collections/community.general/pull/9833). +- yaml callback plugin - when using ansible-core 2.19.0b2 or newer, uses a new utility provided by ansible-core. This allows us to remove all hacks and vendored code that was part of the plugin for ansible-core versions with Data Tagging so far (https://github.com/ansible-collections/community.general/pull/10242). +- zfs - fix handling of multi-line values of user-defined ZFS properties (https://github.com/ansible-collections/community.general/pull/6264). +- zfs_facts - parameter ``type`` now accepts multple values as documented (https://github.com/ansible-collections/community.general/issues/5909, https://github.com/ansible-collections/community.general/pull/9697). +- zypper_repository - make compatible with Python 3.12+ (https://github.com/ansible-collections/community.general/issues/10222, https://github.com/ansible-collections/community.general/pull/10223). +- zypper_repository - use ``metalink`` attribute to identify repositories without ```` element (https://github.com/ansible-collections/community.general/issues/10224, https://github.com/ansible-collections/community.general/pull/10225). + +Known Issues +------------ + +- reveal_ansible_type filter plugin and ansible_type test plugin - note that ansible-core's Data Tagging feature implements new aliases, such as ``_AnsibleTaggedStr`` for ``str``, ``_AnsibleTaggedInt`` for ``int``, and ``_AnsibleTaggedFloat`` for ``float`` (https://github.com/ansible-collections/community.general/pull/9833). + +New Plugins +----------- + +Callback +~~~~~~~~ + +- community.general.print_task - Prints playbook task snippet to job output. + +Connection +~~~~~~~~~~ + +- community.general.wsl - Run tasks in WSL distribution using wsl.exe CLI via SSH. + +Filter +~~~~~~ + +- community.general.accumulate - Produce a list of accumulated sums of the input list contents. +- community.general.json_diff - Create a JSON patch by comparing two JSON files. +- community.general.json_patch - Apply a JSON-Patch (RFC 6902) operation to an object. +- community.general.json_patch_recipe - Apply JSON-Patch (RFC 6902) operations to an object. +- community.general.to_prettytable - Format a list of dictionaries as an ASCII table. + +Inventory +~~~~~~~~~ + +- community.general.iocage - iocage inventory source. + +Lookup +~~~~~~ + +- community.general.onepassword_ssh_key - Fetch SSH keys stored in 1Password. + +New Modules +----------- + +- community.general.android_sdk - Manages Android SDK packages. +- community.general.decompress - Decompresses compressed files. +- community.general.ldap_inc - Use the Modify-Increment LDAP V3 feature to increment an attribute value. +- community.general.lvm_pv - Manage LVM Physical Volumes. +- community.general.pacemaker_resource - Manage pacemaker resources. +- community.general.systemd_creds_decrypt - C(systemd)'s C(systemd-creds decrypt) plugin. +- community.general.systemd_creds_encrypt - C(systemd)'s C(systemd-creds encrypt) plugin. +- community.general.systemd_info - Gather C(systemd) unit info. +- community.general.xdg_mime - Set default handler for MIME types, for applications using XDG tools. +- community.general.zpool - Manage ZFS zpools. diff --git a/README.md b/README.md index dbfc8c0f07..3c2cb8bb53 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ SPDX-License-Identifier: GPL-3.0-or-later # Community General Collection [![Documentation](https://img.shields.io/badge/docs-brightgreen.svg)](https://docs.ansible.com/ansible/devel/collections/community/general/) -[![Build Status](https://dev.azure.com/ansible/community.general/_apis/build/status/CI?branchName=main)](https://dev.azure.com/ansible/community.general/_build?definitionId=31) -[![EOL CI](https://github.com/ansible-collections/community.general/actions/workflows/ansible-test.yml/badge.svg?branch=main)](https://github.com/ansible-collections/community.general/actions) -[![Nox CI](https://github.com/ansible-collections/community.general/actions/workflows/nox.yml/badge.svg?branch=main)](https://github.com/ansible-collections/community.general/actions) +[![Build Status](https://dev.azure.com/ansible/community.general/_apis/build/status/CI?branchName=stable-11)](https://dev.azure.com/ansible/community.general/_build?definitionId=31) +[![EOL CI](https://github.com/ansible-collections/community.general/actions/workflows/ansible-test.yml/badge.svg?branch=stable-11)](https://github.com/ansible-collections/community.general/actions) +[![Nox CI](https://github.com/ansible-collections/community.general/actions/workflows/nox.yml/badge.svg?branch=stable-11)](https://github.com/ansible-collections/community.general/actions) [![Codecov](https://img.shields.io/codecov/c/github/ansible-collections/community.general)](https://codecov.io/gh/ansible-collections/community.general) [![REUSE status](https://api.reuse.software/badge/github.com/ansible-collections/community.general)](https://api.reuse.software/info/github.com/ansible-collections/community.general) @@ -118,7 +118,7 @@ See the [Releasing guidelines](https://github.com/ansible/community-docs/blob/ma ## Release notes -See the [changelog](https://github.com/ansible-collections/community.general/blob/main/CHANGELOG.md). +See the [changelog](https://github.com/ansible-collections/community.general/blob/stable-11/CHANGELOG.md). ## Roadmap @@ -137,8 +137,8 @@ See [this issue](https://github.com/ansible-collections/community.general/issues This collection is primarily licensed and distributed as a whole under the GNU General Public License v3.0 or later. -See [LICENSES/GPL-3.0-or-later.txt](https://github.com/ansible-collections/community.general/blob/main/COPYING) for the full text. +See [LICENSES/GPL-3.0-or-later.txt](https://github.com/ansible-collections/community.general/blob/stable-11/COPYING) for the full text. -Parts of the collection are licensed under the [BSD 2-Clause license](https://github.com/ansible-collections/community.general/blob/main/LICENSES/BSD-2-Clause.txt), the [MIT license](https://github.com/ansible-collections/community.general/blob/main/LICENSES/MIT.txt), and the [PSF 2.0 license](https://github.com/ansible-collections/community.general/blob/main/LICENSES/PSF-2.0.txt). +Parts of the collection are licensed under the [BSD 2-Clause license](https://github.com/ansible-collections/community.general/blob/stable-11/LICENSES/BSD-2-Clause.txt), the [MIT license](https://github.com/ansible-collections/community.general/blob/stable-11/LICENSES/MIT.txt), and the [PSF 2.0 license](https://github.com/ansible-collections/community.general/blob/stable-11/LICENSES/PSF-2.0.txt). All files have a machine readable `SDPX-License-Identifier:` comment denoting its respective license(s) or an equivalent entry in an accompanying `.license` file. Only changelog fragments (which will not be part of a release) are covered by a blanket statement in `REUSE.toml`. This conforms to the [REUSE specification](https://reuse.software/spec/). diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index f8129d5d73..ab87c61fe8 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -1,3 +1,1232 @@ --- -ancestor: 11.0.0 -releases: {} +ancestor: 10.0.0 +releases: + 11.0.0: + changes: + bugfixes: + - apache2_mod_proxy - make compatible with Python 3 (https://github.com/ansible-collections/community.general/pull/9762). + - apache2_mod_proxy - passing the cluster's page as referer for the member's + pages. This makes the module actually work again for halfway modern Apache + versions. According to some comments founds on the net the referer was required + since at least 2019 for some versions of Apache 2 (https://github.com/ansible-collections/community.general/pull/9762). + - cloudflare_dns - fix crash when deleting a DNS record or when updating a + record with ``solo=true`` (https://github.com/ansible-collections/community.general/issues/9652, + https://github.com/ansible-collections/community.general/pull/9649). + - cloudlare_dns - handle exhausted response stream in case of HTTP errors + to show nice error message to the user (https://github.com/ansible-collections/community.general/issues/9782, + https://github.com/ansible-collections/community.general/pull/9818). + - cobbler_system - fix bug with Cobbler >= 3.4.0 caused by giving more than + 2 positional arguments to ``CobblerXMLRPCInterface.get_system_handle()`` + (https://github.com/ansible-collections/community.general/issues/8506, https://github.com/ansible-collections/community.general/pull/10145). + - cobbler_system - update minimum version number to avoid wrong comparisons + that happen in some cases using LooseVersion class which results in TypeError + (https://github.com/ansible-collections/community.general/issues/8506, https://github.com/ansible-collections/community.general/pull/10145, + https://github.com/ansible-collections/community.general/pull/10178). + - dependent look plugin - make compatible with ansible-core's Data Tagging + feature (https://github.com/ansible-collections/community.general/pull/9833). + - dig lookup plugin - correctly handle ``NoNameserver`` exception (https://github.com/ansible-collections/community.general/pull/9363, + https://github.com/ansible-collections/community.general/issues/9362). + - diy callback plugin - make compatible with ansible-core's Data Tagging feature + (https://github.com/ansible-collections/community.general/pull/9833). + - dnf_config_manager - fix hanging when prompting to import GPG keys (https://github.com/ansible-collections/community.general/pull/9124, + https://github.com/ansible-collections/community.general/issues/8830). + - dnf_config_manager - forces locale to ``C`` before module starts. If the + locale was set to non-English, the output of the ``dnf config-manager`` + could not be parsed (https://github.com/ansible-collections/community.general/pull/9157, + https://github.com/ansible-collections/community.general/issues/9046). + - dnf_versionlock - add support for dnf5 (https://github.com/ansible-collections/community.general/issues/9556). + - 'elasticsearch_plugin - fix ``ERROR: D is not a recognized option`` issue + when configuring proxy settings (https://github.com/ansible-collections/community.general/pull/9774, + https://github.com/ansible-collections/community.general/issues/9773).' + - flatpak - force the locale language to ``C`` when running the flatpak command + (https://github.com/ansible-collections/community.general/pull/9187, https://github.com/ansible-collections/community.general/issues/8883). + - gio_mime - fix command line when determining version of ``gio`` (https://github.com/ansible-collections/community.general/pull/9171, + https://github.com/ansible-collections/community.general/issues/9158). + - "github_deploy_key - check that key really exists on 422\_to avoid masking\ + \ other errors (https://github.com/ansible-collections/community.general/issues/6718,\ + \ https://github.com/ansible-collections/community.general/pull/10011)." + - github_key - in check mode, a faulty call to ```datetime.strftime(...)``` + was being made which generated an exception (https://github.com/ansible-collections/community.general/issues/9185). + - gitlab_group_access_token, gitlab_project_access_token - fix handling of + group and project access tokens for changes in GitLab 17.10 (https://github.com/ansible-collections/community.general/pull/10196). + - hashids and unicode_normalize filter plugins - avoid deprecated ``AnsibleFilterTypeError`` + on ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/9992). + - homebrew - emit a useful error message if ``brew info`` reports a package + tap is ``null`` (https://github.com/ansible-collections/community.general/pull/10013, + https://github.com/ansible-collections/community.general/issues/10012). + - homebrew - fix crash when package names include tap (https://github.com/ansible-collections/community.general/issues/9777, + https://github.com/ansible-collections/community.general/pull/9803). + - homebrew - fix incorrect handling of aliased homebrew modules when the alias + is requested (https://github.com/ansible-collections/community.general/pull/9255, + https://github.com/ansible-collections/community.general/issues/9240). + - homebrew - fix incorrect handling of homebrew modules when a tap is requested + (https://github.com/ansible-collections/community.general/pull/9546, https://github.com/ansible-collections/community.general/issues/9533). + - homebrew - make package name parsing more resilient (https://github.com/ansible-collections/community.general/pull/9665, + https://github.com/ansible-collections/community.general/issues/9641). + - homebrew_cask - allow ``+`` symbol in Homebrew cask name validation regex + (https://github.com/ansible-collections/community.general/pull/9128). + - homebrew_cask - handle unusual brew version strings (https://github.com/ansible-collections/community.general/issues/8432, + https://github.com/ansible-collections/community.general/pull/9881). + - htpasswd - report changes when file permissions are adjusted (https://github.com/ansible-collections/community.general/issues/9485, + https://github.com/ansible-collections/community.general/pull/9490). + - iocage inventory plugin - the plugin parses the IP4 tab of the jails list + and put the elements into the new variable ``iocage_ip4_dict``. In multiple + interface format the variable ``iocage_ip4`` keeps the comma-separated list + of IP4 (https://github.com/ansible-collections/community.general/issues/9538). + - ipa_host - module revoked existing host certificates even if ``user_certificate`` + was not given (https://github.com/ansible-collections/community.general/pull/9694). + - java_cert - the module no longer fails if the optional parameters ``pkcs12_alias`` + and ``cert_alias`` are not provided (https://github.com/ansible-collections/community.general/pull/9970). + - kdeconfig - allow option values beginning with a dash (https://github.com/ansible-collections/community.general/issues/10127, + https://github.com/ansible-collections/community.general/pull/10128). + - keycloak - update more than 10 sub-groups (https://github.com/ansible-collections/community.general/issues/9690, + https://github.com/ansible-collections/community.general/pull/9692). + - keycloak module utils - replaces missing return in get_role_composites method + which caused it to return None instead of composite roles (https://github.com/ansible-collections/community.general/issues/9678, + https://github.com/ansible-collections/community.general/pull/9691). + - keycloak_authentication - fix authentification config duplication for Keycloak + < 26.2.0 (https://github.com/ansible-collections/community.general/pull/9987). + - keycloak_client - fix and improve existing tests. The module showed a diff + without actual changes, solved by improving the ``normalise_cr()`` function + (https://github.com/ansible-collections/community.general/pull/9644). + - keycloak_client - fix diff by removing code that turns the attributes dict + which contains additional settings into a list (https://github.com/ansible-collections/community.general/pull/9077). + - keycloak_client - fix the idempotency regression by normalizing the Keycloak + response for ``after_client`` (https://github.com/ansible-collections/community.general/issues/9905, + https://github.com/ansible-collections/community.general/pull/9976). + - keycloak_client - in check mode, detect whether the lists in before client + (for example redirect URI list) contain items that the lists in the desired + client do not contain (https://github.com/ansible-collections/community.general/pull/9739). + - keycloak_clientscope - fix diff and ``end_state`` by removing the code that + turns the attributes dict, which contains additional config items, into + a list (https://github.com/ansible-collections/community.general/pull/9082). + - keycloak_clientscope_type - sort the default and optional clientscope lists + to improve the diff (https://github.com/ansible-collections/community.general/pull/9202). + - keycloak_user_rolemapping - fix ``--diff`` mode (https://github.com/ansible-collections/community.general/issues/10067, + https://github.com/ansible-collections/community.general/pull/10075). + - lldp - fix crash caused by certain lldpctl output where an attribute is + defined as branch and leaf (https://github.com/ansible-collections/community.general/pull/9657). + - nmcli - enable changing only the order of DNS servers or search suffixes + (https://github.com/ansible-collections/community.general/issues/8724, https://github.com/ansible-collections/community.general/pull/9880). + - onepassword_doc lookup plugin - ensure that 1Password Connect support also + works for this plugin (https://github.com/ansible-collections/community.general/pull/9625). + - passwordstore lookup plugin - fix subkey creation even when ``create=false`` + (https://github.com/ansible-collections/community.general/issues/9105, https://github.com/ansible-collections/community.general/pull/9106). + - pickle cache plugin - avoid extra JSON serialization with ansible-core >= + 2.19 (https://github.com/ansible-collections/community.general/pull/10136). + - pipx - honor option ``global`` when ``state=latest`` (https://github.com/ansible-collections/community.general/pull/9623). + - qubes connection plugin - fix the printing of debug information (https://github.com/ansible-collections/community.general/pull/9334). + - redfish_utils module utils - Fix ``VerifyBiosAttributes`` command on multi + system resource nodes (https://github.com/ansible-collections/community.general/pull/9234). + - redfish_utils module utils - remove undocumented default applytime (https://github.com/ansible-collections/community.general/pull/9114). + - 'redhat_subscription - do not try to unsubscribe (i.e. remove subscriptions) + + when unregistering a system: newer versions of subscription-manager, as + + available in EL 10 and Fedora 41+, do not support entitlements anymore, + and + + thus unsubscribing will fail + + (https://github.com/ansible-collections/community.general/pull/9578). + + ' + - 'redhat_subscription - use the "enable_content" option (when available) + when + + registering using D-Bus, to ensure that subscription-manager enables the + + content on registration; this is particular important on EL 10+ and Fedora + + 41+ + + (https://github.com/ansible-collections/community.general/pull/9778). + + ' + - reveal_ansible_type filter plugin and ansible_type test plugin - make compatible + with ansible-core's Data Tagging feature (https://github.com/ansible-collections/community.general/pull/9833). + - rundeck_acl_policy - ensure that project ACLs are sent to the correct endpoint + (https://github.com/ansible-collections/community.general/pull/10097). + - slack - fail if Slack API response is not OK with error message (https://github.com/ansible-collections/community.general/pull/9198). + - sudoers - display stdout and stderr raised while failed validation (https://github.com/ansible-collections/community.general/issues/9674, + https://github.com/ansible-collections/community.general/pull/9871). + - sysrc - no longer always reporting ``changed=true`` when ``state=absent``. + This fixes the method ``exists()`` (https://github.com/ansible-collections/community.general/issues/10004, + https://github.com/ansible-collections/community.general/pull/10005). + - sysrc - split the output of ``sysrc -e -a`` on the first ``=`` only (https://github.com/ansible-collections/community.general/issues/10120, + https://github.com/ansible-collections/community.general/pull/10121). + - xml - ensure file descriptor is closed (https://github.com/ansible-collections/community.general/pull/9695). + - yaml callback plugin - adjust to latest changes in ansible-core devel (https://github.com/ansible-collections/community.general/pull/10212). + - yaml callback plugin - use ansible-core internals to avoid breakage with + Data Tagging (https://github.com/ansible-collections/community.general/pull/9833). + - yaml callback plugin - when using ansible-core 2.19.0b2 or newer, uses a + new utility provided by ansible-core. This allows us to remove all hacks + and vendored code that was part of the plugin for ansible-core versions + with Data Tagging so far (https://github.com/ansible-collections/community.general/pull/10242). + - zfs - fix handling of multi-line values of user-defined ZFS properties (https://github.com/ansible-collections/community.general/pull/6264). + - zfs_facts - parameter ``type`` now accepts multple values as documented + (https://github.com/ansible-collections/community.general/issues/5909, https://github.com/ansible-collections/community.general/pull/9697). + - zypper_repository - make compatible with Python 3.12+ (https://github.com/ansible-collections/community.general/issues/10222, + https://github.com/ansible-collections/community.general/pull/10223). + - zypper_repository - use ``metalink`` attribute to identify repositories + without ```` element (https://github.com/ansible-collections/community.general/issues/10224, + https://github.com/ansible-collections/community.general/pull/10225). + deprecated_features: + - 'MH module utils - attribute ``debug`` definition in subclasses of MH is + now deprecated, as that name will become a delegation to ``AnsibleModule`` + in community.general 12.0.0, and any such attribute will be overridden by + that delegation in that version (https://github.com/ansible-collections/community.general/pull/9577). + + ' + - atomic_container - module is deprecated and will be removed in community.general + 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487). + - atomic_host - module is deprecated and will be removed in community.general + 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487). + - atomic_image - module is deprecated and will be removed in community.general + 13.0.0 (https://github.com/ansible-collections/community.general/pull/9487). + - facter - module is deprecated and will be removed in community.general 12.0.0, + use ``community.general.facter_facts`` instead (https://github.com/ansible-collections/community.general/pull/9451). + - 'locale_gen - ``ubuntu_mode=True``, or ``mechanism=ubuntu_legacy`` is deprecated + and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9238). + + ' + - manifold lookup plugin - plugin is deprecated and will be removed in community.general + 11.0.0 (https://github.com/ansible-collections/community.general/pull/10028). + - opkg - deprecate value ``""`` for parameter ``force`` (https://github.com/ansible-collections/community.general/pull/9172). + - pipx module_utils - function ``make_process_list()`` is deprecated and will + be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/10031). + - profitbricks - module is deprecated and will be removed in community.general + 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). + - profitbricks_datacenter - module is deprecated and will be removed in community.general + 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). + - profitbricks_nic - module is deprecated and will be removed in community.general + 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). + - profitbricks_volume - module is deprecated and will be removed in community.general + 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). + - profitbricks_volume_attachments - module is deprecated and will be removed + in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/9733). + - pure module utils - the module utils is deprecated and will be removed from + community.general 12.0.0. The modules using this were removed in community.general + 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432). + - purestorage doc fragments - the doc fragment is deprecated and will be removed + from community.general 12.0.0. The modules using this were removed in community.general + 3.0.0 (https://github.com/ansible-collections/community.general/pull/9432). + - redfish_utils module utils - deprecate method ``RedfishUtils._init_session()`` + (https://github.com/ansible-collections/community.general/pull/9190). + - sensu_check - module is deprecated and will be removed in community.general + 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). + - sensu_client - module is deprecated and will be removed in community.general + 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). + - sensu_handler - module is deprecated and will be removed in community.general + 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). + - sensu_silence - module is deprecated and will be removed in community.general + 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). + - sensu_subscription - module is deprecated and will be removed in community.general + 13.0.0, use collection ``sensu.sensu_go`` instead (https://github.com/ansible-collections/community.general/pull/9483). + - slack - the default value ``auto`` of the ``prepend_hash`` option is deprecated + and will change to ``never`` in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/9443). + - stackpath_compute inventory plugin - plugin is deprecated and will be removed + in community.general 11.0.0 (https://github.com/ansible-collections/community.general/pull/10026). + - yaml callback plugin - deprecate plugin in favor of ``result_format=yaml`` + in plugin ``ansible.bulitin.default`` (https://github.com/ansible-collections/community.general/pull/9456). + - yaml callback plugin - the YAML callback plugin was deprecated for removal + in community.general 13.0.0. Since it needs to use ansible-core internals + since ansible-core 2.19 that are changing a lot, we will remove this plugin + already from community.general 12.0.0 to ease the maintenance burden (https://github.com/ansible-collections/community.general/pull/10213). + known_issues: + - reveal_ansible_type filter plugin and ansible_type test plugin - note that + ansible-core's Data Tagging feature implements new aliases, such as ``_AnsibleTaggedStr`` + for ``str``, ``_AnsibleTaggedInt`` for ``int``, and ``_AnsibleTaggedFloat`` + for ``float`` (https://github.com/ansible-collections/community.general/pull/9833). + minor_changes: + - CmdRunner module utils - the convenience method ``cmd_runner_fmt.as_fixed()`` + now accepts multiple arguments as a list (https://github.com/ansible-collections/community.general/pull/9893). + - MH module utils - delegate ``debug`` to the underlying ``AnsibleModule`` + instance or issues a warning if an attribute already exists with that name + (https://github.com/ansible-collections/community.general/pull/9577). + - alternatives - add ``family`` parameter that allows to utilize the ``--family`` + option available in RedHat version of update-alternatives (https://github.com/ansible-collections/community.general/issues/5060, + https://github.com/ansible-collections/community.general/pull/9096). + - apache2_mod_proxy - better handling regexp extraction (https://github.com/ansible-collections/community.general/pull/9609). + - apache2_mod_proxy - change type of ``state`` to a list of strings. No change + for the users (https://github.com/ansible-collections/community.general/pull/9600). + - apache2_mod_proxy - code simplification, no change in functionality (https://github.com/ansible-collections/community.general/pull/9457). + - apache2_mod_proxy - improve readability when using results from ``fecth_url()`` + (https://github.com/ansible-collections/community.general/pull/9608). + - apache2_mod_proxy - refactor repeated code into method (https://github.com/ansible-collections/community.general/pull/9599). + - apache2_mod_proxy - remove unused parameter and code from ``Balancer`` constructor + (https://github.com/ansible-collections/community.general/pull/9614). + - apache2_mod_proxy - simplified and improved string manipulation (https://github.com/ansible-collections/community.general/pull/9614). + - apache2_mod_proxy - use ``deps`` to handle dependencies (https://github.com/ansible-collections/community.general/pull/9612). + - apache2_module - added workaround for new PHP module name, from ``php7_module`` + to ``php_module`` (https://github.com/ansible-collections/community.general/pull/9951). + - bitwarden lookup plugin - add new option ``collection_name`` to filter results + by collection name, and new option ``result_count`` to validate number of + results (https://github.com/ansible-collections/community.general/pull/9728). + - bitwarden lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - cargo - add ``features`` parameter to allow activating specific features + when installing Rust packages (https://github.com/ansible-collections/community.general/pull/10198). + - cartesian lookup plugin - removed compatibility code for ansible-core < + 2.14 (https://github.com/ansible-collections/community.general/pull/10160). + - cgroup_memory_recap callback plugin - adjust standard preamble for Python + 3 (https://github.com/ansible-collections/community.general/pull/9583). + - cgroup_memory_recap callback plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). + - chef_databag lookup plugin - use f-strings instead of interpolations or + ``format`` (https://github.com/ansible-collections/community.general/pull/9324). + - chroot connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - chroot connection plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - chroot connection plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9322). + - cloud_init_data_facts - open file using ``open()`` as a context manager + (https://github.com/ansible-collections/community.general/pull/9579). + - cloudflare_dns - add support for ``comment`` and ``tags`` (https://github.com/ansible-collections/community.general/pull/9132). + - cobbler inventory plugin - add ``connection_timeout`` option to specify + the connection timeout to the cobbler server (https://github.com/ansible-collections/community.general/pull/11063). + - cobbler inventory plugin - add ``facts_level`` option to allow requesting + fully rendered variables for Cobbler systems (https://github.com/ansible-collections/community.general/issues/9419, + https://github.com/ansible-collections/community.general/pull/9975). + - cobbler inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - cobbler inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - cobbler inventory plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9323). + - collection_version lookup plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). + - consul_kv lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - consul_token - fix idempotency when ``policies`` or ``roles`` are supplied + by name (https://github.com/ansible-collections/community.general/issues/9841, + https://github.com/ansible-collections/community.general/pull/9845). + - context_demo callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - context_demo callback plugin - use f-strings instead of interpolations or + ``format`` (https://github.com/ansible-collections/community.general/pull/9321). + - counter filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - counter_enabled callback plugin - adjust standard preamble for Python 3 + (https://github.com/ansible-collections/community.general/pull/9583). + - counter_enabled callback plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). + - cpanm - enable usage of option ``--with-recommends`` (https://github.com/ansible-collections/community.general/issues/9554, + https://github.com/ansible-collections/community.general/pull/9555). + - cpanm - enable usage of option ``--with-suggests`` (https://github.com/ansible-collections/community.general/pull/9555). + - crc32 filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - credstash lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - cronvar - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). + - crypttab - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). + - cyberarkpassword lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - cyberarkpassword lookup plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). + - default_without_diff callback plugin - adjust standard preamble for Python + 3 (https://github.com/ansible-collections/community.general/pull/9583). + - dense callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - dense callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - dependent lookup plugin - removed compatibility code for ansible-core < + 2.14 (https://github.com/ansible-collections/community.general/pull/10160). + - dependent lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - deps module utils - add ``deps.clear()`` to clear out previously declared + dependencies (https://github.com/ansible-collections/community.general/pull/9179). + - dict filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - dict_kv filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - dig lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - dig lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - diy callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - diy callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - dnstxt lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - dnstxt lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - doas become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - doas become plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9319). + - dsv lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - dzdo become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - dzdo become plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9319). + - elastic callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - elastic callback plugin - instead of trying to extract the ansible-core + version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). + - elastic callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - etcd lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - etcd3 lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - etcd3 lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - filetree lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - flattened lookup plugin - removed compatibility code for ansible-core < + 2.14 (https://github.com/ansible-collections/community.general/pull/10160). + - from_csv filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - from_csv filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - from_ini filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - from_ini filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - funcd connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - funcd connection plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9322). + - git_config - remove redundant ``required=False`` from ``argument_spec`` + (https://github.com/ansible-collections/community.general/pull/10177). + - github_app_access_token lookup plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). + - github_key - add ``api_url`` parameter to support GitHub Enterprise Server + installations (https://github.com/ansible-collections/community.general/pull/10191). + - gitlab_instance_variable - add support for ``raw`` variables suboption (https://github.com/ansible-collections/community.general/pull/9425). + - gitlab_project - add option ``build_timeout`` (https://github.com/ansible-collections/community.general/pull/9960). + - gitlab_project_members - extend choices parameter ``access_level`` by missing + upstream valid value ``owner`` (https://github.com/ansible-collections/community.general/pull/9953). + - gitlab_runners inventory plugin - adjust standard preamble for Python 3 + (https://github.com/ansible-collections/community.general/pull/9584). + - gitlab_runners inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - gitlab_runners inventory plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). + - groupby_as_dict filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - hashids filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - hiera lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - homebrew - greatly speed up module when multiple packages are passed in + the ``name`` option (https://github.com/ansible-collections/community.general/pull/9181). + - homebrew - remove duplicated package name validation (https://github.com/ansible-collections/community.general/pull/9076). + - 'hpilo_boot - add option to get an idempotent behavior while powering on + server, resulting in success instead of failure when using ``state: boot_once`` + option (https://github.com/ansible-collections/community.general/pull/9646).' + - icinga2 inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - icinga2 inventory plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9323). + - idrac_redfish_command, idrac_redfish_config, idrac_redfish_info - add ``validate_certs``, + ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, + https://github.com/ansible-collections/community.general/pull/9964). + - ilo_redfish_command, ilo_redfish_config, ilo_redfish_info - add ``validate_certs``, + ``ca_path``, and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, + https://github.com/ansible-collections/community.general/pull/9964). + - incus connection plugin - adds ``remote_user`` and ``incus_become_method`` + parameters for allowing a non-root user to connect to an Incus instance + (https://github.com/ansible-collections/community.general/pull/9743). + - incus connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - incus connection plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9322). + - ini_file - modify an inactive option also when there are spaces in front + of the comment symbol (https://github.com/ansible-collections/community.general/pull/10102, + https://github.com/ansible-collections/community.general/issues/8539). + - iocage connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - iocage connection plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9322). + - iocage inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - iocage inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - iocage inventory plugin - the new parameter ``hooks_results`` of the plugin + is a list of files inside a jail that provide configuration parameters for + the inventory. The inventory plugin reads the files from the jails and put + the contents into the items of created variable ``iocage_hooks`` (https://github.com/ansible-collections/community.general/issues/9650, + https://github.com/ansible-collections/community.general/pull/9651). + - iocage inventory plugin - the new parameter ``inventory_hostname_tag`` of + the plugin provides the name of the tag in the C(iocage properties notes) + that contains the jails alias. The new parameter ``inventory_hostname_required``, + if enabled, makes the tag mandatory (https://github.com/ansible-collections/community.general/issues/10206, + https://github.com/ansible-collections/community.general/pull/10207). + - iocage inventory plugin - the new parameter ``sudo`` of the plugin lets + the command ``iocage list -l`` to run as root on the iocage host. This is + needed to get the IPv4 of a running DHCP jail (https://github.com/ansible-collections/community.general/issues/9572, + https://github.com/ansible-collections/community.general/pull/9573). + - iptables_state action plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - iptables_state action plugin - use f-strings instead of interpolations or + ``format`` (https://github.com/ansible-collections/community.general/pull/9318). + - iso_extract - adds ``password`` parameter that is passed to 7z (https://github.com/ansible-collections/community.general/pull/9159). + - jabber callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - jabber callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - jail connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - jail connection plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9322). + - jc filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - jira - adds ``client_cert`` and ``client_key`` parameters for supporting + client certificate authentification when connecting to Jira (https://github.com/ansible-collections/community.general/pull/9753). + - jira - transition operation now has ``status_id`` to directly reference + wanted transition (https://github.com/ansible-collections/community.general/pull/9602). + - json_query filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - keep_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - keycloak - add an action group for Keycloak modules to allow ``module_defaults`` + to be set for Keycloak tasks (https://github.com/ansible-collections/community.general/pull/9284). + - keycloak module_utils - user groups can now be referenced by their name, + like ``staff``, or their path, like ``/staff/engineering``. The path syntax + allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898). + - keycloak_* modules - ``refresh_token`` parameter added. When multiple authentication + parameters are provided (``token``, ``refresh_token``, and ``auth_username``/``auth_password``), + modules will now automatically retry requests upon authentication errors + (401), using in order the token, refresh token, and username/password (https://github.com/ansible-collections/community.general/pull/9494). + - keycloak_realm - remove ID requirement when creating a realm to allow Keycloak + generating its own realm ID (https://github.com/ansible-collections/community.general/pull/9768). + - keycloak_user module - user groups can now be referenced by their name, + like ``staff``, or their path, like ``/staff/engineering``. The path syntax + allows users to reference subgroups, which is not possible otherwise (https://github.com/ansible-collections/community.general/pull/9898). + - keyring lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - known_hosts - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). + - ksu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - ksu become plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9319). + - lastpass lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - launchd - add ``plist`` option for services such as sshd, where the plist + filename doesn't match the service name (https://github.com/ansible-collections/community.general/pull/9102). + - linode inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - linode inventory plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9323). + - lists filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - lists_mergeby filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - lldp - adds ``multivalues`` parameter to control behavior when lldpctl outputs + an attribute multiple times (https://github.com/ansible-collections/community.general/pull/9657). + - lmdb_kv lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - lmdb_kv lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - locale_gen - invert the logic to determine ``ubuntu_mode``, making it look + first for ``/etc/locale.gen`` (set ``ubuntu_mode`` to ``False``) and only + then looking for ``/var/lib/locales/supported.d/`` (set ``ubuntu_mode`` + to ``True``) (https://github.com/ansible-collections/community.general/pull/9238, + https://github.com/ansible-collections/community.general/issues/9131, https://github.com/ansible-collections/community.general/issues/8487). + - 'locale_gen - new return value ``mechanism`` to better express the semantics + of the ``ubuntu_mode``, with the possible values being either ``glibc`` + (``ubuntu_mode=False``) or ``ubuntu_legacy`` (``ubuntu_mode=True``) (https://github.com/ansible-collections/community.general/pull/9238). + + ' + - log_plays callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - log_plays callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - loganalytics callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - loganalytics callback plugin - instead of trying to extract the ansible-core + version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). + - loganalytics callback plugin - use f-strings instead of interpolations or + ``format`` (https://github.com/ansible-collections/community.general/pull/9321). + - logdna callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - logdna callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - logentries callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - logentries callback plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - logentries callback plugin - use f-strings instead of interpolations or + ``format`` (https://github.com/ansible-collections/community.general/pull/9321). + - logstash callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - lvg - add ``remove_extra_pvs`` parameter to control if ansible should remove + physical volumes which are not in the ``pvs`` parameter (https://github.com/ansible-collections/community.general/pull/9698). + - lxc connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - lxc connection plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9322). + - lxd connection plugin - adds ``remote_user`` and ``lxd_become_method`` parameters + for allowing a non-root user to connect to an LXD instance (https://github.com/ansible-collections/community.general/pull/9659). + - lxd connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - lxd connection plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9322). + - lxd inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - lxd inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - lxd inventory plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9323). + - machinectl become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - machinectl become plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9319). + - mail callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - mail callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - manageiq_alert_profiles - improve handling of parameter requirements (https://github.com/ansible-collections/community.general/pull/9449). + - manifold lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - manifold lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - maven_artifact - removed compatibility code for ansible-core < 2.12 (https://github.com/ansible-collections/community.general/pull/10192). + - memcached cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - memcached cache plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9320). + - merge_variables lookup plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). + - nmap inventory plugin - adds ``dns_servers`` option for specifying DNS servers + for name resolution. Accepts hostnames or IP addresses in the same format + as the ``exclude`` option (https://github.com/ansible-collections/community.general/pull/9849). + - nmap inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - nmap inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - nmap inventory plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9323). + - nmcli - add ``sriov`` parameter that enables support for SR-IOV settings + (https://github.com/ansible-collections/community.general/pull/9168). + - nmcli - add a option ``fail_over_mac`` (https://github.com/ansible-collections/community.general/issues/9570, + https://github.com/ansible-collections/community.general/pull/9571). + - nmcli - add support for Infiniband MAC setting when ``type`` is ``infiniband`` + (https://github.com/ansible-collections/community.general/pull/9962). + - nmcli - adds VRF support with new ``type`` value ``vrf`` and new ``slave_type`` + value ``vrf`` as well as new ``table`` parameter (https://github.com/ansible-collections/community.general/pull/9658, + https://github.com/ansible-collections/community.general/issues/8014). + - nmcli - adds ``autoconnect_priority`` and ``autoconnect_retries`` options + to support autoconnect logic (https://github.com/ansible-collections/community.general/pull/10134). + - nrdp callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - nrdp callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - null callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - one_template - adds ``filter`` option for retrieving templates which are + not owned by the user (https://github.com/ansible-collections/community.general/pull/9547, + https://github.com/ansible-collections/community.general/issues/9278). + - 'one_vm - update allowed values for ``updateconf`` to include new parameters + as per the latest OpenNebula API documentation. + + Added parameters: + + + * ``OS``: ``FIRMWARE``; + + * ``CPU_MODEL``: ``MODEL``, ``FEATURES``; + + * ``FEATURES``: ``VIRTIO_BLK_QUEUES``, ``VIRTIO_SCSI_QUEUES``, ``IOTHREADS``; + + * ``GRAPHICS``: ``PORT``, ``COMMAND``; + + * ``VIDEO``: ``ATS``, ``IOMMU``, ``RESOLUTION``, ``TYPE``, ``VRAM``; + + * ``RAW``: ``VALIDATE``; + + * ``BACKUP_CONFIG``: ``FS_FREEZE``, ``KEEP_LAST``, ``BACKUP_VOLATILE``, + ``MODE``, ``INCREMENT_MODE``. + + + (https://github.com/ansible-collections/community.general/pull/9959).' + - onepassword lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - onepassword lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - onepassword_doc lookup plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9324). + - onepassword_ssh_key - refactor to move code to lookup class (https://github.com/ansible-collections/community.general/pull/9633). + - online inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - online inventory plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9323). + - opennebula inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - opennebula inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - opennebula inventory plugin - use f-strings instead of interpolations or + ``format`` (https://github.com/ansible-collections/community.general/pull/9323). + - opentelemetry callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - opentelemetry callback plugin - instead of trying to extract the ansible-core + version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). + - opentelemetry callback plugin - remove code handling Python versions prior + to 3.7 (https://github.com/ansible-collections/community.general/pull/9482). + - opentelemetry callback plugin - remove code handling Python versions prior + to 3.7 (https://github.com/ansible-collections/community.general/pull/9503). + - opentelemetry callback plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9321). + - pacemaker_cluster - remove unused code (https://github.com/ansible-collections/community.general/pull/9471). + - pacemaker_cluster - using safer mechanism to run external command (https://github.com/ansible-collections/community.general/pull/9471). + - pacemaker_resource - add maintenance mode support for handling resource + creation and deletion (https://github.com/ansible-collections/community.general/issues/10180, + https://github.com/ansible-collections/community.general/pull/10194). + - pacman_key - support verifying that keys are trusted and not expired (https://github.com/ansible-collections/community.general/issues/9949, + https://github.com/ansible-collections/community.general/pull/9950). + - parted - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). + - passwordstore lookup plugin - use f-strings instead of interpolations or + ``format`` (https://github.com/ansible-collections/community.general/pull/9324). + - pbrun become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - pbrun become plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9319). + - pfexec become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - pfexec become plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9319). + - pickle cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - pipx - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9180). + - 'pipx - parameter ``name`` now accepts Python package specifiers (https://github.com/ansible-collections/community.general/issues/7815, + https://github.com/ansible-collections/community.general/pull/10031). + + ' + - pipx module_utils - filtering application list by name now happens in the + modules (https://github.com/ansible-collections/community.general/pull/10031). + - pipx_info - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9180). + - pipx_info - filtering application list by name now happens in the module (https://github.com/ansible-collections/community.general/pull/10031). + - pmrun become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - pmrun become plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9319). + - pulp_repo - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). + - puppet - improve parameter formatting, no impact to user (https://github.com/ansible-collections/community.general/pull/10014). + - qubes connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - qubes connection plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9322). + - random_mac filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - random_pet lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - redfish module utils - add ``REDFISH_COMMON_ARGUMENT_SPEC``, a corresponding + ``redfish`` docs fragment, and support for its ``validate_certs``, ``ca_path``, + and ``ciphers`` options (https://github.com/ansible-collections/community.general/issues/3686, + https://github.com/ansible-collections/community.general/pull/9964). + - redfish module utils - removed compatibility code for ansible-core < 2.14 + (https://github.com/ansible-collections/community.general/pull/10160). + - redfish_command - add ``PowerFullPowerCycle`` to power command options (https://github.com/ansible-collections/community.general/pull/9729). + - redfish_command - add ``update_custom_oem_header``, ``update_custom_oem_params``, + and ``update_custom_oem_mime_type`` options (https://github.com/ansible-collections/community.general/pull/9123). + - redfish_command, redfish_config, redfish_info - add ``validate_certs`` and + ``ca_path`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, + https://github.com/ansible-collections/community.general/pull/9964). + - redfish_config - add command ``SetPowerRestorePolicy`` to set the desired + power state of the system when power is restored (https://github.com/ansible-collections/community.general/pull/9837). + - redfish_info - add command ``GetAccountServiceConfig`` to get full information + about AccountService configuration (https://github.com/ansible-collections/community.general/pull/9403). + - redfish_info - add command ``GetPowerRestorePolicy`` to get the desired + power state of the system when power is restored (https://github.com/ansible-collections/community.general/pull/9824). + - redfish_utils module utils - remove redundant code (https://github.com/ansible-collections/community.general/pull/9190). + - redhat_subscription - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). + - redis cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - redis cache plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - redis cache plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9320). + - redis lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - remove_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - replace_keys filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - revbitspss lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - reveal_ansible_type filter plugin - adjust standard preamble for Python + 3 (https://github.com/ansible-collections/community.general/pull/9585). + - rocketchat - fix duplicate JSON conversion for Rocket.Chat < 7.4.0 (https://github.com/ansible-collections/community.general/pull/9965). + - rocketchat - option ``is_pre740`` has been added to control the format of + the payload. For Rocket.Chat 7.4.0 or newer, it must be set to ``false`` + (https://github.com/ansible-collections/community.general/pull/9882). + - rpm_ostree_pkg - added the options ``apply_live`` (https://github.com/ansible-collections/community.general/pull/9167). + - rpm_ostree_pkg - added the return value ``needs_reboot`` (https://github.com/ansible-collections/community.general/pull/9167). + - run0 become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - saltstack connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - saltstack connection plugin - use f-strings instead of interpolations or + ``format`` (https://github.com/ansible-collections/community.general/pull/9322). + - say callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - say callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - scaleway inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - scaleway inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - scaleway inventory plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9323). + - scaleway_lb - minor simplification in the code (https://github.com/ansible-collections/community.general/pull/9189). + - selective callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - selective callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - sesu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - sesu become plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9319). + - shelvefile lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - shutdown action plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - shutdown action plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - shutdown action plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9318). + - slack callback plugin - add ``http_agent`` option to enable the user to + set a custom user agent for slack callback plugin (https://github.com/ansible-collections/community.general/issues/9813, + https://github.com/ansible-collections/community.general/pull/9836). + - slack callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - slack callback plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - slack callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - snap - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9598). + - snap_alias - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9598). + - solaris_zone - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). + - sorcery - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). + - splunk callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - splunk callback plugin - instead of trying to extract the ansible-core version + from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). + - splunk callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - ssh_config - add ``dynamicforward`` option (https://github.com/ansible-collections/community.general/pull/9192). + - ssh_config - add ``other_options`` option (https://github.com/ansible-collections/community.general/issues/8053, + https://github.com/ansible-collections/community.general/pull/9684). + - stackpath_compute inventory plugin - adjust standard preamble for Python + 3 (https://github.com/ansible-collections/community.general/pull/9584). + - stackpath_compute inventory plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). + - sudosu become plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - sudosu become plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9319). + - sumologic callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - sumologic callback plugin - instead of trying to extract the ansible-core + version from task data, use ansible-core's actual version (https://github.com/ansible-collections/community.general/pull/10193). + - syslog_json callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - systemd_info - add wildcard expression support in ``unitname`` option (https://github.com/ansible-collections/community.general/pull/9821). + - systemd_info - extend support to timer units (https://github.com/ansible-collections/community.general/pull/9891). + - terraform - adds the ``no_color`` parameter, which suppresses or allows + color codes in stdout from Terraform commands (https://github.com/ansible-collections/community.general/pull/10154). + - time filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - timestamp callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - timestamp callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - timezone - open file using ``open()`` as a context manager (https://github.com/ansible-collections/community.general/pull/9579). + - to_ini filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - to_ini filter plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - tss lookup plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - tss lookup plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9324). + - ufw - add support for ``vrrp`` protocol (https://github.com/ansible-collections/community.general/issues/9562, + https://github.com/ansible-collections/community.general/pull/9582). + - unicode_normalize filter plugin - adjust standard preamble for Python 3 + (https://github.com/ansible-collections/community.general/pull/9585). + - unixy callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - unixy callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - version_sort filter plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9585). + - virtualbox inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - virtualbox inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379). + - virtualbox inventory plugin - use f-strings instead of interpolations or + ``format`` (https://github.com/ansible-collections/community.general/pull/9323). + - vmadm - add new options ``flexible_disk_size`` and ``owner_uuid`` (https://github.com/ansible-collections/community.general/pull/9892). + - wdc_redfish_command, wdc_redfish_info - add ``validate_certs``, ``ca_path``, + and ``ciphers`` options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, + https://github.com/ansible-collections/community.general/pull/9964). + - xbps - add ``root`` and ``repository`` options to enable bootstrapping new + void installations (https://github.com/ansible-collections/community.general/pull/9174). + - xcc_redfish_command - add ``validate_certs``, ``ca_path``, and ``ciphers`` + options to configure TLS/SSL (https://github.com/ansible-collections/community.general/issues/3686, + https://github.com/ansible-collections/community.general/pull/9964). + - xen_orchestra inventory plugin - add ``use_vm_uuid`` and ``use_host_uuid`` + boolean options to allow switching over to using VM/Xen name labels instead + of UUIDs as item names (https://github.com/ansible-collections/community.general/pull/9787). + - xen_orchestra inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - xen_orchestra inventory plugin - use f-strings instead of interpolations + or ``format`` (https://github.com/ansible-collections/community.general/pull/9323). + - xfconf - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9226). + - xfconf_info - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9226). + - xml - support adding value of children when creating with subnodes (https://github.com/ansible-collections/community.general/pull/8437). + - yaml cache plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - yaml callback plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583). + - yaml callback plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9321). + - zone connection plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584). + - zone connection plugin - use f-strings instead of interpolations or ``format`` + (https://github.com/ansible-collections/community.general/pull/9322). + - zypper - add ``quiet`` option (https://github.com/ansible-collections/community.general/pull/9270). + - zypper - add ``simple_errors`` option (https://github.com/ansible-collections/community.general/pull/9270). + - zypper - adds ``skip_post_errors`` that allows to skip RPM post-install + errors (Zypper return code 107) (https://github.com/ansible-collections/community.general/issues/9972). + release_summary: This is release 11.0.0 of ``community.general``, released on + 2025-06-16. + removed_features: + - Dropped support for ansible-core 2.15. The collection now requires ansible-core + 2.16 or newer. This means that on the controller, Python 3.10+ is required. + On the target side, Python 2.7 and Python 3.6+ are supported (https://github.com/ansible-collections/community.general/pull/10160, + https://github.com/ansible-collections/community.general/pull/10192). + - The Proxmox content (modules and plugins) has been moved to the `new collection + community.proxmox `__. + Since community.general 11.0.0, these modules and plugins have been replaced + by deprecated redirections to community.proxmox. You need to explicitly + install community.proxmox, for example with ``ansible-galaxy collection + install community.proxmox``, or by installing a new enough version of the + Ansible community package. We suggest to update your roles and playbooks + to use the new FQCNs as soon as possible to avoid getting deprecation messages + (https://github.com/ansible-collections/community.general/pull/10110). + - apt_rpm - the ``present`` and ``installed`` states are no longer equivalent + to ``latest``, but to ``present_not_latest`` (https://github.com/ansible-collections/community.general/pull/10126). + - clc_* modules and doc fragment - the modules were removed since CenturyLink + Cloud services went EOL in September 2023 (https://github.com/ansible-collections/community.general/pull/10126). + - django_manage - the ``ack_venv_creation_deprecation`` option has been removed. + It had no effect anymore anyway (https://github.com/ansible-collections/community.general/pull/10126). + - git_config - it is no longer allowed to use ``state=present`` with no value + to read the config value. Use the ``community.general.git_config_info`` + module instead (https://github.com/ansible-collections/community.general/pull/10126). + - git_config - the ``list_all`` option has been removed. Use the ``community.general.git_config_info`` + module instead (https://github.com/ansible-collections/community.general/pull/10126). + - hipchat - the module was removed since the hipchat service has been discontinued + and the self-hosted variant has been End of Life since 2020 (https://github.com/ansible-collections/community.general/pull/10126). + - manifold lookup plugin - the plugin was removed since the company was acquired + in 2021 and service was ceased afterwards (https://github.com/ansible-collections/community.general/pull/10126). + - mh.mixins.deps module utils - this module utils has been removed. Use the + ``deps`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126). + - mh.mixins.vars module utils - this module utils has been removed. Use ``VarDict`` + from the ``vardict`` module utils instead (https://github.com/ansible-collections/community.general/pull/10126). + - mh.module_helper module utils - ``AnsibleModule`` and ``VarsMixin`` are + no longer provided (https://github.com/ansible-collections/community.general/pull/10126). + - mh.module_helper module utils - ``VarDict`` is now imported from the ``vardict`` + module utils and no longer from the removed ``mh.mixins.vars`` module utils + (https://github.com/ansible-collections/community.general/pull/10126). + - mh.module_helper module utils - the attributes ``use_old_vardict`` and ``mute_vardict_deprecation`` + from ``ModuleHelper`` have been removed. We suggest to remove them from + your modules if you no longer support community.general < 11.0.0 (https://github.com/ansible-collections/community.general/pull/10126). + - module_helper module utils - ``StateMixin``, ``DependencyCtxMgr``, ``VarMeta``, + ``VarDict``, and ``VarsMixin`` are no longer provided (https://github.com/ansible-collections/community.general/pull/10126). + - pipx - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137). + - pipx_info - module no longer supports ``pipx`` older than 1.7.0 (https://github.com/ansible-collections/community.general/pull/10137). + - profitbrick* modules - the modules were removed since the supporting library + is unsupported since 2021 (https://github.com/ansible-collections/community.general/pull/10126). + - redfish_utils module utils - the ``_init_session`` method has been removed + (https://github.com/ansible-collections/community.general/pull/10126). + - stackpath_compute inventory plugin - the plugin was removed since the company + and the service were sunset in June 2024 (https://github.com/ansible-collections/community.general/pull/10126). + security_fixes: + - keycloak_authentication - API calls did not properly set the ``priority`` + during update resulting in incorrectly sorted authentication flows. This + apparently only affects Keycloak 25 or newer (https://github.com/ansible-collections/community.general/pull/9263). + - keycloak_client - Sanitize ``saml.encryption.private.key`` so it does not + show in the logs (https://github.com/ansible-collections/community.general/pull/9621). + fragments: + - 10005-fix-method-exists-in-sysrc.yml + - 10011-github_deploy_key-check-key-present.yml + - 10012-improve-error-handling-homebrew-missing-tap.yml + - 10014-puppet-improve-param.yml + - 10026-stackpath-compute-deprecation.yml + - 10028-manifold-deprecation.yml + - 10031-pipx-python-version.yml + - 10063-cobbler-add-connection-timeout.yml + - 10075-keycloak_user_rolemapping-diff.yml + - 10097-fix-rundeck_acl_policy-project-endpoint.yml + - 10102-ini_file-fix-unmatched-whitespace-before-comment.yml + - 10121-sysrc-fix-split-first-separator.yml + - 10128-mark-end-of-options.yml + - 10134-add-autoconnect-options.yml + - 10136-cache-pickle-json.yml + - 10137-pipx-cg11.yml + - 10145-fix-typeerror-cobbler-xmlrpc.yml + - 10154-terraform_no_color_paramater.yml + - 10177-git-config-required.yml + - 10178-update-minimum-version-number-to-avoid-wrong-comparisons-cobbler-xmlrpc.yml + - 10191-github_key-add-api_url-parameter.yml + - 10193-callback-ansible_version.yml + - 10194-add-pcs-resource-maintenace-mode.yml + - 10196-fix-gitlab-access-tokens.yml + - 10198-cargo-features-parameter.yml + - 10207-iocage-inventory-alias.yml + - 10212-yaml.yml + - 10213-yaml-deprecation.yml + - 10222-zypper_repository-readfp.yml + - 10224-zypper_repository-metalink.yml + - 10242-yaml.yml + - 11.0.0.yml + - 5932-launchd-plist.yml + - 6264-zfs-multiline-property-value.yml + - 8437-xml-children-value.yml + - 9076-remove-duplicated-homebrew-package-name-validation.yml + - 9077-keycloak_client-fix-attributes-dict-turned-into-list.yml + - 9082-keycloak_clientscope-fix-attributes-dict-turned-into-list.yml + - 9096-alternatives-add-family-parameter.yml + - 9106-passwordstore-fix-subkey-creation-even-when-create-==-false.yml + - 9114-redfish-utils-update-remove-default-applytime.yml + - 9123-redfish-command-custom-oem-params.yml + - 9124-dnf_config_manager.yml + - 9128-homebrew_cask-name-regex-fix.yml + - 9132-cloudflare_dns-comment-and-tags.yml + - 9157-fix-dnf_config_manager-locale.yml + - 9159-iso-extract_add_password.yml + - 9167-rpm_ostree_pkg-apply_live.yml + - 9168-nmcli-add-sriov-parameter.yml + - 9171-gio-mime-fix-version.yml + - 9172-opkg-deprecate-force-none.yml + - 9174-xbps-support-rootdir-and-repository.yml + - 9179-deps-tests.yml + - 9180-pipx-version.yml + - 9181-improve-homebrew-module-performance.yml + - 9186-fix-broken-check-mode-in-github-key.yml + - 9187-flatpak-lang.yml + - 9189-scalway-lb-simplify-return.yml + - 9190-redfish-utils-unused-code.yml + - 9198-fail-if-slack-api-response-is-not-ok-with-error-message.yml + - 9202-keycloak_clientscope_type-sort-lists.yml + - 9226-xfconf-version.yml + - 9234-fix-verify-bios-attributes-multi-system.yml + - 9238-locale-gen-rewrite.yml + - 9255-fix-handling-of-aliased-homebrew-packages.yml + - 9263-kc_authentication-api-priority.yaml + - 9270-zypper-add-simple_errors.yaml + - 9284-add-keycloak-action-group.yml + - 9318-fstr-actionplugins.yml + - 9319-fstr-become-plugins.yml + - 9320-fstr-cache-plugins.yml + - 9321-fstr-callback-plugins.yml + - 9322-fstr-connection-plugins.yml + - 9323-fstr-inventory-plugins.yml + - 9324-fstr-lookup-plugins.yml + - 9334-qubes-conn.yml + - 9363-dig-nonameservers.yml + - 9379-refactor.yml + - 9387-pacemaker-cluster-cmd.yml + - 9403-redfish-add-get-accountservice.yml + - 9425-gitlab-instance-raw-variable.yml + - 9432-deprecate-pure.yml + - 9443-slack-prepend_hash.yml + - 9449-manageiq-alert-profiles-reqs.yml + - 9451-facter-deprecation.yml + - 9456-yaml-callback-deprecation.yml + - 9457-apache2-mod-proxy-revamp.yml + - 9482-opentelemetry-python-37.yml + - 9483-sensu-deprecation.yml + - 9487-atomic-deprecation.yml + - 9490-htpasswd-permissions.yml + - 9494-keycloak-modules-retry-request-on-authentication-error.yaml + - 9503-opentelemetry-remove-unused-code.yml + - 9539-iocage-inventory-dhcp.yml + - 9546-fix-handling-of-tap-homebrew-packages.yml + - 9547-one_template-filter.yml + - 9554-add-cpanm-option_with-recommends-and-suggests.yml + - 9570-feat-nmcli-add-fail-over-mac-parameter.yml + - 9573-iocage-inventory-sudo.yml + - 9577-mh-delegate-debug.yml + - 9578-redhat_subscription-no-remove-on-unregister.yml + - 9579-with-open.yml + - 9582-add-support-for-vrrp.yml + - 9583-py3-imports-actionbecomecachecallback.yml + - 9584-py3-imports-connectioninventory.yml + - 9585-py3-imports-filter.yml + - 9586-allow-transition-id-jira.yml + - 9598-snap-version.yml + - 9599-apache2-mod-proxy-revamp1.yml + - 9600-apache2-mod-proxy-revamp2.yml + - 9608-apache2-mod-proxy-revamp3.yml + - 9609-apache2-mod-proxy-revamp4.yml + - 9612-apache2-mod-proxy-revamp5.yml + - 9614-apache2-mod-proxy-revamp7.yml + - 9621-keycloak_client-sanitize-saml-encryption-key.yml + - 9623-pipx-global-latest.yml + - 9625-onepassword_doc.yml + - 9633-onepassword_ssh_key.yml + - 9644-kc_client-test-improvement-and-fix.yaml + - 9646-hpilo-fix-idempotency.yml + - 9649-cloudflare_dns-fix-crash-when-deleting-record.yml + - 9651-iocage-inventory-hooks.yml + - 9657-lldp-handling-attributes-defined-multiple-times.yml + - 9658-add-vrf-commands-to-nmcli-module.yml + - 9659-lxd_connection-nonroot-user.yml + - 9665-more-resilient-handling-of-homebrew-packages-names.yml + - 9691-keycloak-module-utils-replace-missing-return-in-get_role_composites.yml + - 9692-update-more-than-10-keycloak-sub-groups.yml + - 9694-ipa-host-certificate-revoked.yml + - 9695-xml-close-file.yml + - 9697-zfs-facts-type.yml + - 9698-lvg-remove-extra-pvs-parameter.yml + - 9728-bitwarden-collection-name-filter.yml + - 9729-redfish-fullpowercycle-command.yml + - 9733-profitbrick-deprecation.yml + - 9739-keycloak_client-compare-before-desired-directly.yml + - 9743-incus_connection-nonroot-user.yml + - 9753-jira-add-client-certificate-auth.yml + - 9762-apache2_mod_proxy.yml + - 9768-keycloak_realm-remove-id-requirement.yaml + - 9774-fix-elasticsearch_plugin-proxy-settings.yml + - 9777-homebrew-fix-crash-when-packages-include-tap.yml + - 9778-redhat_subscription-ensure-to-enable-content.yml + - 9787-xoa_allow_using_names_in_inventory.yml + - 9818-cloudflare-dns-exhausted-response.yml + - 9821-systemd_info-add-wildcards.yml + - 9824-redfish-implement-obtaining-powerrestorepolicy.yml + - 9833-data-tagging.yml + - 9836-option-for-http-agent-for-user-to-callback-slack.yml + - 9837-redfish-implement-setting-powerrestorepolicy.yml + - 9845-consul_token_idempotency.yml + - 9849-nmap_dns_servers.yml + - 9880-nmcli-fix-reorder-same-dns-nameservers-search-suffixes.yml + - 9882-fix-payload-to-match-rocketchat-740-requirement.yml + - 9891-systemd_info-add_timer.yml + - 9892-vmadm-add-new-options.yml + - 9893-cmdrunner-as-fixed-args.yml + - 9898-keycloak_user-supports-subgroups.yaml + - 9950-pacman_key-verify-key-validity.yml + - 9951-mod-php-identifier.yml + - 9953-gitlab-project-members-support-owner-level.yml + - 9959-update-opennebula-onevm-updateconf-params.yml + - 9960-gitlab_project-add-build_timeout-option.yml + - 9962-nmcli-add-infiniband-mac-support.yml + - 9964-redfish-tls.yml + - 9965-fix-duplicate-jsonify-payload-for-rocketchat-pre740.yml + - 9970-pkcs12_alias_cert_alias_optional.yml + - 9972-zypper-skip-post-errors.yml + - 9975-inventory-cobbler-as-rendered.yml + - 9976-keycloak_client-fix-idempotency-regression.yml + - 9987-keycloak-auth-flow-fix-config.yaml + - 9992-filtertypeerror.yml + - ansible-core-support.yml + - deprecations.yml + - dnf_versionlock.yml + - homebrew_cask.yml + - proxmox-removal.yml + - ssh_config_add_dynamicforward_option.yml + - ssh_config_add_other_options.yml + - sudoers.yml + modules: + - description: Manages Android SDK packages. + name: android_sdk + namespace: '' + - description: Decompresses compressed files. + name: decompress + namespace: '' + - description: Use the Modify-Increment LDAP V3 feature to increment an attribute + value. + name: ldap_inc + namespace: '' + - description: Manage LVM Physical Volumes. + name: lvm_pv + namespace: '' + - description: Manage pacemaker resources. + name: pacemaker_resource + namespace: '' + - description: C(systemd)'s C(systemd-creds decrypt) plugin. + name: systemd_creds_decrypt + namespace: '' + - description: C(systemd)'s C(systemd-creds encrypt) plugin. + name: systemd_creds_encrypt + namespace: '' + - description: Gather C(systemd) unit info. + name: systemd_info + namespace: '' + - description: Set default handler for MIME types, for applications using XDG + tools. + name: xdg_mime + namespace: '' + - description: Manage ZFS zpools. + name: zpool + namespace: '' + plugins: + callback: + - description: Prints playbook task snippet to job output. + name: print_task + namespace: null + connection: + - description: Run tasks in WSL distribution using wsl.exe CLI via SSH. + name: wsl + namespace: null + filter: + - description: Produce a list of accumulated sums of the input list contents. + name: accumulate + namespace: null + - description: Create a JSON patch by comparing two JSON files. + name: json_diff + namespace: null + - description: Apply a JSON-Patch (RFC 6902) operation to an object. + name: json_patch + namespace: null + - description: Apply JSON-Patch (RFC 6902) operations to an object. + name: json_patch_recipe + namespace: null + - description: Format a list of dictionaries as an ASCII table. + name: to_prettytable + namespace: null + inventory: + - description: iocage inventory source. + name: iocage + namespace: null + lookup: + - description: Fetch SSH keys stored in 1Password. + name: onepassword_ssh_key + namespace: null + release_date: '2025-06-16' + 11.1.0: + changes: + bugfixes: + - dependent lookup plugin - avoid deprecated ansible-core 2.19 functionality + (https://github.com/ansible-collections/community.general/pull/10359). + - github_release - support multiple types of GitHub tokens; no longer failing + when ``ghs_`` token type is provided (https://github.com/ansible-collections/community.general/issues/10338, + https://github.com/ansible-collections/community.general/pull/10339). + - icinga2 inventory plugin - avoid using deprecated option when templating + options (https://github.com/ansible-collections/community.general/pull/10271). + - incus connection plugin - fix error handling to return more useful Ansible + errors to the user (https://github.com/ansible-collections/community.general/issues/10344, + https://github.com/ansible-collections/community.general/pull/10349). + - linode inventory plugin - avoid using deprecated option when templating + options (https://github.com/ansible-collections/community.general/pull/10271). + - logstash callback plugin - remove reference to Python 2 library (https://github.com/ansible-collections/community.general/pull/10345). + deprecated_features: + - catapult - module is deprecated and will be removed in community.general + 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, + https://github.com/ansible-collections/community.general/pull/10329). + - pacemaker_cluster - the parameter ``state`` will become a required parameter + in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/10227). + minor_changes: + - cloudflare_dns - adds support for PTR records (https://github.com/ansible-collections/community.general/pull/10267). + - cloudflare_dns - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - cloudflare_dns - simplify validations and refactor some code, no functional + changes (https://github.com/ansible-collections/community.general/pull/10269). + - crypttab - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - datadog_monitor - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - dense callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). + - gitlab_deploy_key - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - gitlab_group_access_token - remove redundant brackets in conditionals, no + functional changes (https://github.com/ansible-collections/community.general/pull/10328). + - gitlab_hook - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - gitlab_project_access_token - remove redundant brackets in conditionals, + no functional changes (https://github.com/ansible-collections/community.general/pull/10328). + - gitlab_runner - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - iocage inventory plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). + - ipa_group - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - jc filter plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). + - jenkins_build - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - jenkins_build_info - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - keycloak - add support for ``grant_type=client_credentials`` to all keycloak + modules, so that specifying ``auth_client_id`` and ``auth_client_secret`` + is sufficient for authentication (https://github.com/ansible-collections/community.general/pull/10231). + - keycloak module utils - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - logstash callback plugin - remove redundant brackets in conditionals, no + functional changes (https://github.com/ansible-collections/community.general/pull/10328). + - mail callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). + - nmcli - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - nmcli - simplify validations and refactor some code, no functional changes + (https://github.com/ansible-collections/community.general/pull/10323). + - oneandone_firewall_policy - remove redundant brackets in conditionals, no + functional changes (https://github.com/ansible-collections/community.general/pull/10328). + - oneandone_load_balancer - remove redundant brackets in conditionals, no + functional changes (https://github.com/ansible-collections/community.general/pull/10328). + - oneandone_monitoring_policy - remove redundant brackets in conditionals, + no functional changes (https://github.com/ansible-collections/community.general/pull/10328). + - onepassword_info - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - osx_defaults - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - ovh_ip_loadbalancing_backend - remove redundant brackets in conditionals, + no functional changes (https://github.com/ansible-collections/community.general/pull/10328). + - pacemaker_cluster - add ``state=maintenance`` for managing pacemaker maintenance + mode (https://github.com/ansible-collections/community.general/issues/10200, + https://github.com/ansible-collections/community.general/pull/10227). + - pacemaker_cluster - rename ``node`` to ``name`` and add ``node`` alias (https://github.com/ansible-collections/community.general/pull/10227). + - pacemaker_resource - enhance module by removing duplicative code (https://github.com/ansible-collections/community.general/pull/10227). + - packet_device - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - pagerduty - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - pingdom - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - python_runner module utils - remove redundant brackets in conditionals, + no functional changes (https://github.com/ansible-collections/community.general/pull/10328). + - rhevm - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - rocketchat - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - sensu_silence - remove redundant brackets in conditionals, no functional + changes (https://github.com/ansible-collections/community.general/pull/10328). + - sl_vm - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - urpmi - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - wsl connection plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). + - xattr - remove redundant brackets in conditionals, no functional changes + (https://github.com/ansible-collections/community.general/pull/10328). + - xen_orchestra inventory plugin - use f-strings instead of concatenation + (https://github.com/ansible-collections/community.general/pull/10285). + - xfconf - minor adjustments the the code (https://github.com/ansible-collections/community.general/pull/10311). + - xml - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). + release_summary: Regular bugfix and feature release. + fragments: + - 10227-pacemaker-cluster-and-resource-enhancement.yml + - 10231-keycloak-add-client-credentials-authentication.yml + - 10267-add-cloudflare-ptr-record-support.yml + - 10269-cloudflare-dns-refactor.yml + - 10271--disable_lookups.yml + - 10285-fstr-plugins.yml + - 10311-xfconf-refactor.yml + - 10323-nmcli-improvements.yml + - 10328-redundant-brackets.yml + - 10329-catapult-deprecation.yml + - 10339-github_app_access_token.yml + - 10349-incus_connection-error-handling.yml + - 10359-dependent.yml + - 11.1.0.yml + - logstash.yml + modules: + - description: Manage Jenkins credentials and domains via API. + name: jenkins_credential + namespace: '' + plugins: + callback: + - description: Only show tasks. + name: tasks_only + namespace: null + release_date: '2025-07-14' diff --git a/changelogs/config.yaml b/changelogs/config.yaml index 578b8c3765..32ffe27f2b 100644 --- a/changelogs/config.yaml +++ b/changelogs/config.yaml @@ -7,9 +7,9 @@ changelog_filename_template: ../CHANGELOG.rst changelog_filename_version_depth: 0 changes_file: changelog.yaml changes_format: combined -ignore_other_fragment_extensions: true keep_fragments: false mention_ancestor: true +flatmap: true new_plugins_after_name: removed_features notesdir: fragments output_formats: @@ -40,4 +40,3 @@ use_fqcn: true add_plugin_period: true changelog_nice_yaml: true changelog_sort: version -vcs: auto diff --git a/changelogs/fragments/10227-pacemaker-cluster-and-resource-enhancement.yml b/changelogs/fragments/10227-pacemaker-cluster-and-resource-enhancement.yml deleted file mode 100644 index d1cfee7816..0000000000 --- a/changelogs/fragments/10227-pacemaker-cluster-and-resource-enhancement.yml +++ /dev/null @@ -1,7 +0,0 @@ -deprecated_features: - - pacemaker_cluster - the parameter ``state`` will become a required parameter in community.general 12.0.0 (https://github.com/ansible-collections/community.general/pull/10227). - -minor_changes: - - pacemaker_cluster - add ``state=maintenance`` for managing pacemaker maintenance mode (https://github.com/ansible-collections/community.general/issues/10200, https://github.com/ansible-collections/community.general/pull/10227). - - pacemaker_cluster - rename ``node`` to ``name`` and add ``node`` alias (https://github.com/ansible-collections/community.general/pull/10227). - - pacemaker_resource - enhance module by removing duplicative code (https://github.com/ansible-collections/community.general/pull/10227). diff --git a/changelogs/fragments/10231-keycloak-add-client-credentials-authentication.yml b/changelogs/fragments/10231-keycloak-add-client-credentials-authentication.yml deleted file mode 100644 index eec12e8669..0000000000 --- a/changelogs/fragments/10231-keycloak-add-client-credentials-authentication.yml +++ /dev/null @@ -1,2 +0,0 @@ -minor_changes: - - keycloak - add support for ``grant_type=client_credentials`` to all keycloak modules, so that specifying ``auth_client_id`` and ``auth_client_secret`` is sufficient for authentication (https://github.com/ansible-collections/community.general/pull/10231). diff --git a/changelogs/fragments/10267-add-cloudflare-ptr-record-support.yml b/changelogs/fragments/10267-add-cloudflare-ptr-record-support.yml deleted file mode 100644 index 29d71ca393..0000000000 --- a/changelogs/fragments/10267-add-cloudflare-ptr-record-support.yml +++ /dev/null @@ -1,2 +0,0 @@ -minor_changes: - - cloudflare_dns - adds support for PTR records (https://github.com/ansible-collections/community.general/pull/10267). diff --git a/changelogs/fragments/10269-cloudflare-dns-refactor.yml b/changelogs/fragments/10269-cloudflare-dns-refactor.yml deleted file mode 100644 index 9f91040d63..0000000000 --- a/changelogs/fragments/10269-cloudflare-dns-refactor.yml +++ /dev/null @@ -1,2 +0,0 @@ -minor_changes: - - cloudflare_dns - simplify validations and refactor some code, no functional changes (https://github.com/ansible-collections/community.general/pull/10269). diff --git a/changelogs/fragments/10271--disable_lookups.yml b/changelogs/fragments/10271--disable_lookups.yml deleted file mode 100644 index d28e2ac833..0000000000 --- a/changelogs/fragments/10271--disable_lookups.yml +++ /dev/null @@ -1,3 +0,0 @@ -bugfixes: - - "icinga2 inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.general/pull/10271)." - - "linode inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.general/pull/10271)." diff --git a/changelogs/fragments/10285-fstr-plugins.yml b/changelogs/fragments/10285-fstr-plugins.yml deleted file mode 100644 index 6fff590fee..0000000000 --- a/changelogs/fragments/10285-fstr-plugins.yml +++ /dev/null @@ -1,7 +0,0 @@ -minor_changes: - - dense callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). - - mail callback plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). - - wsl connection plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). - - jc filter plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). - - iocage inventory plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). - - xen_orchestra inventory plugin - use f-strings instead of concatenation (https://github.com/ansible-collections/community.general/pull/10285). diff --git a/changelogs/fragments/10311-xfconf-refactor.yml b/changelogs/fragments/10311-xfconf-refactor.yml deleted file mode 100644 index 9d71bd17d8..0000000000 --- a/changelogs/fragments/10311-xfconf-refactor.yml +++ /dev/null @@ -1,2 +0,0 @@ -minor_changes: - - xfconf - minor adjustments the the code (https://github.com/ansible-collections/community.general/pull/10311). diff --git a/changelogs/fragments/10323-nmcli-improvements.yml b/changelogs/fragments/10323-nmcli-improvements.yml deleted file mode 100644 index 53436ea7d6..0000000000 --- a/changelogs/fragments/10323-nmcli-improvements.yml +++ /dev/null @@ -1,2 +0,0 @@ -minor_changes: - - nmcli - simplify validations and refactor some code, no functional changes (https://github.com/ansible-collections/community.general/pull/10323). diff --git a/changelogs/fragments/10328-redundant-brackets.yml b/changelogs/fragments/10328-redundant-brackets.yml deleted file mode 100644 index f8f74a336c..0000000000 --- a/changelogs/fragments/10328-redundant-brackets.yml +++ /dev/null @@ -1,32 +0,0 @@ -minor_changes: - - logstash callback plugin - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - keycloak module utils - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - python_runner module utils - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - cloudflare_dns - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - crypttab - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - datadog_monitor - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - gitlab_deploy_key - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - gitlab_group_access_token - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - gitlab_hook - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - gitlab_project_access_token - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - gitlab_runner - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - ipa_group - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - jenkins_build - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - jenkins_build_info - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - nmcli - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - oneandone_firewall_policy - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - oneandone_load_balancer - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - oneandone_monitoring_policy - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - onepassword_info - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - osx_defaults - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - ovh_ip_loadbalancing_backend - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - packet_device - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - pagerduty - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - pingdom - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - rhevm - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - rocketchat - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - sensu_silence - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - sl_vm - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - urpmi - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - xattr - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). - - xml - remove redundant brackets in conditionals, no functional changes (https://github.com/ansible-collections/community.general/pull/10328). diff --git a/changelogs/fragments/10329-catapult-deprecation.yml b/changelogs/fragments/10329-catapult-deprecation.yml deleted file mode 100644 index 5e5209edda..0000000000 --- a/changelogs/fragments/10329-catapult-deprecation.yml +++ /dev/null @@ -1,2 +0,0 @@ -deprecated_features: - - catapult - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/issues/10318, https://github.com/ansible-collections/community.general/pull/10329). diff --git a/changelogs/fragments/10339-github_app_access_token.yml b/changelogs/fragments/10339-github_app_access_token.yml deleted file mode 100644 index 00cd71f559..0000000000 --- a/changelogs/fragments/10339-github_app_access_token.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - github_release - support multiple types of GitHub tokens; no longer failing when ``ghs_`` token type is provided (https://github.com/ansible-collections/community.general/issues/10338, https://github.com/ansible-collections/community.general/pull/10339). \ No newline at end of file diff --git a/changelogs/fragments/10349-incus_connection-error-handling.yml b/changelogs/fragments/10349-incus_connection-error-handling.yml deleted file mode 100644 index b35da354d2..0000000000 --- a/changelogs/fragments/10349-incus_connection-error-handling.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - incus connection plugin - fix error handling to return more useful Ansible errors to the user (https://github.com/ansible-collections/community.general/issues/10344, https://github.com/ansible-collections/community.general/pull/10349). diff --git a/changelogs/fragments/10359-dependent.yml b/changelogs/fragments/10359-dependent.yml deleted file mode 100644 index e48a6142e8..0000000000 --- a/changelogs/fragments/10359-dependent.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - "dependent lookup plugin - avoid deprecated ansible-core 2.19 functionality (https://github.com/ansible-collections/community.general/pull/10359)." diff --git a/changelogs/fragments/10417-sysrc-refactor.yml b/changelogs/fragments/10417-sysrc-refactor.yml deleted file mode 100644 index b1b5db632b..0000000000 --- a/changelogs/fragments/10417-sysrc-refactor.yml +++ /dev/null @@ -1,4 +0,0 @@ -minor_changes: - - sysrc - adjustments to the code (https://github.com/ansible-collections/community.general/pull/10417). -bugfixes: - - sysrc - fixes parsing with multi-line variables (https://github.com/ansible-collections/community.general/issues/10394, https://github.com/ansible-collections/community.general/pull/10417). \ No newline at end of file diff --git a/changelogs/fragments/10442-apk-fix-empty-names.yml b/changelogs/fragments/10442-apk-fix-empty-names.yml deleted file mode 100644 index 24d68b52df..0000000000 --- a/changelogs/fragments/10442-apk-fix-empty-names.yml +++ /dev/null @@ -1,3 +0,0 @@ -bugfixes: - - apk - handle empty name strings properly - (https://github.com/ansible-collections/community.general/issues/10441, https://github.com/ansible-collections/community.general/pull/10442). \ No newline at end of file diff --git a/changelogs/fragments/10445-cronvar-reject-empty-values.yml b/changelogs/fragments/10445-cronvar-reject-empty-values.yml deleted file mode 100644 index 1bf39619cc..0000000000 --- a/changelogs/fragments/10445-cronvar-reject-empty-values.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - "cronvar - handle empty strings on ``value`` properly (https://github.com/ansible-collections/community.general/issues/10439, https://github.com/ansible-collections/community.general/pull/10445)." diff --git a/changelogs/fragments/10455-capabilities-improve-error-detection.yml b/changelogs/fragments/10455-capabilities-improve-error-detection.yml deleted file mode 100644 index 40337a424b..0000000000 --- a/changelogs/fragments/10455-capabilities-improve-error-detection.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - capabilities - using invalid path (symlink/directory/...) returned unrelated and incoherent error messages (https://github.com/ansible-collections/community.general/issues/5649, https://github.com/ansible-collections/community.general/pull/10455). \ No newline at end of file diff --git a/changelogs/fragments/10458-listen_port_facts-prevent-type-error.yml b/changelogs/fragments/10458-listen_port_facts-prevent-type-error.yml deleted file mode 100644 index 70af0932b3..0000000000 --- a/changelogs/fragments/10458-listen_port_facts-prevent-type-error.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - "listen_port_facts - avoid crash when required commands are missing (https://github.com/ansible-collections/community.general/issues/10457, https://github.com/ansible-collections/community.general/pull/10458)." \ No newline at end of file diff --git a/changelogs/fragments/10459-deprecations.yml b/changelogs/fragments/10459-deprecations.yml deleted file mode 100644 index 4b3f317454..0000000000 --- a/changelogs/fragments/10459-deprecations.yml +++ /dev/null @@ -1,6 +0,0 @@ -bugfixes: - - "apache2_module - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459)." - - "htpasswd - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459)." - - "syspatch - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459)." - - "sysupgrade - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459)." - - "zypper_repository - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459)." diff --git a/changelogs/fragments/10461-cronvar-non-existent-dir-crash-fix.yml b/changelogs/fragments/10461-cronvar-non-existent-dir-crash-fix.yml deleted file mode 100644 index c4b77299f5..0000000000 --- a/changelogs/fragments/10461-cronvar-non-existent-dir-crash-fix.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - "cronvar - fix crash on missing ``cron_file`` parent directories (https://github.com/ansible-collections/community.general/issues/10460, https://github.com/ansible-collections/community.general/pull/10461)." diff --git a/changelogs/fragments/10491-irc.yml b/changelogs/fragments/10491-irc.yml deleted file mode 100644 index 74867e71a7..0000000000 --- a/changelogs/fragments/10491-irc.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - "irc - pass hostname to ``wrap_socket()`` if ``use_tls=true`` and ``validate_certs=true`` (https://github.com/ansible-collections/community.general/issues/10472, https://github.com/ansible-collections/community.general/pull/10491)." diff --git a/changelogs/fragments/10494-rfdn-1.yml b/changelogs/fragments/10494-rfdn-1.yml deleted file mode 100644 index 09a0c442b0..0000000000 --- a/changelogs/fragments/10494-rfdn-1.yml +++ /dev/null @@ -1,27 +0,0 @@ -minor_changes: - - aerospike_migrations - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - airbrake_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - bigpanda - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - bootc_manage - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - bower - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - btrfs_subvolume - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - bundler - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - campfire - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - cargo - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - catapult - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - cisco_webex - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - consul_kv - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - consul_policy - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - copr - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - datadog_downtime - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - datadog_monitor - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - dconf - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - dimensiondata_network - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - dimensiondata_vlan - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - dnf_config_manager - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - dnsmadeeasy - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - dpkg_divert - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - easy_install - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - elasticsearch_plugin - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - facter - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). - - filesystem - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10494). diff --git a/changelogs/fragments/10505-rfdn-2.yml b/changelogs/fragments/10505-rfdn-2.yml deleted file mode 100644 index 89aeab9356..0000000000 --- a/changelogs/fragments/10505-rfdn-2.yml +++ /dev/null @@ -1,39 +0,0 @@ -minor_changes: - - gem - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - git_config_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - github_deploy_key - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - github_repo - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - github_webhook - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - github_webhook_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_branch - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_group_access_token - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_group_variable - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_hook - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_instance_variable - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_issue - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_label - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_merge_request - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_milestone - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_project - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_project_access_token - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - gitlab_project_variable - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - grove - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - hg - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - homebrew - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - homebrew_cask - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - homebrew_tap - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - honeybadger_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - htpasswd - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - icinga2_host - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - influxdb_user - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - ini_file - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - ipa_dnsrecord - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - ipa_dnszone - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - ipa_service - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - ipbase_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - ipwcli_dns - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - irc - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - jabber - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - jenkins_credential - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - jenkins_job - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). - - jenkins_script - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10505). diff --git a/changelogs/fragments/10507-rfdn-3.yml b/changelogs/fragments/10507-rfdn-3.yml deleted file mode 100644 index fae9d118bc..0000000000 --- a/changelogs/fragments/10507-rfdn-3.yml +++ /dev/null @@ -1,35 +0,0 @@ -minor_changes: - - keycloak_authz_authorization_scope - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - keycloak_authz_permission - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - keycloak_role - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - keycloak_userprofile - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - keyring - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - kibana_plugin - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - layman - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - ldap_attrs - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - ldap_inc - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - librato_annotation - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - lldp - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - logentries - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - lxca_cmms - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - lxca_nodes - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - macports - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - mail - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - manageiq_alerts - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - manageiq_group - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - manageiq_policies - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - manageiq_policies_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - manageiq_tags - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - manageiq_tenant - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - matrix - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - mattermost - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - maven_artifact - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - memset_dns_reload - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - memset_zone - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - memset_zone_record - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - mqtt - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - mssql_db - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - mssql_script - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - netcup_dns - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - newrelic_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). - - nsupdate - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10507). diff --git a/changelogs/fragments/10512-rfdn-4.yml b/changelogs/fragments/10512-rfdn-4.yml deleted file mode 100644 index 6d8f9e7d77..0000000000 --- a/changelogs/fragments/10512-rfdn-4.yml +++ /dev/null @@ -1,42 +0,0 @@ -minor_changes: - - oci_vcn - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - one_image_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - one_template - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - one_vnet - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - onepassword_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - oneview_fc_network_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - opendj_backendprop - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - ovh_monthly_billing - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pagerduty - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pagerduty_change - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pagerduty_user - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pam_limits - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pear - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pkgng - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pnpm - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - portage - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pritunl_org - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pritunl_org_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pritunl_user - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pritunl_user_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pubnub_blocks - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pushbullet - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - pushover - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - redis_data - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - redis_data_incr - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - riak - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - rocketchat - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - rollbar_deployment - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - say - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - scaleway_database_backup - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - sendgrid - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - sensu_silence - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - sorcery - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - ssh_config - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - statusio_maintenance - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - svr4pkg - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - swdepot - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - syslogger - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - sysrc - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - systemd_creds_decrypt - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). - - systemd_creds_encrypt - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10512). diff --git a/changelogs/fragments/10513-rfdn-5.yml b/changelogs/fragments/10513-rfdn-5.yml deleted file mode 100644 index d930d7345c..0000000000 --- a/changelogs/fragments/10513-rfdn-5.yml +++ /dev/null @@ -1,18 +0,0 @@ -minor_changes: - - taiga_issue - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - twilio - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - utm_aaa_group - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - utm_ca_host_key_cert - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - utm_dns_host - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - utm_network_interface_address - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - utm_proxy_auth_profile - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - utm_proxy_exception - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - utm_proxy_frontend - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - utm_proxy_location - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - vertica_configuration - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - vertica_info - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - vertica_role - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - xbps - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - yarn - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - zypper - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). - - zypper_repository - remove redundant constructs from argument specs (https://github.com/ansible-collections/community.general/pull/10513). diff --git a/changelogs/fragments/10531-wsl-paramiko.yml b/changelogs/fragments/10531-wsl-paramiko.yml deleted file mode 100644 index 08257d6c78..0000000000 --- a/changelogs/fragments/10531-wsl-paramiko.yml +++ /dev/null @@ -1,3 +0,0 @@ -bugfixes: - - "wsl connection plugin - avoid deprecated ansible-core paramiko import helper, import paramiko directly instead - (https://github.com/ansible-collections/community.general/issues/10515, https://github.com/ansible-collections/community.general/pull/10531)." diff --git a/changelogs/fragments/10532-apk.yml b/changelogs/fragments/10532-apk.yml deleted file mode 100644 index 84c5d985e8..0000000000 --- a/changelogs/fragments/10532-apk.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - "apk - fix check for empty/whitespace-only package names (https://github.com/ansible-collections/community.general/pull/10532)." diff --git a/changelogs/fragments/10539-json_query.yml b/changelogs/fragments/10539-json_query.yml deleted file mode 100644 index 7e84b7ecb0..0000000000 --- a/changelogs/fragments/10539-json_query.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - "json_query filter plugin - make compatible with lazy evaluation list and dictionary types of ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/10539)." diff --git a/changelogs/fragments/10566-merge_variables.yml b/changelogs/fragments/10566-merge_variables.yml deleted file mode 100644 index c0de6dd845..0000000000 --- a/changelogs/fragments/10566-merge_variables.yml +++ /dev/null @@ -1,2 +0,0 @@ -bugfixes: - - "merge_variables lookup plugin - avoid deprecated functionality from ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/10566)." diff --git a/changelogs/fragments/9499-typetalk-deprecation.yml b/changelogs/fragments/9499-typetalk-deprecation.yml deleted file mode 100644 index 8323bbe959..0000000000 --- a/changelogs/fragments/9499-typetalk-deprecation.yml +++ /dev/null @@ -1,2 +0,0 @@ -deprecated_features: - - typetalk - module is deprecated and will be removed in community.general 13.0.0 (https://github.com/ansible-collections/community.general/pull/9499). diff --git a/changelogs/fragments/become-pipelining.yml b/changelogs/fragments/become-pipelining.yml deleted file mode 100644 index 201d85f71c..0000000000 --- a/changelogs/fragments/become-pipelining.yml +++ /dev/null @@ -1,3 +0,0 @@ -bugfixes: - - "doas become plugin - disable pipelining on ansible-core 2.19+. The plugin does not work with pipelining, and since ansible-core 2.19 become plugins can indicate that they do not work with pipelining (https://github.com/ansible-collections/community.general/issues/9977, https://github.com/ansible-collections/community.general/pull/10537)." - - "machinectl become plugin - disable pipelining on ansible-core 2.19+. The plugin does not work with pipelining, and since ansible-core 2.19 become plugins can indicate that they do not work with pipelining (https://github.com/ansible-collections/community.general/pull/10537)." diff --git a/changelogs/fragments/logstash.yml b/changelogs/fragments/logstash.yml deleted file mode 100644 index 1c7ec89b7d..0000000000 --- a/changelogs/fragments/logstash.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -bugfixes: - - logstash callback plugin - remove reference to Python 2 library (https://github.com/ansible-collections/community.general/pull/10345). diff --git a/galaxy.yml b/galaxy.yml index a39ffcc7e5..b0b9af7d11 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -5,7 +5,7 @@ namespace: community name: general -version: 11.2.0 +version: 11.1.0 readme: README.md authors: - Ansible (https://github.com/ansible) diff --git a/meta/runtime.yml b/meta/runtime.yml index 4efdc68688..ed7efb80d9 100644 --- a/meta/runtime.yml +++ b/meta/runtime.yml @@ -958,10 +958,6 @@ plugin_routing: warning_text: This module relied on HTTPS APIs that do not exist anymore, and any new development in the direction of providing an alternative should happen in the context of the google.cloud collection. - typetalk: - deprecation: - removal_version: 13.0.0 - warning_text: The typetalk service will be discontinued on Dec 2025. vertica_facts: tombstone: removal_version: 3.0.0 diff --git a/plugins/become/doas.py b/plugins/become/doas.py index ca12faea0d..b7b82a0f80 100644 --- a/plugins/become/doas.py +++ b/plugins/become/doas.py @@ -83,9 +83,6 @@ options: - name: ansible_doas_prompt_l10n env: - name: ANSIBLE_DOAS_PROMPT_L10N -notes: - - This become plugin does not work when connection pipelining is enabled. With ansible-core 2.19+, using it automatically - disables pipelining. On ansible-core 2.18 and before, pipelining must explicitly be disabled by the user. """ import re @@ -102,10 +99,6 @@ class BecomeModule(BecomeBase): fail = ('Permission denied',) missing = ('Authorization required',) - # See https://github.com/ansible-collections/community.general/issues/9977, - # https://github.com/ansible/ansible/pull/78111 - pipelining = False - def check_password_prompt(self, b_output): ''' checks if the expected password prompt exists in b_output ''' diff --git a/plugins/become/machinectl.py b/plugins/become/machinectl.py index ad3daa916d..4f608939f1 100644 --- a/plugins/become/machinectl.py +++ b/plugins/become/machinectl.py @@ -75,8 +75,6 @@ notes: of C(machinectl). This rule must alter the prompt behaviour to ask directly for the user credentials, if the user is allowed to perform the action (take a look at the examples section). If such a rule is not present the plugin only works if it is used in context with the root user, because then no further prompt is shown by C(machinectl). - - This become plugin does not work when connection pipelining is enabled. With ansible-core 2.19+, using it automatically - disables pipelining. On ansible-core 2.18 and before, pipelining must explicitly be disabled by the user. """ EXAMPLES = r""" @@ -109,10 +107,6 @@ class BecomeModule(BecomeBase): success = ('==== AUTHENTICATION COMPLETE ====',) require_tty = True # see https://github.com/ansible-collections/community.general/issues/6932 - # See https://github.com/ansible/ansible/issues/81254, - # https://github.com/ansible/ansible/pull/78111 - pipelining = False - @staticmethod def remove_ansi_codes(line): return ansi_color_codes.sub(b"", line) diff --git a/plugins/connection/wsl.py b/plugins/connection/wsl.py index 92ffec52b3..1d26cefa18 100644 --- a/plugins/connection/wsl.py +++ b/plugins/connection/wsl.py @@ -315,7 +315,6 @@ import pathlib import shlex import socket import tempfile -import traceback import typing as t from ansible.errors import ( @@ -324,8 +323,9 @@ from ansible.errors import ( AnsibleError, ) from ansible_collections.community.general.plugins.module_utils._filelock import FileLock, LockTimeout -from ansible_collections.community.general.plugins.module_utils.version import LooseVersion from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text +from ansible.module_utils.compat.paramiko import PARAMIKO_IMPORT_ERR, paramiko +from ansible.module_utils.compat.version import LooseVersion from ansible.playbook.play_context import PlayContext from ansible.plugins.connection import ConnectionBase from ansible.utils.display import Display @@ -333,15 +333,8 @@ from ansible.utils.path import makedirs_safe from binascii import hexlify from subprocess import list2cmdline -try: - import paramiko - PARAMIKO_IMPORT_ERR = None -except ImportError: - paramiko = None - PARAMIKO_IMPORT_ERR = traceback.format_exc() - -if t.TYPE_CHECKING and PARAMIKO_IMPORT_ERR is None: +if t.TYPE_CHECKING and paramiko: from paramiko import MissingHostKeyPolicy from paramiko.client import SSHClient from paramiko.pkey import PKey @@ -444,7 +437,7 @@ class Connection(ConnectionBase): def _connect(self) -> Connection: """ activates the connection object """ - if PARAMIKO_IMPORT_ERR is not None: + if paramiko is None: raise AnsibleError(f'paramiko is not installed: {to_native(PARAMIKO_IMPORT_ERR)}') port = self.get_option('port') diff --git a/plugins/filter/json_query.py b/plugins/filter/json_query.py index 9c0a83a481..8976694a94 100644 --- a/plugins/filter/json_query.py +++ b/plugins/filter/json_query.py @@ -124,17 +124,10 @@ def json_query(data, expr): 'json_query filter') # Hack to handle Ansible Unsafe text, AnsibleMapping and AnsibleSequence - # See issues https://github.com/ansible-collections/community.general/issues/320 - # and https://github.com/ansible/ansible/issues/85600. - jmespath.functions.REVERSE_TYPES_MAP['string'] = jmespath.functions.REVERSE_TYPES_MAP['string'] + ( - 'AnsibleUnicode', 'AnsibleUnsafeText', '_AnsibleTaggedStr', - ) - jmespath.functions.REVERSE_TYPES_MAP['array'] = jmespath.functions.REVERSE_TYPES_MAP['array'] + ( - 'AnsibleSequence', '_AnsibleLazyTemplateList', - ) - jmespath.functions.REVERSE_TYPES_MAP['object'] = jmespath.functions.REVERSE_TYPES_MAP['object'] + ( - 'AnsibleMapping', '_AnsibleLazyTemplateDict', - ) + # See issue: https://github.com/ansible-collections/community.general/issues/320 + jmespath.functions.REVERSE_TYPES_MAP['string'] = jmespath.functions.REVERSE_TYPES_MAP['string'] + ('AnsibleUnicode', 'AnsibleUnsafeText', ) + jmespath.functions.REVERSE_TYPES_MAP['array'] = jmespath.functions.REVERSE_TYPES_MAP['array'] + ('AnsibleSequence', ) + jmespath.functions.REVERSE_TYPES_MAP['object'] = jmespath.functions.REVERSE_TYPES_MAP['object'] + ('AnsibleMapping', ) try: return jmespath.search(expr, data) except jmespath.exceptions.JMESPathError as e: diff --git a/plugins/lookup/merge_variables.py b/plugins/lookup/merge_variables.py index aff70f9799..ffe76c3ea0 100644 --- a/plugins/lookup/merge_variables.py +++ b/plugins/lookup/merge_variables.py @@ -193,8 +193,8 @@ class LookupModule(LookupBase): result = initial_value for var_name in var_merge_names: - temp_templar = self._templar.copy_with_new_env(available_variables=variables) # tmp. switch renderer to context of current variables - var_value = temp_templar.template(variables[var_name]) # Render jinja2 templates + with self._templar.set_temporary_context(available_variables=variables): # tmp. switch renderer to context of current variables + var_value = self._templar.template(variables[var_name]) # Render jinja2 templates var_type = _verify_and_get_type(var_value) if prev_var_type is None: diff --git a/plugins/modules/aerospike_migrations.py b/plugins/modules/aerospike_migrations.py index d9440fdb4e..12401cb372 100644 --- a/plugins/modules/aerospike_migrations.py +++ b/plugins/modules/aerospike_migrations.py @@ -29,6 +29,7 @@ options: host: description: - Which host do we use as seed for info connection. + required: false type: str default: localhost port: @@ -179,19 +180,19 @@ else: def run_module(): """run ansible module""" module_args = dict( - host=dict(type='str', default='localhost'), - port=dict(type='int', default=3000), - connect_timeout=dict(type='int', default=1000), - consecutive_good_checks=dict(type='int', default=3), - sleep_between_checks=dict(type='int', default=60), - tries_limit=dict(type='int', default=300), + host=dict(type='str', required=False, default='localhost'), + port=dict(type='int', required=False, default=3000), + connect_timeout=dict(type='int', required=False, default=1000), + consecutive_good_checks=dict(type='int', required=False, default=3), + sleep_between_checks=dict(type='int', required=False, default=60), + tries_limit=dict(type='int', required=False, default=300), local_only=dict(type='bool', required=True), - min_cluster_size=dict(type='int', default=1), - target_cluster_size=dict(type='int'), - fail_on_cluster_change=dict(type='bool', default=True), - migrate_tx_key=dict(type='str', no_log=False, + min_cluster_size=dict(type='int', required=False, default=1), + target_cluster_size=dict(type='int', required=False, default=None), + fail_on_cluster_change=dict(type='bool', required=False, default=True), + migrate_tx_key=dict(type='str', required=False, no_log=False, default="migrate_tx_partitions_remaining"), - migrate_rx_key=dict(type='str', no_log=False, + migrate_rx_key=dict(type='str', required=False, no_log=False, default="migrate_rx_partitions_remaining") ) diff --git a/plugins/modules/airbrake_deployment.py b/plugins/modules/airbrake_deployment.py index 0fe04f21d6..5961154354 100644 --- a/plugins/modules/airbrake_deployment.py +++ b/plugins/modules/airbrake_deployment.py @@ -114,11 +114,11 @@ def main(): project_id=dict(required=True, no_log=True, type='str'), project_key=dict(required=True, no_log=True, type='str'), environment=dict(required=True, type='str'), - user=dict(type='str'), - repo=dict(type='str'), - revision=dict(type='str'), - version=dict(type='str'), - url=dict(default='https://api.airbrake.io/api/v4/projects/', type='str'), + user=dict(required=False, type='str'), + repo=dict(required=False, type='str'), + revision=dict(required=False, type='str'), + version=dict(required=False, type='str'), + url=dict(required=False, default='https://api.airbrake.io/api/v4/projects/', type='str'), validate_certs=dict(default=True, type='bool'), ), supports_check_mode=True, diff --git a/plugins/modules/aix_filesystem.py b/plugins/modules/aix_filesystem.py index 92a734e8ac..d952726310 100644 --- a/plugins/modules/aix_filesystem.py +++ b/plugins/modules/aix_filesystem.py @@ -165,6 +165,16 @@ EXAMPLES = r""" state: absent """ +RETURN = r""" +changed: + description: Return changed for aix_filesystems actions as true or false. + returned: always + type: bool +msg: + description: Return message regarding the action. + returned: always + type: str +""" from ansible.module_utils.basic import AnsibleModule from ansible_collections.community.general.plugins.module_utils._mount import ismount diff --git a/plugins/modules/aix_inittab.py b/plugins/modules/aix_inittab.py index ece4e95547..0c32f91e7f 100644 --- a/plugins/modules/aix_inittab.py +++ b/plugins/modules/aix_inittab.py @@ -112,6 +112,16 @@ name: returned: always type: str sample: startmyservice +msg: + description: Action done with the C(inittab) entry. + returned: changed + type: str + sample: changed inittab entry startmyservice +changed: + description: Whether the C(inittab) changed or not. + returned: always + type: bool + sample: true """ # Import necessary libraries diff --git a/plugins/modules/apache2_module.py b/plugins/modules/apache2_module.py index 99db968670..2007b5d1f1 100644 --- a/plugins/modules/apache2_module.py +++ b/plugins/modules/apache2_module.py @@ -113,6 +113,22 @@ result: description: Message about action taken. returned: always type: str +warnings: + description: List of warning messages. + returned: when needed + type: list +rc: + description: Return code of underlying command. + returned: failed + type: int +stdout: + description: The stdout of underlying command. + returned: failed + type: str +stderr: + description: The stderr of underlying command. + returned: failed + type: str """ import re @@ -148,12 +164,12 @@ def _module_is_enabled(module): if module.params['ignore_configcheck']: if 'AH00534' in stderr and 'mpm_' in module.params['name']: if module.params['warn_mpm_absent']: - module.warn( + module.warnings.append( "No MPM module loaded! apache2 reload AND other module actions" " will fail if no MPM module is loaded immediately." ) else: - module.warn(error_msg) + module.warnings.append(error_msg) return False else: module.fail_json(msg=error_msg) @@ -208,7 +224,9 @@ def _set_state(module, state): if _module_is_enabled(module) != want_enabled: if module.check_mode: - module.exit_json(changed=True, result=success_msg) + module.exit_json(changed=True, + result=success_msg, + warnings=module.warnings) a2mod_binary_path = module.get_bin_path(a2mod_binary) if a2mod_binary_path is None: @@ -223,7 +241,9 @@ def _set_state(module, state): result, stdout, stderr = module.run_command(a2mod_binary_cmd + [name]) if _module_is_enabled(module) == want_enabled: - module.exit_json(changed=True, result=success_msg) + module.exit_json(changed=True, + result=success_msg, + warnings=module.warnings) else: msg = ( 'Failed to set module {name} to {state}:\n' @@ -241,7 +261,9 @@ def _set_state(module, state): stdout=stdout, stderr=stderr) else: - module.exit_json(changed=False, result=success_msg) + module.exit_json(changed=False, + result=success_msg, + warnings=module.warnings) def main(): @@ -257,6 +279,8 @@ def main(): supports_check_mode=True, ) + module.warnings = [] + name = module.params['name'] if name == 'cgi' and _run_threaded(module): module.fail_json(msg="Your MPM seems to be threaded. No automatic actions on module cgi possible.") diff --git a/plugins/modules/apk.py b/plugins/modules/apk.py index e70e51a1f0..dcb70ce72d 100644 --- a/plugins/modules/apk.py +++ b/plugins/modules/apk.py @@ -351,9 +351,6 @@ def main(): p = module.params - if p['name'] and any(not name.strip() for name in p['name']): - module.fail_json(msg="Package name(s) cannot be empty or whitespace-only") - if p['no_cache']: APK_PATH = "%s --no-cache" % (APK_PATH, ) diff --git a/plugins/modules/bigpanda.py b/plugins/modules/bigpanda.py index 81e2085b7d..808e7bb06b 100644 --- a/plugins/modules/bigpanda.py +++ b/plugins/modules/bigpanda.py @@ -150,14 +150,14 @@ def main(): version=dict(required=True), token=dict(required=True, no_log=True), state=dict(required=True, choices=['started', 'finished', 'failed']), - hosts=dict(aliases=['host']), - env=dict(), - owner=dict(), - description=dict(), - deployment_message=dict(), - source_system=dict(default='ansible'), + hosts=dict(required=False, aliases=['host']), + env=dict(required=False), + owner=dict(required=False), + description=dict(required=False), + deployment_message=dict(required=False), + source_system=dict(required=False, default='ansible'), validate_certs=dict(default=True, type='bool'), - url=dict(default='https://api.bigpanda.io'), + url=dict(required=False, default='https://api.bigpanda.io'), ), supports_check_mode=True, ) diff --git a/plugins/modules/bootc_manage.py b/plugins/modules/bootc_manage.py index da92c02b06..a0ac5a23d6 100644 --- a/plugins/modules/bootc_manage.py +++ b/plugins/modules/bootc_manage.py @@ -57,7 +57,7 @@ from ansible.module_utils.common.locale import get_best_parsable_locale def main(): argument_spec = dict( state=dict(type='str', required=True, choices=['switch', 'latest']), - image=dict(type='str'), + image=dict(type='str', required=False), ) module = AnsibleModule( argument_spec=argument_spec, diff --git a/plugins/modules/bower.py b/plugins/modules/bower.py index 547152fa98..3e7ebdaecc 100644 --- a/plugins/modules/bower.py +++ b/plugins/modules/bower.py @@ -187,13 +187,13 @@ class Bower(object): def main(): arg_spec = dict( - name=dict(), + name=dict(default=None), offline=dict(default=False, type='bool'), production=dict(default=False, type='bool'), path=dict(required=True, type='path'), - relative_execpath=dict(type='path'), + relative_execpath=dict(default=None, required=False, type='path'), state=dict(default='present', choices=['present', 'absent', 'latest', ]), - version=dict(), + version=dict(default=None), ) module = AnsibleModule( argument_spec=arg_spec diff --git a/plugins/modules/btrfs_subvolume.py b/plugins/modules/btrfs_subvolume.py index 3c34ef4680..f22a551d8d 100644 --- a/plugins/modules/btrfs_subvolume.py +++ b/plugins/modules/btrfs_subvolume.py @@ -644,16 +644,16 @@ class BtrfsSubvolumeModule(object): def run_module(): module_args = dict( - automount=dict(type='bool', default=False), - default=dict(type='bool', default=False), - filesystem_device=dict(type='path'), - filesystem_label=dict(type='str'), - filesystem_uuid=dict(type='str'), + automount=dict(type='bool', required=False, default=False), + default=dict(type='bool', required=False, default=False), + filesystem_device=dict(type='path', required=False), + filesystem_label=dict(type='str', required=False), + filesystem_uuid=dict(type='str', required=False), name=dict(type='str', required=True), recursive=dict(type='bool', default=False), - state=dict(type='str', default='present', choices=['present', 'absent']), - snapshot_source=dict(type='str'), - snapshot_conflict=dict(type='str', default='skip', choices=['skip', 'clobber', 'error']) + state=dict(type='str', required=False, default='present', choices=['present', 'absent']), + snapshot_source=dict(type='str', required=False), + snapshot_conflict=dict(type='str', required=False, default='skip', choices=['skip', 'clobber', 'error']) ) module = AnsibleModule( diff --git a/plugins/modules/bundler.py b/plugins/modules/bundler.py index 6bf2556110..eee9ee8210 100644 --- a/plugins/modules/bundler.py +++ b/plugins/modules/bundler.py @@ -131,18 +131,18 @@ def get_bundler_executable(module): def main(): module = AnsibleModule( argument_spec=dict( - executable=dict(), - state=dict(default='present', choices=['present', 'latest']), - chdir=dict(type='path'), - exclude_groups=dict(type='list', elements='str'), - clean=dict(default=False, type='bool'), - gemfile=dict(type='path'), - local=dict(default=False, type='bool'), - deployment_mode=dict(default=False, type='bool'), - user_install=dict(default=True, type='bool'), - gem_path=dict(type='path'), - binstub_directory=dict(type='path'), - extra_args=dict(), + executable=dict(default=None, required=False), + state=dict(default='present', required=False, choices=['present', 'latest']), + chdir=dict(default=None, required=False, type='path'), + exclude_groups=dict(default=None, required=False, type='list', elements='str'), + clean=dict(default=False, required=False, type='bool'), + gemfile=dict(default=None, required=False, type='path'), + local=dict(default=False, required=False, type='bool'), + deployment_mode=dict(default=False, required=False, type='bool'), + user_install=dict(default=True, required=False, type='bool'), + gem_path=dict(default=None, required=False, type='path'), + binstub_directory=dict(default=None, required=False, type='path'), + extra_args=dict(default=None, required=False), ), supports_check_mode=True ) diff --git a/plugins/modules/campfire.py b/plugins/modules/campfire.py index 128790c372..0281647a69 100644 --- a/plugins/modules/campfire.py +++ b/plugins/modules/campfire.py @@ -137,7 +137,8 @@ def main(): token=dict(required=True, no_log=True), room=dict(required=True), msg=dict(required=True), - notify=dict(choices=["56k", "bell", "bezos", "bueller", + notify=dict(required=False, + choices=["56k", "bell", "bezos", "bueller", "clowntown", "cottoneyejoe", "crickets", "dadgummit", "dangerzone", "danielsan", "deeper", "drama", diff --git a/plugins/modules/capabilities.py b/plugins/modules/capabilities.py index 08bd2e85ff..b3143df0a4 100644 --- a/plugins/modules/capabilities.py +++ b/plugins/modules/capabilities.py @@ -123,8 +123,6 @@ class CapabilitiesModule(object): if ' =' in stdout: # process output of an older version of libcap caps = stdout.split(' =')[1].strip().split() - elif stdout.strip().endswith(")"): # '/foo (Error Message)' - self.module.fail_json(msg="Unable to get capabilities of %s" % path, stdout=stdout.strip(), stderr=stderr) else: # otherwise, we have a newer version here # see original commit message of cap/v0.2.40-18-g177cd41 in libcap.git diff --git a/plugins/modules/cargo.py b/plugins/modules/cargo.py index c00983fade..7e30a9000a 100644 --- a/plugins/modules/cargo.py +++ b/plugins/modules/cargo.py @@ -247,14 +247,14 @@ class Cargo(object): def main(): arg_spec = dict( - executable=dict(type="path"), + executable=dict(default=None, type="path"), name=dict(required=True, type="list", elements="str"), - path=dict(type="path"), + path=dict(default=None, type="path"), state=dict(default="present", choices=["present", "absent", "latest"]), - version=dict(type="str"), + version=dict(default=None, type="str"), locked=dict(default=False, type="bool"), - directory=dict(type="path"), - features=dict(default=[], type="list", elements="str"), + directory=dict(default=None, type="path"), + features=dict(default=[], required=False, type="list", elements="str"), ) module = AnsibleModule(argument_spec=arg_spec, supports_check_mode=True) diff --git a/plugins/modules/catapult.py b/plugins/modules/catapult.py index 448de5d13d..c866bed75b 100644 --- a/plugins/modules/catapult.py +++ b/plugins/modules/catapult.py @@ -95,6 +95,14 @@ EXAMPLES = r""" api_secret: "{{ api_secret }}" """ +RETURN = r""" +changed: + description: Whether the API accepted the message. + returned: always + type: bool + sample: true +""" + import json @@ -130,7 +138,7 @@ def main(): user_id=dict(required=True), api_token=dict(required=True, no_log=True), api_secret=dict(required=True, no_log=True), - media=dict(), + media=dict(default=None, required=False), ), ) diff --git a/plugins/modules/cisco_webex.py b/plugins/modules/cisco_webex.py index f957f4121d..14b8716846 100644 --- a/plugins/modules/cisco_webex.py +++ b/plugins/modules/cisco_webex.py @@ -177,7 +177,7 @@ def main(): argument_spec=dict( recipient_type=dict(required=True, choices=['roomId', 'toPersonEmail', 'toPersonId']), recipient_id=dict(required=True, no_log=True), - msg_type=dict(default='text', aliases=['message_type'], choices=['text', 'markdown']), + msg_type=dict(required=False, default='text', aliases=['message_type'], choices=['text', 'markdown']), personal_token=dict(required=True, no_log=True, aliases=['token']), msg=dict(required=True), ), diff --git a/plugins/modules/consul_kv.py b/plugins/modules/consul_kv.py index 2987e71a86..9e190d6565 100644 --- a/plugins/modules/consul_kv.py +++ b/plugins/modules/consul_kv.py @@ -300,7 +300,7 @@ def main(): module = AnsibleModule( argument_spec=dict( cas=dict(type='str'), - datacenter=dict(type='str'), + datacenter=dict(type='str', default=None), flags=dict(type='str'), key=dict(type='str', required=True, no_log=False), host=dict(type='str', default='localhost'), diff --git a/plugins/modules/consul_policy.py b/plugins/modules/consul_policy.py index e009e44434..26cb34e100 100644 --- a/plugins/modules/consul_policy.py +++ b/plugins/modules/consul_policy.py @@ -132,7 +132,7 @@ from ansible_collections.community.general.plugins.module_utils.consul import ( _ARGUMENT_SPEC = { "name": dict(required=True), - "description": dict(type="str"), + "description": dict(required=False, type="str"), "rules": dict(type="str"), "valid_datacenters": dict(type="list", elements="str"), "state": dict(default="present", choices=["present", "absent"]), diff --git a/plugins/modules/copr.py b/plugins/modules/copr.py index 940fc0eedd..739092b8af 100644 --- a/plugins/modules/copr.py +++ b/plugins/modules/copr.py @@ -494,8 +494,8 @@ def run_module(): name=dict(type="str", required=True), state=dict(type="str", choices=["enabled", "disabled", "absent"], default="enabled"), chroot=dict(type="str"), - includepkgs=dict(type='list', elements="str"), - excludepkgs=dict(type='list', elements="str"), + includepkgs=dict(type='list', elements="str", required=False), + excludepkgs=dict(type='list', elements="str", required=False), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) params = module.params diff --git a/plugins/modules/cronvar.py b/plugins/modules/cronvar.py index 5f7d02bfc3..e1acedc81d 100644 --- a/plugins/modules/cronvar.py +++ b/plugins/modules/cronvar.py @@ -135,9 +135,6 @@ class CronVar(object): self.cron_file = cron_file else: self.cron_file = os.path.join('/etc/cron.d', cron_file) - parent_dir = os.path.dirname(self.cron_file) - if parent_dir and not os.path.isdir(parent_dir): - module.fail_json(msg="Parent directory '{}' does not exist for cron_file: '{}'".format(parent_dir, cron_file)) else: self.cron_file = None @@ -396,8 +393,6 @@ def main(): old_value = cronvar.find_variable(name) if ensure_present: - if value == "" and old_value != "": - value = '""' if old_value is None: cronvar.add_variable(name, value, insertbefore, insertafter) changed = True diff --git a/plugins/modules/datadog_downtime.py b/plugins/modules/datadog_downtime.py index 9e48410014..1bc57e2958 100644 --- a/plugins/modules/datadog_downtime.py +++ b/plugins/modules/datadog_downtime.py @@ -175,18 +175,18 @@ def main(): module = AnsibleModule( argument_spec=dict( api_key=dict(required=True, no_log=True), - api_host=dict(default="https://api.datadoghq.com"), + api_host=dict(required=False, default="https://api.datadoghq.com"), app_key=dict(required=True, no_log=True), - state=dict(choices=["present", "absent"], default="present"), - monitor_tags=dict(type="list", elements="str"), - scope=dict(type="list", elements="str"), - monitor_id=dict(type="int"), - downtime_message=dict(no_log=True), - start=dict(type="int"), - end=dict(type="int"), - timezone=dict(type="str"), - rrule=dict(type="str"), - id=dict(type="int"), + state=dict(required=False, choices=["present", "absent"], default="present"), + monitor_tags=dict(required=False, type="list", elements="str"), + scope=dict(required=False, type="list", elements="str"), + monitor_id=dict(required=False, type="int"), + downtime_message=dict(required=False, no_log=True), + start=dict(required=False, type="int"), + end=dict(required=False, type="int"), + timezone=dict(required=False, type="str"), + rrule=dict(required=False, type="str"), + id=dict(required=False, type="int"), ) ) diff --git a/plugins/modules/datadog_monitor.py b/plugins/modules/datadog_monitor.py index f778d2444d..3af8cac3d5 100644 --- a/plugins/modules/datadog_monitor.py +++ b/plugins/modules/datadog_monitor.py @@ -275,14 +275,14 @@ def main(): renotify_interval=dict(), escalation_message=dict(), notify_audit=dict(default=False, type='bool'), - thresholds=dict(type='dict'), - tags=dict(type='list', elements='str'), + thresholds=dict(type='dict', default=None), + tags=dict(type='list', elements='str', default=None), locked=dict(default=False, type='bool'), require_full_window=dict(type='bool'), new_host_delay=dict(), evaluation_delay=dict(), id=dict(), - include_tags=dict(default=True, type='bool'), + include_tags=dict(required=False, default=True, type='bool'), priority=dict(type='int'), notification_preset_name=dict(choices=['show_all', 'hide_query', 'hide_handles', 'hide_all']), renotify_occurrences=dict(type='int'), diff --git a/plugins/modules/dconf.py b/plugins/modules/dconf.py index 762c443130..8bb9650a87 100644 --- a/plugins/modules/dconf.py +++ b/plugins/modules/dconf.py @@ -398,7 +398,7 @@ def main(): state=dict(default='present', choices=['present', 'absent', 'read']), key=dict(required=True, type='str', no_log=False), # Converted to str below after special handling of bool. - value=dict(type='raw'), + value=dict(required=False, default=None, type='raw'), ), supports_check_mode=True, required_if=[ diff --git a/plugins/modules/dimensiondata_network.py b/plugins/modules/dimensiondata_network.py index 04fff21e58..6617d6aef1 100644 --- a/plugins/modules/dimensiondata_network.py +++ b/plugins/modules/dimensiondata_network.py @@ -140,7 +140,7 @@ class DimensionDataNetworkModule(DimensionDataModule): module=AnsibleModule( argument_spec=DimensionDataModule.argument_spec_with_wait( name=dict(type='str', required=True), - description=dict(type='str'), + description=dict(type='str', required=False), service_plan=dict(default='ESSENTIALS', choices=['ADVANCED', 'ESSENTIALS']), state=dict(default='present', choices=['present', 'absent']) ), diff --git a/plugins/modules/dimensiondata_vlan.py b/plugins/modules/dimensiondata_vlan.py index b28b12d998..4e8f090b32 100644 --- a/plugins/modules/dimensiondata_vlan.py +++ b/plugins/modules/dimensiondata_vlan.py @@ -186,7 +186,7 @@ class DimensionDataVlanModule(DimensionDataModule): network_domain=dict(required=True, type='str'), private_ipv4_base_address=dict(default='', type='str'), private_ipv4_prefix_size=dict(default=0, type='int'), - allow_expand=dict(default=False, type='bool'), + allow_expand=dict(required=False, default=False, type='bool'), state=dict(default='present', choices=['present', 'absent', 'readonly']) ), required_together=DimensionDataModule.required_together() diff --git a/plugins/modules/dnf_config_manager.py b/plugins/modules/dnf_config_manager.py index eb64bee864..c3c0d95c24 100644 --- a/plugins/modules/dnf_config_manager.py +++ b/plugins/modules/dnf_config_manager.py @@ -175,8 +175,8 @@ def pack_repo_states_for_return(states): def main(): module_args = dict( - name=dict(type='list', elements='str', default=[]), - state=dict(type='str', choices=['enabled', 'disabled'], default='enabled') + name=dict(type='list', elements='str', required=False, default=[]), + state=dict(type='str', required=False, choices=['enabled', 'disabled'], default='enabled') ) result = dict( diff --git a/plugins/modules/dnf_versionlock.py b/plugins/modules/dnf_versionlock.py index b3e2e2bcc9..adfb636634 100644 --- a/plugins/modules/dnf_versionlock.py +++ b/plugins/modules/dnf_versionlock.py @@ -83,12 +83,12 @@ EXAMPLES = r""" - name: Remove lock from nginx to be updated again community.general.dnf_versionlock: - name: nginx + package: nginx state: absent - name: Exclude bind 32:9.11 from installs or updates community.general.dnf_versionlock: - name: bind-32:9.11* + package: bind-32:9.11* state: excluded - name: Keep bash package in major version 4 diff --git a/plugins/modules/dnsmadeeasy.py b/plugins/modules/dnsmadeeasy.py index ec17880af7..3e3fa9dce5 100644 --- a/plugins/modules/dnsmadeeasy.py +++ b/plugins/modules/dnsmadeeasy.py @@ -553,28 +553,28 @@ def main(): domain=dict(required=True), sandbox=dict(default=False, type='bool'), state=dict(required=True, choices=['present', 'absent']), - record_name=dict(), - record_type=dict(choices=[ + record_name=dict(required=False), + record_type=dict(required=False, choices=[ 'A', 'AAAA', 'CNAME', 'ANAME', 'HTTPRED', 'MX', 'NS', 'PTR', 'SRV', 'TXT']), - record_value=dict(), - record_ttl=dict(default=1800, type='int'), + record_value=dict(required=False), + record_ttl=dict(required=False, default=1800, type='int'), monitor=dict(default=False, type='bool'), systemDescription=dict(default=''), maxEmails=dict(default=1, type='int'), protocol=dict(default='HTTP', choices=['TCP', 'UDP', 'HTTP', 'DNS', 'SMTP', 'HTTPS']), port=dict(default=80, type='int'), sensitivity=dict(default='Medium', choices=['Low', 'Medium', 'High']), - contactList=dict(), - httpFqdn=dict(), - httpFile=dict(), - httpQueryString=dict(), + contactList=dict(default=None), + httpFqdn=dict(required=False), + httpFile=dict(required=False), + httpQueryString=dict(required=False), failover=dict(default=False, type='bool'), autoFailover=dict(default=False, type='bool'), - ip1=dict(), - ip2=dict(), - ip3=dict(), - ip4=dict(), - ip5=dict(), + ip1=dict(required=False), + ip2=dict(required=False), + ip3=dict(required=False), + ip4=dict(required=False), + ip5=dict(required=False), validate_certs=dict(default=True, type='bool'), ), required_together=[ diff --git a/plugins/modules/dpkg_divert.py b/plugins/modules/dpkg_divert.py index 6ef1f394e4..df09927ee9 100644 --- a/plugins/modules/dpkg_divert.py +++ b/plugins/modules/dpkg_divert.py @@ -166,11 +166,11 @@ def main(): module = AnsibleModule( argument_spec=dict( path=dict(required=True, type='path'), - state=dict(type='str', default='present', choices=['absent', 'present']), - holder=dict(type='str'), - divert=dict(type='path'), - rename=dict(type='bool', default=False), - force=dict(type='bool', default=False), + state=dict(required=False, type='str', default='present', choices=['absent', 'present']), + holder=dict(required=False, type='str'), + divert=dict(required=False, type='path'), + rename=dict(required=False, type='bool', default=False), + force=dict(required=False, type='bool', default=False), ), supports_check_mode=True, ) diff --git a/plugins/modules/easy_install.py b/plugins/modules/easy_install.py index 8d0a39333e..f73800350c 100644 --- a/plugins/modules/easy_install.py +++ b/plugins/modules/easy_install.py @@ -133,13 +133,14 @@ def _get_easy_install(module, env=None, executable=None): def main(): arg_spec = dict( name=dict(required=True), - state=dict(default='present', + state=dict(required=False, + default='present', choices=['present', 'latest'], type='str'), - virtualenv=dict(), + virtualenv=dict(default=None, required=False), virtualenv_site_packages=dict(default=False, type='bool'), - virtualenv_command=dict(default='virtualenv'), - executable=dict(default='easy_install'), + virtualenv_command=dict(default='virtualenv', required=False), + executable=dict(default='easy_install', required=False), ) module = AnsibleModule(argument_spec=arg_spec, supports_check_mode=True) diff --git a/plugins/modules/elasticsearch_plugin.py b/plugins/modules/elasticsearch_plugin.py index 8552b55ccd..c90f8dbde8 100644 --- a/plugins/modules/elasticsearch_plugin.py +++ b/plugins/modules/elasticsearch_plugin.py @@ -259,15 +259,15 @@ def main(): argument_spec=dict( name=dict(required=True), state=dict(default="present", choices=list(PACKAGE_STATE_MAP.keys())), - src=dict(), - url=dict(), + src=dict(default=None), + url=dict(default=None), timeout=dict(default="1m"), force=dict(type='bool', default=False), plugin_bin=dict(type="path"), plugin_dir=dict(default="/usr/share/elasticsearch/plugins/", type="path"), - proxy_host=dict(), - proxy_port=dict(), - version=dict() + proxy_host=dict(default=None), + proxy_port=dict(default=None), + version=dict(default=None) ), mutually_exclusive=[("src", "url")], supports_check_mode=True diff --git a/plugins/modules/facter.py b/plugins/modules/facter.py index 20be3d4a4d..ce9320282d 100644 --- a/plugins/modules/facter.py +++ b/plugins/modules/facter.py @@ -62,7 +62,7 @@ from ansible.module_utils.basic import AnsibleModule def main(): module = AnsibleModule( argument_spec=dict( - arguments=dict(type='list', elements='str') + arguments=dict(required=False, type='list', elements='str') ) ) diff --git a/plugins/modules/filesystem.py b/plugins/modules/filesystem.py index f14458c337..f23d8d27a7 100644 --- a/plugins/modules/filesystem.py +++ b/plugins/modules/filesystem.py @@ -633,7 +633,7 @@ def main(): opts=dict(type='str'), force=dict(type='bool', default=False), resizefs=dict(type='bool', default=False), - uuid=dict(type='str'), + uuid=dict(type='str', required=False), ), required_if=[ ('state', 'present', ['fstype']) diff --git a/plugins/modules/flatpak_remote.py b/plugins/modules/flatpak_remote.py index 641ce930d0..bf30f6f85f 100644 --- a/plugins/modules/flatpak_remote.py +++ b/plugins/modules/flatpak_remote.py @@ -112,6 +112,26 @@ command: returned: When a flatpak command has been executed type: str sample: "/usr/bin/flatpak remote-add --system flatpak-test https://dl.flathub.org/repo/flathub.flatpakrepo" +msg: + description: Module error message. + returned: failure + type: str + sample: "Executable '/usr/local/bin/flatpak' was not found on the system." +rc: + description: Return code from flatpak binary. + returned: When a flatpak command has been executed + type: int + sample: 0 +stderr: + description: Error output from flatpak binary. + returned: When a flatpak command has been executed + type: str + sample: "error: GPG verification enabled, but no summary found (check that the configured URL in remote config is correct)\n" +stdout: + description: Output from flatpak binary. + returned: When a flatpak command has been executed + type: str + sample: "flathub\tFlathub\thttps://dl.flathub.org/repo/\t1\t\n" """ from ansible.module_utils.basic import AnsibleModule diff --git a/plugins/modules/gem.py b/plugins/modules/gem.py index 1ea9c68a94..c364785f3e 100644 --- a/plugins/modules/gem.py +++ b/plugins/modules/gem.py @@ -295,22 +295,22 @@ def main(): module = AnsibleModule( argument_spec=dict( - executable=dict(type='path'), - gem_source=dict(type='path'), - include_dependencies=dict(default=True, type='bool'), + executable=dict(required=False, type='path'), + gem_source=dict(required=False, type='path'), + include_dependencies=dict(required=False, default=True, type='bool'), name=dict(required=True, type='str'), - repository=dict(aliases=['source'], type='str'), - state=dict(default='present', choices=['present', 'absent', 'latest'], type='str'), - user_install=dict(default=True, type='bool'), - install_dir=dict(type='path'), + repository=dict(required=False, aliases=['source'], type='str'), + state=dict(required=False, default='present', choices=['present', 'absent', 'latest'], type='str'), + user_install=dict(required=False, default=True, type='bool'), + install_dir=dict(required=False, type='path'), bindir=dict(type='path'), norc=dict(type='bool', default=True), - pre_release=dict(default=False, type='bool'), - include_doc=dict(default=False, type='bool'), - env_shebang=dict(default=False, type='bool'), - version=dict(type='str'), - build_flags=dict(type='str'), - force=dict(default=False, type='bool'), + pre_release=dict(required=False, default=False, type='bool'), + include_doc=dict(required=False, default=False, type='bool'), + env_shebang=dict(required=False, default=False, type='bool'), + version=dict(required=False, type='str'), + build_flags=dict(required=False, type='str'), + force=dict(required=False, default=False, type='bool'), ), supports_check_mode=True, mutually_exclusive=[['gem_source', 'repository'], ['gem_source', 'version']], diff --git a/plugins/modules/gio_mime.py b/plugins/modules/gio_mime.py index b8864ea3e3..f81e065612 100644 --- a/plugins/modules/gio_mime.py +++ b/plugins/modules/gio_mime.py @@ -61,6 +61,18 @@ handler: returned: success type: str sample: google-chrome.desktop +stdout: + description: + - The output of the C(gio) command. + returned: success + type: str + sample: Set google-chrome.desktop as the default for x-scheme-handler/https +stderr: + description: + - The error output of the C(gio) command. + returned: failure + type: str + sample: 'gio: Failed to load info for handler "never-existed.desktop"' version: description: Version of gio. type: str diff --git a/plugins/modules/git_config_info.py b/plugins/modules/git_config_info.py index 29922382de..acedaf718a 100644 --- a/plugins/modules/git_config_info.py +++ b/plugins/modules/git_config_info.py @@ -113,7 +113,7 @@ def main(): argument_spec=dict( name=dict(type="str"), path=dict(type="path"), - scope=dict(type="str", default="system", choices=["global", "system", "local", "file"]), + scope=dict(required=False, type="str", default="system", choices=["global", "system", "local", "file"]), ), required_if=[ ("scope", "local", ["path"]), diff --git a/plugins/modules/github_deploy_key.py b/plugins/modules/github_deploy_key.py index 4ec7fbb769..bbf6e711f3 100644 --- a/plugins/modules/github_deploy_key.py +++ b/plugins/modules/github_deploy_key.py @@ -301,18 +301,18 @@ class GithubDeployKey(object): def main(): module = AnsibleModule( argument_spec=dict( - github_url=dict(type='str', default="https://api.github.com"), + github_url=dict(required=False, type='str', default="https://api.github.com"), owner=dict(required=True, type='str', aliases=['account', 'organization']), repo=dict(required=True, type='str', aliases=['repository']), name=dict(required=True, type='str', aliases=['title', 'label']), key=dict(required=True, type='str', no_log=False), - read_only=dict(type='bool', default=True), + read_only=dict(required=False, type='bool', default=True), state=dict(default='present', choices=['present', 'absent']), - force=dict(type='bool', default=False), - username=dict(type='str'), - password=dict(type='str', no_log=True), - otp=dict(type='int', no_log=True), - token=dict(type='str', no_log=True) + force=dict(required=False, type='bool', default=False), + username=dict(required=False, type='str'), + password=dict(required=False, type='str', no_log=True), + otp=dict(required=False, type='int', no_log=True), + token=dict(required=False, type='str', no_log=True) ), mutually_exclusive=[ ['password', 'token'] diff --git a/plugins/modules/github_repo.py b/plugins/modules/github_repo.py index abaddb3c28..d5091cde3d 100644 --- a/plugins/modules/github_repo.py +++ b/plugins/modules/github_repo.py @@ -246,12 +246,12 @@ def main(): password=dict(type='str', no_log=True), access_token=dict(type='str', no_log=True), name=dict(type='str', required=True), - state=dict(type='str', default="present", + state=dict(type='str', required=False, default="present", choices=["present", "absent"]), - organization=dict(type='str', ), + organization=dict(type='str', required=False, default=None), private=dict(type='bool'), description=dict(type='str'), - api_url=dict(type='str', default='https://api.github.com'), + api_url=dict(type='str', required=False, default='https://api.github.com'), force_defaults=dict(type='bool', default=True), ) module = AnsibleModule( diff --git a/plugins/modules/github_webhook.py b/plugins/modules/github_webhook.py index 1ae2e71aaa..0a6272c7b5 100644 --- a/plugins/modules/github_webhook.py +++ b/plugins/modules/github_webhook.py @@ -208,16 +208,25 @@ def main(): argument_spec=dict( repository=dict(type='str', required=True, aliases=['repo']), url=dict(type='str', required=True), - content_type=dict(type='str', choices=('json', 'form'), default='form'), - secret=dict(type='str', no_log=True), - insecure_ssl=dict(type='bool', default=False), - events=dict(type='list', elements='str', ), - active=dict(type='bool', default=True), - state=dict(type='str', choices=('absent', 'present'), default='present'), + content_type=dict( + type='str', + choices=('json', 'form'), + required=False, + default='form'), + secret=dict(type='str', required=False, no_log=True), + insecure_ssl=dict(type='bool', required=False, default=False), + events=dict(type='list', elements='str', required=False), + active=dict(type='bool', required=False, default=True), + state=dict( + type='str', + required=False, + choices=('absent', 'present'), + default='present'), user=dict(type='str', required=True), - password=dict(type='str', no_log=True), - token=dict(type='str', no_log=True), - github_url=dict(type='str', default="https://api.github.com")), + password=dict(type='str', required=False, no_log=True), + token=dict(type='str', required=False, no_log=True), + github_url=dict( + type='str', required=False, default="https://api.github.com")), mutually_exclusive=(('password', 'token'),), required_one_of=(("password", "token"),), required_if=(("state", "present", ("events",)),), diff --git a/plugins/modules/github_webhook_info.py b/plugins/modules/github_webhook_info.py index 75315c77aa..648095b3fa 100644 --- a/plugins/modules/github_webhook_info.py +++ b/plugins/modules/github_webhook_info.py @@ -124,10 +124,10 @@ def main(): argument_spec=dict( repository=dict(type='str', required=True, aliases=["repo"]), user=dict(type='str', required=True), - password=dict(type='str', no_log=True), - token=dict(type='str', no_log=True), + password=dict(type='str', required=False, no_log=True), + token=dict(type='str', required=False, no_log=True), github_url=dict( - type='str', default="https://api.github.com")), + type='str', required=False, default="https://api.github.com")), mutually_exclusive=(('password', 'token'), ), required_one_of=(("password", "token"), ), supports_check_mode=True) diff --git a/plugins/modules/gitlab_branch.py b/plugins/modules/gitlab_branch.py index 6ed6e6a0c5..b32169ef5a 100644 --- a/plugins/modules/gitlab_branch.py +++ b/plugins/modules/gitlab_branch.py @@ -118,7 +118,7 @@ def main(): argument_spec.update( project=dict(type='str', required=True), branch=dict(type='str', required=True), - ref_branch=dict(type='str'), + ref_branch=dict(type='str', required=False), state=dict(type='str', default="present", choices=["absent", "present"]), ) diff --git a/plugins/modules/gitlab_group_access_token.py b/plugins/modules/gitlab_group_access_token.py index 0fe6c14af2..ad3a528ba5 100644 --- a/plugins/modules/gitlab_group_access_token.py +++ b/plugins/modules/gitlab_group_access_token.py @@ -245,7 +245,7 @@ def main(): 'create_runner', 'ai_features', 'k8s_proxy']), - access_level=dict(type='str', default='maintainer', choices=['guest', 'reporter', 'developer', 'maintainer', 'owner']), + access_level=dict(type='str', required=False, default='maintainer', choices=['guest', 'reporter', 'developer', 'maintainer', 'owner']), expires_at=dict(type='str', required=True), recreate=dict(type='str', default='never', choices=['never', 'always', 'state_change']) )) diff --git a/plugins/modules/gitlab_group_variable.py b/plugins/modules/gitlab_group_variable.py index 10ca467bcd..3bda53ee94 100644 --- a/plugins/modules/gitlab_group_variable.py +++ b/plugins/modules/gitlab_group_variable.py @@ -372,11 +372,11 @@ def main(): argument_spec.update(auth_argument_spec()) argument_spec.update( group=dict(type='str', required=True), - purge=dict(type='bool', default=False), - vars=dict(type='dict', default=dict(), no_log=True), + purge=dict(type='bool', required=False, default=False), + vars=dict(type='dict', required=False, default=dict(), no_log=True), # please mind whenever changing the variables dict to also change module_utils/gitlab.py's # KNOWN dict in filter_returned_variables or bad evil will happen - variables=dict(type='list', elements='dict', default=list(), options=dict( + variables=dict(type='list', elements='dict', required=False, default=list(), options=dict( name=dict(type='str', required=True), value=dict(type='str', no_log=True), masked=dict(type='bool', default=False), diff --git a/plugins/modules/gitlab_hook.py b/plugins/modules/gitlab_hook.py index 87c8aa635a..d6a188146d 100644 --- a/plugins/modules/gitlab_hook.py +++ b/plugins/modules/gitlab_hook.py @@ -307,7 +307,7 @@ def main(): job_events=dict(type='bool', default=False), pipeline_events=dict(type='bool', default=False), wiki_page_events=dict(type='bool', default=False), - releases_events=dict(type='bool'), + releases_events=dict(type='bool', default=None), hook_validate_certs=dict(type='bool', default=False, aliases=['enable_ssl_verification']), token=dict(type='str', no_log=True), )) diff --git a/plugins/modules/gitlab_instance_variable.py b/plugins/modules/gitlab_instance_variable.py index 0f2c9b7752..e167b60fc7 100644 --- a/plugins/modules/gitlab_instance_variable.py +++ b/plugins/modules/gitlab_instance_variable.py @@ -301,8 +301,8 @@ def main(): argument_spec = basic_auth_argument_spec() argument_spec.update(auth_argument_spec()) argument_spec.update( - purge=dict(type='bool', default=False), - variables=dict(type='list', elements='dict', default=list(), options=dict( + purge=dict(type='bool', required=False, default=False), + variables=dict(type='list', elements='dict', required=False, default=list(), options=dict( name=dict(type='str', required=True), value=dict(type='str', no_log=True), masked=dict(type='bool', default=False), diff --git a/plugins/modules/gitlab_issue.py b/plugins/modules/gitlab_issue.py index c6bf6f8328..b76c633226 100644 --- a/plugins/modules/gitlab_issue.py +++ b/plugins/modules/gitlab_issue.py @@ -284,13 +284,13 @@ def main(): argument_spec = basic_auth_argument_spec() argument_spec.update(auth_argument_spec()) argument_spec.update( - assignee_ids=dict(type='list', elements='str'), - description=dict(type='str'), - description_path=dict(type='path'), - issue_type=dict(type='str', default='issue', choices=["issue", "incident", "test_case"]), - labels=dict(type='list', elements='str'), - milestone_search=dict(type='str'), - milestone_group_id=dict(type='str'), + assignee_ids=dict(type='list', elements='str', required=False), + description=dict(type='str', required=False), + description_path=dict(type='path', required=False), + issue_type=dict(type='str', default='issue', choices=["issue", "incident", "test_case"], required=False), + labels=dict(type='list', elements='str', required=False), + milestone_search=dict(type='str', required=False), + milestone_group_id=dict(type='str', required=False), project=dict(type='str', required=True), state=dict(type='str', default="present", choices=["absent", "present"]), state_filter=dict(type='str', default="opened", choices=["opened", "closed"]), diff --git a/plugins/modules/gitlab_label.py b/plugins/modules/gitlab_label.py index a139d1fcbd..2fe8d8d567 100644 --- a/plugins/modules/gitlab_label.py +++ b/plugins/modules/gitlab_label.py @@ -410,16 +410,16 @@ def main(): argument_spec = basic_auth_argument_spec() argument_spec.update(auth_argument_spec()) argument_spec.update( - project=dict(type='str'), - group=dict(type='str'), - purge=dict(type='bool', default=False), - labels=dict(type='list', elements='dict', default=list(), + project=dict(type='str', required=False, default=None), + group=dict(type='str', required=False, default=None), + purge=dict(type='bool', required=False, default=False), + labels=dict(type='list', elements='dict', required=False, default=list(), options=dict( name=dict(type='str', required=True), - color=dict(type='str'), - description=dict(type='str'), - priority=dict(type='int'), - new_name=dict(type='str'),) + color=dict(type='str', required=False), + description=dict(type='str', required=False), + priority=dict(type='int', required=False), + new_name=dict(type='str', required=False),) ), state=dict(type='str', default="present", choices=["absent", "present"]), ) diff --git a/plugins/modules/gitlab_merge_request.py b/plugins/modules/gitlab_merge_request.py index 922b224c1f..126c0e66f3 100644 --- a/plugins/modules/gitlab_merge_request.py +++ b/plugins/modules/gitlab_merge_request.py @@ -287,13 +287,13 @@ def main(): source_branch=dict(type='str', required=True), target_branch=dict(type='str', required=True), title=dict(type='str', required=True), - description=dict(type='str'), - labels=dict(type='str', default=""), - description_path=dict(type='path'), - remove_source_branch=dict(type='bool', default=False), + description=dict(type='str', required=False), + labels=dict(type='str', default="", required=False), + description_path=dict(type='path', required=False), + remove_source_branch=dict(type='bool', default=False, required=False), state_filter=dict(type='str', default="opened", choices=["opened", "closed", "locked", "merged"]), - assignee_ids=dict(type='str'), - reviewer_ids=dict(type='str'), + assignee_ids=dict(type='str', required=False), + reviewer_ids=dict(type='str', required=False), state=dict(type='str', default="present", choices=["absent", "present"]), ) diff --git a/plugins/modules/gitlab_milestone.py b/plugins/modules/gitlab_milestone.py index 1406f96ffb..2e3ac23e75 100644 --- a/plugins/modules/gitlab_milestone.py +++ b/plugins/modules/gitlab_milestone.py @@ -411,15 +411,15 @@ def main(): argument_spec = basic_auth_argument_spec() argument_spec.update(auth_argument_spec()) argument_spec.update( - project=dict(type='str'), - group=dict(type='str'), - purge=dict(type='bool', default=False), - milestones=dict(type='list', elements='dict', default=list(), + project=dict(type='str', required=False, default=None), + group=dict(type='str', required=False, default=None), + purge=dict(type='bool', required=False, default=False), + milestones=dict(type='list', elements='dict', required=False, default=list(), options=dict( title=dict(type='str', required=True), - description=dict(type='str'), - due_date=dict(type='str'), - start_date=dict(type='str'),) + description=dict(type='str', required=False), + due_date=dict(type='str', required=False), + start_date=dict(type='str', required=False),) ), state=dict(type='str', default="present", choices=["absent", "present"]), ) diff --git a/plugins/modules/gitlab_project.py b/plugins/modules/gitlab_project.py index 1e2140e24a..16efadc738 100644 --- a/plugins/modules/gitlab_project.py +++ b/plugins/modules/gitlab_project.py @@ -600,7 +600,7 @@ def main(): builds_access_level=dict(type='str', choices=['private', 'disabled', 'enabled']), build_timeout=dict(type='int'), ci_config_path=dict(type='str'), - container_expiration_policy=dict(type='dict', options=dict( + container_expiration_policy=dict(type='dict', default=None, options=dict( cadence=dict(type='str', choices=["1d", "7d", "14d", "1month", "3month"]), enabled=dict(type='bool'), keep_n=dict(type='int', choices=[0, 1, 5, 10, 25, 50, 100]), diff --git a/plugins/modules/gitlab_project_access_token.py b/plugins/modules/gitlab_project_access_token.py index 3747870d9a..82e9e0733f 100644 --- a/plugins/modules/gitlab_project_access_token.py +++ b/plugins/modules/gitlab_project_access_token.py @@ -243,7 +243,7 @@ def main(): 'create_runner', 'ai_features', 'k8s_proxy']), - access_level=dict(type='str', default='maintainer', choices=['guest', 'reporter', 'developer', 'maintainer', 'owner']), + access_level=dict(type='str', required=False, default='maintainer', choices=['guest', 'reporter', 'developer', 'maintainer', 'owner']), expires_at=dict(type='str', required=True), recreate=dict(type='str', default='never', choices=['never', 'always', 'state_change']) )) diff --git a/plugins/modules/gitlab_project_variable.py b/plugins/modules/gitlab_project_variable.py index 4c261f5978..21cec19217 100644 --- a/plugins/modules/gitlab_project_variable.py +++ b/plugins/modules/gitlab_project_variable.py @@ -394,11 +394,11 @@ def main(): argument_spec.update(auth_argument_spec()) argument_spec.update( project=dict(type='str', required=True), - purge=dict(type='bool', default=False), - vars=dict(type='dict', default=dict(), no_log=True), + purge=dict(type='bool', required=False, default=False), + vars=dict(type='dict', required=False, default=dict(), no_log=True), # please mind whenever changing the variables dict to also change module_utils/gitlab.py's # KNOWN dict in filter_returned_variables or bad evil will happen - variables=dict(type='list', elements='dict', default=list(), options=dict( + variables=dict(type='list', elements='dict', required=False, default=list(), options=dict( name=dict(type='str', required=True), value=dict(type='str', no_log=True), masked=dict(type='bool', default=False), diff --git a/plugins/modules/grove.py b/plugins/modules/grove.py index 81417657c8..7d9b5c8213 100644 --- a/plugins/modules/grove.py +++ b/plugins/modules/grove.py @@ -101,8 +101,8 @@ def main(): channel_token=dict(type='str', required=True, no_log=True), message_content=dict(type='str', required=True), service=dict(type='str', default='ansible'), - url=dict(type='str'), - icon_url=dict(type='str'), + url=dict(type='str', default=None), + icon_url=dict(type='str', default=None), validate_certs=dict(default=True, type='bool'), ) ) diff --git a/plugins/modules/hg.py b/plugins/modules/hg.py index 982364504c..9d51b3f198 100644 --- a/plugins/modules/hg.py +++ b/plugins/modules/hg.py @@ -222,12 +222,12 @@ def main(): argument_spec=dict( repo=dict(type='str', required=True, aliases=['name']), dest=dict(type='path'), - revision=dict(type='str', aliases=['version']), + revision=dict(type='str', default=None, aliases=['version']), force=dict(type='bool', default=False), purge=dict(type='bool', default=False), update=dict(type='bool', default=True), clone=dict(type='bool', default=True), - executable=dict(type='str'), + executable=dict(type='str', default=None), ), ) repo = module.params['repo'] diff --git a/plugins/modules/homebrew.py b/plugins/modules/homebrew.py index 021f990e67..cf00619180 100644 --- a/plugins/modules/homebrew.py +++ b/plugins/modules/homebrew.py @@ -807,11 +807,13 @@ def main(): argument_spec=dict( name=dict( aliases=["pkg", "package", "formula"], + required=False, type='list', elements='str', ), path=dict( default="/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin", + required=False, type='path', ), state=dict( @@ -833,11 +835,13 @@ def main(): type='bool', ), install_options=dict( + default=None, aliases=['options'], type='list', elements='str', ), upgrade_options=dict( + default=None, type='list', elements='str', ), diff --git a/plugins/modules/homebrew_cask.py b/plugins/modules/homebrew_cask.py index 948f5c1fd1..7455a61d69 100644 --- a/plugins/modules/homebrew_cask.py +++ b/plugins/modules/homebrew_cask.py @@ -734,11 +734,13 @@ def main(): argument_spec=dict( name=dict( aliases=["pkg", "package", "cask"], + required=False, type='list', elements='str', ), path=dict( default="/usr/local/bin:/opt/homebrew/bin", + required=False, type='path', ), state=dict( @@ -751,6 +753,7 @@ def main(): ), sudo_password=dict( type="str", + required=False, no_log=True, ), update_homebrew=dict( @@ -758,6 +761,7 @@ def main(): type='bool', ), install_options=dict( + default=None, aliases=['options'], type='list', elements='str', diff --git a/plugins/modules/homebrew_tap.py b/plugins/modules/homebrew_tap.py index f50472f90d..f070ccccc7 100644 --- a/plugins/modules/homebrew_tap.py +++ b/plugins/modules/homebrew_tap.py @@ -220,10 +220,11 @@ def main(): module = AnsibleModule( argument_spec=dict( name=dict(aliases=['tap'], type='list', required=True, elements='str'), - url=dict(), + url=dict(default=None, required=False), state=dict(default='present', choices=['present', 'absent']), path=dict( default="/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin", + required=False, type='path', ), ), diff --git a/plugins/modules/honeybadger_deployment.py b/plugins/modules/honeybadger_deployment.py index 2512fc2642..cc8147371f 100644 --- a/plugins/modules/honeybadger_deployment.py +++ b/plugins/modules/honeybadger_deployment.py @@ -88,9 +88,9 @@ def main(): token=dict(required=True, no_log=True), environment=dict(required=True), user=dict(required=False), - repo=dict(), - revision=dict(), - url=dict(default='https://api.honeybadger.io/v1/deploys'), + repo=dict(required=False), + revision=dict(required=False), + url=dict(required=False, default='https://api.honeybadger.io/v1/deploys'), validate_certs=dict(default=True, type='bool'), ), supports_check_mode=True diff --git a/plugins/modules/htpasswd.py b/plugins/modules/htpasswd.py index d8a755476f..514e7bac56 100644 --- a/plugins/modules/htpasswd.py +++ b/plugins/modules/htpasswd.py @@ -191,9 +191,9 @@ def main(): arg_spec = dict( path=dict(type='path', required=True, aliases=["dest", "destfile"]), name=dict(type='str', required=True, aliases=["username"]), - password=dict(type='str', no_log=True), - hash_scheme=dict(type='str', default="apr_md5_crypt", aliases=["crypt_scheme"]), - state=dict(type='str', default="present", choices=["present", "absent"]), + password=dict(type='str', required=False, default=None, no_log=True), + hash_scheme=dict(type='str', required=False, default="apr_md5_crypt", aliases=["crypt_scheme"]), + state=dict(type='str', required=False, default="present", choices=["present", "absent"]), create=dict(type='bool', default=True), ) @@ -241,8 +241,8 @@ def main(): (msg, changed) = present(path, username, password, hash_scheme, create, check_mode) elif state == 'absent': if not os.path.exists(path): - module.warn("%s does not exist" % path) - module.exit_json(msg="%s not present" % username, changed=False) + module.exit_json(msg="%s not present" % username, + warnings="%s does not exist" % path, changed=False) (msg, changed) = absent(path, username, check_mode) else: module.fail_json(msg="Invalid state: %s" % state) diff --git a/plugins/modules/icinga2_host.py b/plugins/modules/icinga2_host.py index d78f607aae..83ef73c8c7 100644 --- a/plugins/modules/icinga2_host.py +++ b/plugins/modules/icinga2_host.py @@ -235,11 +235,11 @@ def main(): state=dict(default="present", choices=["absent", "present"]), name=dict(required=True, aliases=['host']), zone=dict(), - template=dict(), + template=dict(default=None), check_command=dict(default="hostalive"), - display_name=dict(), + display_name=dict(default=None), ip=dict(), - variables=dict(type='dict'), + variables=dict(type='dict', default=None), ) # Define the main module diff --git a/plugins/modules/influxdb_user.py b/plugins/modules/influxdb_user.py index 45410e76a5..234bdafab6 100644 --- a/plugins/modules/influxdb_user.py +++ b/plugins/modules/influxdb_user.py @@ -217,7 +217,7 @@ def main(): argument_spec.update( state=dict(default='present', type='str', choices=['present', 'absent']), user_name=dict(required=True, type='str'), - user_password=dict(type='str', no_log=True), + user_password=dict(required=False, type='str', no_log=True), admin=dict(default='False', type='bool'), grants=dict(type='list', elements='dict'), ) diff --git a/plugins/modules/ini_file.py b/plugins/modules/ini_file.py index 04fe92fa08..e8b5916667 100644 --- a/plugins/modules/ini_file.py +++ b/plugins/modules/ini_file.py @@ -584,7 +584,7 @@ def main(): option=dict(type='str', required=True), value=dict(type='str'), values=dict(type='list', elements='str') - ), mutually_exclusive=[['value', 'values']]), + ), default=None, mutually_exclusive=[['value', 'values']]), option=dict(type='str'), value=dict(type='str'), values=dict(type='list', elements='str'), diff --git a/plugins/modules/ipa_dnsrecord.py b/plugins/modules/ipa_dnsrecord.py index 3cba35b11c..f4051b66ac 100644 --- a/plugins/modules/ipa_dnsrecord.py +++ b/plugins/modules/ipa_dnsrecord.py @@ -353,7 +353,7 @@ def main(): record_value=dict(type='str'), record_values=dict(type='list', elements='str'), state=dict(type='str', default='present', choices=['present', 'absent']), - record_ttl=dict(type='int'), + record_ttl=dict(type='int', required=False), ) module = AnsibleModule( diff --git a/plugins/modules/ipa_dnszone.py b/plugins/modules/ipa_dnszone.py index 81a99bc54b..b536c258d2 100644 --- a/plugins/modules/ipa_dnszone.py +++ b/plugins/modules/ipa_dnszone.py @@ -173,8 +173,8 @@ def main(): argument_spec = ipa_argument_spec() argument_spec.update(zone_name=dict(type='str', required=True), state=dict(type='str', default='present', choices=['present', 'absent']), - dynamicupdate=dict(type='bool', default=False), - allowsyncptr=dict(type='bool', default=False), + dynamicupdate=dict(type='bool', required=False, default=False), + allowsyncptr=dict(type='bool', required=False, default=False), ) module = AnsibleModule(argument_spec=argument_spec, diff --git a/plugins/modules/ipa_service.py b/plugins/modules/ipa_service.py index 51ace78760..54c5575950 100644 --- a/plugins/modules/ipa_service.py +++ b/plugins/modules/ipa_service.py @@ -197,10 +197,10 @@ def main(): argument_spec = ipa_argument_spec() argument_spec.update( krbcanonicalname=dict(type='str', required=True, aliases=['name']), - force=dict(type='bool'), - skip_host_check=dict(type='bool', default=False), - hosts=dict(type='list', elements='str'), - state=dict(type='str', default='present', + force=dict(type='bool', required=False), + skip_host_check=dict(type='bool', default=False, required=False), + hosts=dict(type='list', required=False, elements='str'), + state=dict(type='str', required=False, default='present', choices=['present', 'absent'])) module = AnsibleModule(argument_spec=argument_spec, diff --git a/plugins/modules/ipbase_info.py b/plugins/modules/ipbase_info.py index 7a2dde13d6..6bbd6df1e9 100644 --- a/plugins/modules/ipbase_info.py +++ b/plugins/modules/ipbase_info.py @@ -285,10 +285,10 @@ class IpbaseInfo(object): def main(): module_args = dict( - ip=dict(type='str', no_log=False), - apikey=dict(type='str', no_log=True), - hostname=dict(type='bool', no_log=False, default=False), - language=dict(type='str', no_log=False, default='en'), + ip=dict(type='str', required=False, no_log=False), + apikey=dict(type='str', required=False, no_log=True), + hostname=dict(type='bool', required=False, no_log=False, default=False), + language=dict(type='str', required=False, no_log=False, default='en'), ) module = AnsibleModule( diff --git a/plugins/modules/ipwcli_dns.py b/plugins/modules/ipwcli_dns.py index 604eb82b5f..58ff5fef28 100644 --- a/plugins/modules/ipwcli_dns.py +++ b/plugins/modules/ipwcli_dns.py @@ -271,18 +271,18 @@ def run_module(): dnsname=dict(type='str', required=True), type=dict(type='str', required=True, choices=['A', 'AAAA', 'SRV', 'NAPTR']), container=dict(type='str', required=True), - address=dict(type='str'), - ttl=dict(type='int', default=3600), + address=dict(type='str', required=False), + ttl=dict(type='int', required=False, default=3600), state=dict(type='str', default='present', choices=['absent', 'present']), - priority=dict(type='int', default=10), - weight=dict(type='int', default=10), - port=dict(type='int'), - target=dict(type='str'), - order=dict(type='int'), - preference=dict(type='int'), - flags=dict(type='str', choices=['S', 'A', 'U', 'P']), - service=dict(type='str'), - replacement=dict(type='str'), + priority=dict(type='int', required=False, default=10), + weight=dict(type='int', required=False, default=10), + port=dict(type='int', required=False), + target=dict(type='str', required=False), + order=dict(type='int', required=False), + preference=dict(type='int', required=False), + flags=dict(type='str', required=False, choices=['S', 'A', 'U', 'P']), + service=dict(type='str', required=False), + replacement=dict(type='str', required=False), username=dict(type='str', required=True), password=dict(type='str', required=True, no_log=True) ) diff --git a/plugins/modules/irc.py b/plugins/modules/irc.py index d18c9fd85f..1318804fcd 100644 --- a/plugins/modules/irc.py +++ b/plugins/modules/irc.py @@ -232,11 +232,9 @@ def send_msg(msg, server='localhost', port='6667', channel=None, nick_to=None, k irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) if use_tls: - kwargs = {} if validate_certs: try: context = ssl.create_default_context() - kwargs["server_hostname"] = server except AttributeError: raise Exception('Need at least Python 2.7.9 for SSL certificate validation') else: @@ -246,7 +244,7 @@ def send_msg(msg, server='localhost', port='6667', channel=None, nick_to=None, k else: context = ssl.SSLContext() context.verify_mode = ssl.CERT_NONE - irc = context.wrap_socket(irc, **kwargs) + irc = context.wrap_socket(irc) irc.connect((server, int(port))) if passwd: @@ -311,7 +309,7 @@ def main(): server=dict(default='localhost'), port=dict(type='int', default=6667), nick=dict(default='ansible'), - nick_to=dict(type='list', elements='str'), + nick_to=dict(required=False, type='list', elements='str'), msg=dict(required=True), color=dict(default="none", aliases=['colour'], choices=["white", "black", "blue", "green", "red", "brown", @@ -320,7 +318,7 @@ def main(): "light_blue", "pink", "gray", "light_gray", "none"]), style=dict(default="none", choices=["underline", "reverse", "bold", "italic", "none"]), - channel=dict(), + channel=dict(required=False), key=dict(no_log=True), topic=dict(), passwd=dict(no_log=True), diff --git a/plugins/modules/jabber.py b/plugins/modules/jabber.py index ab73672410..01a34ff9f5 100644 --- a/plugins/modules/jabber.py +++ b/plugins/modules/jabber.py @@ -108,9 +108,9 @@ def main(): password=dict(required=True, no_log=True), to=dict(required=True), msg=dict(required=True), - host=dict(), - port=dict(default=5222, type='int'), - encoding=dict(), + host=dict(required=False), + port=dict(required=False, default=5222, type='int'), + encoding=dict(required=False), ), supports_check_mode=True ) diff --git a/plugins/modules/java_cert.py b/plugins/modules/java_cert.py index 13cfea9324..b75021fc57 100644 --- a/plugins/modules/java_cert.py +++ b/plugins/modules/java_cert.py @@ -32,7 +32,7 @@ options: cert_port: description: - Port to connect to URL. - - This is used to create server URL:PORT. + - This will be used to create server URL:PORT. type: int default: 443 cert_path: @@ -98,8 +98,8 @@ options: state: description: - Defines action which can be either certificate import or removal. - - When O(state=present), the certificate is always inserted into the keystore, even if there already exists a cert alias - that is different. + - When state is present, the certificate will always idempotently be inserted into the keystore, even if there already + exists a cert alias that is different. type: str choices: [absent, present] default: present @@ -197,6 +197,18 @@ EXAMPLES = r""" """ RETURN = r""" +msg: + description: Output from stdout of keytool command after execution of given command. + returned: success + type: str + sample: "Module require existing keystore at keystore_path '/tmp/test/cacerts'" + +rc: + description: Keytool command execution return value. + returned: success + type: int + sample: "0" + cmd: description: Executed command to get action done. returned: success diff --git a/plugins/modules/java_keystore.py b/plugins/modules/java_keystore.py index c826c9af4c..df7e71abbe 100644 --- a/plugins/modules/java_keystore.py +++ b/plugins/modules/java_keystore.py @@ -24,8 +24,8 @@ options: name: description: - Name of the certificate in the keystore. - - If the provided name does not exist in the keystore, the module re-creates the keystore. This behavior changed in - community.general 3.0.0, before that the module would fail when the name did not match. + - If the provided name does not exist in the keystore, the module will re-create the keystore. This behavior changed + in community.general 3.0.0, before that the module would fail when the name did not match. type: str required: true certificate: @@ -62,7 +62,7 @@ options: password: description: - Password that should be used to secure the keystore. - - If the provided password fails to unlock the keystore, the module re-creates the keystore with the new passphrase. + - If the provided password fails to unlock the keystore, the module will re-create the keystore with the new passphrase. This behavior changed in community.general 3.0.0, before that the module would fail when the password did not match. type: str required: true @@ -130,7 +130,7 @@ notes: or with the P(ansible.builtin.file#lookup) lookup), while O(certificate_path) and O(private_key_path) require that the files are available on the target host. - By design, any change of a value of options O(keystore_type), O(name) or O(password), as well as changes of key or certificate - materials causes the existing O(dest) to be overwritten. + materials will cause the existing O(dest) to be overwritten. """ EXAMPLES = r""" @@ -166,12 +166,24 @@ EXAMPLES = r""" """ RETURN = r""" +msg: + description: Output from stdout of keytool/openssl command after execution of given command or an error. + returned: changed and failure + type: str + sample: "Unable to find the current certificate fingerprint in ..." + err: description: Output from stderr of keytool/openssl command after error of given command. returned: failure type: str sample: "Keystore password is too short - must be at least 6 characters\n" +rc: + description: Keytool/openssl command execution return value. + returned: changed and failure + type: int + sample: "0" + cmd: description: Executed command to get action done. returned: changed and failure diff --git a/plugins/modules/jenkins_build_info.py b/plugins/modules/jenkins_build_info.py index 85cb22ad2c..7d08ec91ce 100644 --- a/plugins/modules/jenkins_build_info.py +++ b/plugins/modules/jenkins_build_info.py @@ -30,7 +30,7 @@ options: build_number: description: - An integer which specifies a build of a job. - - If not specified the last build information is returned. + - If not specified the last build information will be returned. type: int password: description: diff --git a/plugins/modules/jenkins_credential.py b/plugins/modules/jenkins_credential.py index 3bd8a9dd7a..3aff19c96d 100644 --- a/plugins/modules/jenkins_credential.py +++ b/plugins/modules/jenkins_credential.py @@ -10,13 +10,13 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type DOCUMENTATION = r""" +--- module: jenkins_credential -short_description: Manage Jenkins credentials and domains through API +short_description: Manage Jenkins credentials and domains via API version_added: 11.1.0 description: - - This module allows managing Jenkins credentials and domain scopes through the Jenkins HTTP API. - - Create, update, and delete different credential types such as C(username/password), C(secret text), C(SSH key), C(certificates), - C(GitHub App), and domains. + - This module allows managing Jenkins credentials and domain scopes via the Jenkins HTTP API. + - Create, update, and delete different credential types such as C(username/password), C(secret text), C(SSH key), C(certificates), C(GitHub App), and domains. - For scoped domains (O(type=scope)), it supports restrictions based on V(hostname), V(hostname:port), V(path), and V(scheme). requirements: - urllib3 >= 1.26.0 @@ -170,7 +170,7 @@ options: inc_path: description: - List of URL paths to include when matching credentials to domains. - - 'B(Matching is hierarchical): subpaths of excluded paths are also excluded, even if explicitly included.' + - "B(Matching is hierarchical): subpaths of excluded paths are also excluded, even if explicitly included." type: list elements: str exc_path: @@ -565,7 +565,7 @@ def run_module(): name=dict(type="str"), username=dict(type="str"), password=dict(type="str", no_log=True), - file_path=dict(type="path"), + file_path=dict(type="path", default=None), secret=dict(type="str", no_log=True), appID=dict(type="str"), api_uri=dict(type="str", default="https://api.github.com"), diff --git a/plugins/modules/jenkins_job.py b/plugins/modules/jenkins_job.py index 8362a40255..93d922ed22 100644 --- a/plugins/modules/jenkins_job.py +++ b/plugins/modules/jenkins_job.py @@ -76,8 +76,8 @@ options: type: bool default: true description: - - If set to V(false), the SSL certificates are not validated. This should only set to V(false) used on personally controlled - sites using self-signed certificates as it avoids verifying the source site. + - If set to V(false), the SSL certificates will not be validated. This should only set to V(false) used on personally + controlled sites using self-signed certificates as it avoids verifying the source site. - The C(python-jenkins) library only handles this by using the environment variable E(PYTHONHTTPSVERIFY). version_added: 2.3.0 """ @@ -350,14 +350,14 @@ def job_config_to_string(xml_str): def main(): module = AnsibleModule( argument_spec=dict( - config=dict(type='str'), + config=dict(type='str', required=False), name=dict(type='str', required=True), - password=dict(type='str', no_log=True), - state=dict(type='str', choices=['present', 'absent'], default="present"), - enabled=dict(type='bool'), - token=dict(type='str', no_log=True), - url=dict(type='str', default="http://localhost:8080"), - user=dict(type='str'), + password=dict(type='str', required=False, no_log=True), + state=dict(type='str', required=False, choices=['present', 'absent'], default="present"), + enabled=dict(required=False, type='bool'), + token=dict(type='str', required=False, no_log=True), + url=dict(type='str', required=False, default="http://localhost:8080"), + user=dict(type='str', required=False), validate_certs=dict(type='bool', default=True), ), mutually_exclusive=[ diff --git a/plugins/modules/jenkins_job_info.py b/plugins/modules/jenkins_job_info.py index 37d9af3f56..638158fb44 100644 --- a/plugins/modules/jenkins_job_info.py +++ b/plugins/modules/jenkins_job_info.py @@ -53,7 +53,7 @@ options: - User to authenticate with the Jenkins server. validate_certs: description: - - If set to V(false), the SSL certificates are not validated. + - If set to V(false), the SSL certificates will not be validated. - This should only set to V(false) used on personally controlled sites using self-signed certificates. default: true type: bool diff --git a/plugins/modules/jenkins_node.py b/plugins/modules/jenkins_node.py index aa75100168..affd462659 100644 --- a/plugins/modules/jenkins_node.py +++ b/plugins/modules/jenkins_node.py @@ -65,9 +65,9 @@ options: offline_message: description: - Specifies the offline reason message to be set when configuring the Jenkins node state. - - If O(offline_message) is given and requested O(state) is not V(disabled), an error is raised. + - If O(offline_message) is given and requested O(state) is not V(disabled), an error will be raised. - Internally O(offline_message) is set using the V(toggleOffline) API, so updating the message when the node is already - offline (current state V(disabled)) is not possible. In this case, a warning is issued. + offline (current state V(disabled)) is not possible. In this case, a warning will be issued. type: str version_added: 10.0.0 """ diff --git a/plugins/modules/jenkins_plugin.py b/plugins/modules/jenkins_plugin.py index f47dcfe92f..73ff40c725 100644 --- a/plugins/modules/jenkins_plugin.py +++ b/plugins/modules/jenkins_plugin.py @@ -51,7 +51,7 @@ options: type: str description: - Desired plugin state. - - If set to V(latest), the check for new version is performed every time. This is suitable to keep the plugin up-to-date. + - If set to V(latest), the check for new version will be performed every time. This is suitable to keep the plugin up-to-date. choices: [absent, present, pinned, unpinned, enabled, disabled, latest] default: present timeout: @@ -64,8 +64,8 @@ options: description: - Number of seconds after which a new copy of the C(update-center.json) file is downloaded. This is used to avoid the need to download the plugin to calculate its checksum when O(state=latest) is specified. - - Set it to V(0) if no cache file should be used. In that case, the plugin file is always downloaded to calculate its - checksum when O(state=latest) is specified. + - Set it to V(0) if no cache file should be used. In that case, the plugin file will always be downloaded to calculate + its checksum when O(state=latest) is specified. default: 86400 updates_url: type: list diff --git a/plugins/modules/jenkins_script.py b/plugins/modules/jenkins_script.py index 5a00581366..bd30f9daa7 100644 --- a/plugins/modules/jenkins_script.py +++ b/plugins/modules/jenkins_script.py @@ -39,8 +39,8 @@ options: default: http://localhost:8080 validate_certs: description: - - If set to V(false), the SSL certificates are not validated. This should only set to V(false) used on personally controlled - sites using self-signed certificates as it avoids verifying the source site. + - If set to V(false), the SSL certificates will not be validated. This should only set to V(false) used on personally + controlled sites using self-signed certificates as it avoids verifying the source site. type: bool default: true user: @@ -142,12 +142,12 @@ def main(): module = AnsibleModule( argument_spec=dict( script=dict(required=True, type="str"), - url=dict(type="str", default="http://localhost:8080"), - validate_certs=dict(type="bool", default=True), - user=dict(type="str"), - password=dict(no_log=True, type="str"), - timeout=dict(type="int", default=10), - args=dict(type="dict") + url=dict(required=False, type="str", default="http://localhost:8080"), + validate_certs=dict(required=False, type="bool", default=True), + user=dict(required=False, type="str", default=None), + password=dict(required=False, no_log=True, type="str", default=None), + timeout=dict(required=False, type="int", default=10), + args=dict(required=False, type="dict", default=None) ) ) diff --git a/plugins/modules/jira.py b/plugins/modules/jira.py index f99c252675..580177d64d 100644 --- a/plugins/modules/jira.py +++ b/plugins/modules/jira.py @@ -117,13 +117,14 @@ options: suboptions: type: description: - - Use O(comment_visibility.type) to specify which of the JIRA visibility restriction types is used. + - Use type to specify which of the JIRA visibility restriction types will be used. type: str required: true choices: [group, role] value: description: - - Specify value corresponding to the type of visibility restriction. For example name of the group or role. + - Use value to specify value corresponding to the type of visibility restriction. For example name of the group + or role. type: str required: true version_added: '3.2.0' @@ -164,12 +165,12 @@ options: type: str required: false description: - - Set issue from which link is created. + - Set issue from which link will be created. outwardissue: type: str required: false description: - - Set issue to which link is created. + - Set issue to which link will be created. fields: type: dict required: false @@ -191,7 +192,7 @@ options: maxresults: required: false description: - - Limit the result of O(operation=search). If no value is specified, the default JIRA limit is used. + - Limit the result of O(operation=search). If no value is specified, the default jira limit will be used. - Used when O(operation=search) only, ignored otherwise. type: int version_added: '0.2.0' @@ -225,12 +226,12 @@ options: content: type: str description: - - The Base64 encoded contents of the file to attach. If not specified, the contents of O(attachment.filename) is - used instead. + - The Base64 encoded contents of the file to attach. If not specified, the contents of O(attachment.filename) will + be used instead. mimetype: type: str description: - - The MIME type to supply for the upload. If not specified, best-effort detection is performed. + - The MIME type to supply for the upload. If not specified, best-effort detection will be done. notes: - Currently this only works with basic-auth, or tokens. - To use with JIRA Cloud, pass the login e-mail as the O(username) and the API token as O(password). diff --git a/plugins/modules/kdeconfig.py b/plugins/modules/kdeconfig.py index ac542d04e8..4cc0fcf166 100644 --- a/plugins/modules/kdeconfig.py +++ b/plugins/modules/kdeconfig.py @@ -17,12 +17,12 @@ description: options: path: description: - - Path to the config file. If the file does not exist it is created. + - Path to the config file. If the file does not exist it will be created. type: path required: true kwriteconfig_path: description: - - Path to the kwriteconfig executable. If not specified, Ansible tries to discover it. + - Path to the kwriteconfig executable. If not specified, Ansible will try to discover it. type: path values: description: diff --git a/plugins/modules/keycloak_authentication_required_actions.py b/plugins/modules/keycloak_authentication_required_actions.py index 69183ce605..246963202f 100644 --- a/plugins/modules/keycloak_authentication_required_actions.py +++ b/plugins/modules/keycloak_authentication_required_actions.py @@ -49,7 +49,7 @@ options: type: dict defaultAction: description: - - Indicates whether new users have the required action assigned to them. + - Indicates, if any new user will have the required action assigned to it. type: bool enabled: description: @@ -149,7 +149,7 @@ end_state: type: dict defaultAction: description: - - Indicates whether new users have the required action assigned to them. + - Indicates, if any new user will have the required action assigned to it. sample: false type: bool enabled: diff --git a/plugins/modules/keycloak_authz_authorization_scope.py b/plugins/modules/keycloak_authz_authorization_scope.py index 78d70c7ee6..ef094830f5 100644 --- a/plugins/modules/keycloak_authz_authorization_scope.py +++ b/plugins/modules/keycloak_authz_authorization_scope.py @@ -37,8 +37,8 @@ options: state: description: - State of the authorization scope. - - On V(present), the authorization scope is created (or updated if it exists already). - - On V(absent), the authorization scope is removed if it exists. + - On V(present), the authorization scope will be created (or updated if it exists already). + - On V(absent), the authorization scope will be removed if it exists. choices: ['present', 'absent'] default: 'present' type: str @@ -142,8 +142,8 @@ def main(): state=dict(type='str', default='present', choices=['present', 'absent']), name=dict(type='str', required=True), - display_name=dict(type='str'), - icon_uri=dict(type='str'), + display_name=dict(type='str', required=False), + icon_uri=dict(type='str', required=False), client_id=dict(type='str', required=True), realm=dict(type='str', required=True) ) diff --git a/plugins/modules/keycloak_authz_custom_policy.py b/plugins/modules/keycloak_authz_custom_policy.py index 9607c0172c..132119f53f 100644 --- a/plugins/modules/keycloak_authz_custom_policy.py +++ b/plugins/modules/keycloak_authz_custom_policy.py @@ -38,8 +38,8 @@ options: state: description: - State of the custom policy. - - On V(present), the custom policy is created (or updated if it exists already). - - On V(absent), the custom policy is removed if it exists. + - On V(present), the custom policy will be created (or updated if it exists already). + - On V(absent), the custom policy will be removed if it exists. choices: ['present', 'absent'] default: 'present' type: str diff --git a/plugins/modules/keycloak_authz_permission.py b/plugins/modules/keycloak_authz_permission.py index 74bc6cf956..e931fd72f9 100644 --- a/plugins/modules/keycloak_authz_permission.py +++ b/plugins/modules/keycloak_authz_permission.py @@ -43,8 +43,8 @@ options: state: description: - State of the authorization permission. - - On V(present), the authorization permission is created (or updated if it exists already). - - On V(absent), the authorization permission is removed if it exists. + - On V(present), the authorization permission will be created (or updated if it exists already). + - On V(absent), the authorization permission will be removed if it exists. choices: ['present', 'absent'] default: 'present' type: str @@ -237,13 +237,13 @@ def main(): state=dict(type='str', default='present', choices=['present', 'absent']), name=dict(type='str', required=True), - description=dict(type='str'), + description=dict(type='str', required=False), permission_type=dict(type='str', choices=['scope', 'resource'], required=True), decision_strategy=dict(type='str', default='UNANIMOUS', choices=['UNANIMOUS', 'AFFIRMATIVE', 'CONSENSUS']), - resources=dict(type='list', elements='str', default=[]), - scopes=dict(type='list', elements='str', default=[]), - policies=dict(type='list', elements='str', default=[]), + resources=dict(type='list', elements='str', default=[], required=False), + scopes=dict(type='list', elements='str', default=[], required=False), + policies=dict(type='list', elements='str', default=[], required=False), client_id=dict(type='str', required=True), realm=dict(type='str', required=True) ) diff --git a/plugins/modules/keycloak_client.py b/plugins/modules/keycloak_client.py index 6c8a7b1383..0a7f3fe73f 100644 --- a/plugins/modules/keycloak_client.py +++ b/plugins/modules/keycloak_client.py @@ -37,8 +37,8 @@ options: state: description: - State of the client. - - On V(present), the client are created (or updated if it exists already). - - On V(absent), the client are removed if it exists. + - On V(present), the client will be created (or updated if it exists already). + - On V(absent), the client will be removed if it exists. choices: ['present', 'absent'] default: 'present' type: str @@ -116,8 +116,8 @@ options: secret: description: - When using O(client_authenticator_type=client-secret) (the default), you can specify a secret here (otherwise one - is generated if it does not exit). If changing this secret, the module does not register a change currently (but the - changed secret is saved). + will be generated if it does not exit). If changing this secret, the module will not register a change currently (but + the changed secret will be saved). type: str registration_access_token: @@ -130,8 +130,8 @@ options: default_roles: description: - - List of default roles for this client. If the client roles referenced do not exist yet, they are created. This is - C(defaultRoles) in the Keycloak REST API. + - List of default roles for this client. If the client roles referenced do not exist yet, they will be created. This + is C(defaultRoles) in the Keycloak REST API. aliases: - defaultRoles type: list @@ -232,7 +232,7 @@ options: protocol: description: - Type of client. - - At creation only, default value is V(openid-connect) if O(protocol) is omitted. + - At creation only, default value will be V(openid-connect) if O(protocol) is omitted. - The V(docker-v2) value was added in community.general 8.6.0. type: str choices: ['openid-connect', 'saml', 'docker-v2'] @@ -261,7 +261,7 @@ options: client_template: description: - - Client template to use for this client. If it does not exist this field is silently dropped. This is C(clientTemplate) + - Client template to use for this client. If it does not exist this field will silently be dropped. This is C(clientTemplate) in the Keycloak REST API. type: str aliases: @@ -454,7 +454,7 @@ options: - A dict of further attributes for this client. This can contain various configuration settings; an example is given in the examples section. While an exhaustive list of permissible options is not available; possible options as of Keycloak 3.4 are listed below. The Keycloak API does not validate whether a given option is appropriate for the protocol - used; if specified anyway, Keycloak does not use it. + used; if specified anyway, Keycloak will simply not use it. type: dict suboptions: saml.authnstatement: @@ -532,7 +532,7 @@ options: - For OpenID-Connect clients, client certificate for validating JWT issued by client and signed by its key, base64-encoded. x509.subjectdn: description: - - For OpenID-Connect clients, subject which is used to authenticate the client. + - For OpenID-Connect clients, subject which will be used to authenticate the client. type: str version_added: 9.5.0 @@ -704,31 +704,19 @@ proposed: description: Representation of proposed client. returned: always type: dict - sample: {"clientId": "test"} + sample: {clientId: "test"} existing: description: Representation of existing client (sample is truncated). returned: always type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} end_state: description: Representation of client after module execution (sample is truncated). returned: on success type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} """ from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \ diff --git a/plugins/modules/keycloak_client_rolemapping.py b/plugins/modules/keycloak_client_rolemapping.py index 1700c99cc1..ff41486873 100644 --- a/plugins/modules/keycloak_client_rolemapping.py +++ b/plugins/modules/keycloak_client_rolemapping.py @@ -22,9 +22,9 @@ description: the scope tailored to your needs and a user having the expected roles. - The names of module options are snake_cased versions of the camelCase ones found in the Keycloak API and its documentation at U(https://www.keycloak.org/docs-api/8.0/rest-api/index.html). - - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and are returned that way - by this module. You may pass single values for attributes when calling the module, and this is translated into a list - suitable for the API. + - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and will be returned that + way by this module. You may pass single values for attributes when calling the module, and this will be translated into + a list suitable for the API. - When updating a client_rolemapping, where possible provide the role ID to the module. This removes a lookup to the API to translate the name into the role ID. attributes: @@ -39,9 +39,9 @@ options: state: description: - State of the client_rolemapping. - - On V(present), the client_rolemapping is created if it does not yet exist, or updated with the parameters - you provide. - - On V(absent), the client_rolemapping is removed if it exists. + - On V(present), the client_rolemapping will be created if it does not yet exist, or updated with the parameters you + provide. + - On V(absent), the client_rolemapping will be removed if it exists. default: 'present' type: str choices: @@ -87,8 +87,8 @@ options: type: str description: - ID of the group to be mapped. - - This parameter is not required for updating or deleting the rolemapping but providing it reduces the number of API - calls required. + - This parameter is not required for updating or deleting the rolemapping but providing it will reduce the number of + API calls required. client_id: type: str description: @@ -98,8 +98,8 @@ options: type: str description: - ID of the client to be mapped. - - This parameter is not required for updating or deleting the rolemapping but providing it reduces the number of API - calls required. + - This parameter is not required for updating or deleting the rolemapping but providing it will reduce the number of + API calls required. roles: description: - Roles to be mapped to the group. @@ -115,8 +115,8 @@ options: type: str description: - The unique identifier for this role_representation. - - This parameter is not required for updating or deleting a role_representation but providing it reduces the number - of API calls required. + - This parameter is not required for updating or deleting a role_representation but providing it will reduce the + number of API calls required. extends_documentation_fragment: - community.general.keycloak - community.general.keycloak.actiongroup_keycloak @@ -209,7 +209,7 @@ proposed: description: Representation of proposed client role mapping. returned: always type: dict - sample: {"clientId": "test"} + sample: {clientId: "test"} existing: description: @@ -217,13 +217,7 @@ existing: - The sample is truncated. returned: always type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} end_state: description: @@ -231,13 +225,7 @@ end_state: - The sample is truncated. returned: on success type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} """ from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import ( diff --git a/plugins/modules/keycloak_client_rolescope.py b/plugins/modules/keycloak_client_rolescope.py index fcf57c2e4a..db11f37098 100644 --- a/plugins/modules/keycloak_client_rolescope.py +++ b/plugins/modules/keycloak_client_rolescope.py @@ -22,9 +22,9 @@ description: In a default Keycloak installation, admin-cli and an admin user would work, as would a separate client definition with the scope tailored to your needs and a user having the expected roles. - Client O(client_id) must have O(community.general.keycloak_client#module:full_scope_allowed) set to V(false). - - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and are returned that way - by this module. You may pass single values for attributes when calling the module, and this is translated into a list - suitable for the API. + - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and will be returned that + way by this module. You may pass single values for attributes when calling the module, and this will be translated into + a list suitable for the API. attributes: check_mode: support: full @@ -37,8 +37,8 @@ options: state: description: - State of the role mapping. - - On V(present), all roles in O(role_names) are mapped if not exist yet. - - On V(absent), all roles mapping in O(role_names) are removed if it exists. + - On V(present), all roles in O(role_names) will be mapped if not exists yet. + - On V(absent), all roles mapping in O(role_names) will be removed if it exists. default: 'present' type: str choices: diff --git a/plugins/modules/keycloak_clientscope.py b/plugins/modules/keycloak_clientscope.py index ddb4e1b04b..ed9fe97043 100644 --- a/plugins/modules/keycloak_clientscope.py +++ b/plugins/modules/keycloak_clientscope.py @@ -22,9 +22,9 @@ description: the scope tailored to your needs and a user having the expected roles. - The names of module options are snake_cased versions of the camelCase ones found in the Keycloak API and its documentation at U(https://www.keycloak.org/docs-api/8.0/rest-api/index.html). - - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and are returned that way - by this module. You may pass single values for attributes when calling the module, and this is translated into a list - suitable for the API. + - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and will be returned that + way by this module. You may pass single values for attributes when calling the module, and this will be translated into + a list suitable for the API. - When updating a client_scope, where possible provide the client_scope ID to the module. This removes a lookup to the API to translate the name into the client_scope ID. attributes: @@ -39,8 +39,8 @@ options: state: description: - State of the client_scope. - - On V(present), the client_scope is created if it does not yet exist, or updated with the parameters you provide. - - On V(absent), the client_scope is removed if it exists. + - On V(present), the client_scope will be created if it does not yet exist, or updated with the parameters you provide. + - On V(absent), the client_scope will be removed if it exists. default: 'present' type: str choices: @@ -62,8 +62,8 @@ options: type: str description: - The unique identifier for this client_scope. - - This parameter is not required for updating or deleting a client_scope but providing it reduces the number of API - calls required. + - This parameter is not required for updating or deleting a client_scope but providing it will reduce the number of + API calls required. description: type: str description: @@ -263,31 +263,19 @@ proposed: description: Representation of proposed client scope. returned: always type: dict - sample: {"clientId": "test"} + sample: {clientId: "test"} existing: description: Representation of existing client scope (sample is truncated). returned: always type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} end_state: description: Representation of client scope after module execution (sample is truncated). returned: on success type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} """ from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \ diff --git a/plugins/modules/keycloak_clientscope_type.py b/plugins/modules/keycloak_clientscope_type.py index 85308f1a22..493363f391 100644 --- a/plugins/modules/keycloak_clientscope_type.py +++ b/plugins/modules/keycloak_clientscope_type.py @@ -99,43 +99,20 @@ proposed: description: Representation of proposed client-scope types mapping. returned: always type: dict - sample: - { - "default_clientscopes": [ - "profile", - "role" - ], - "optional_clientscopes": [] - } + sample: {default_clientscopes: ["profile", "role"], optional_clientscopes: []} existing: description: - Representation of client scopes before module execution. returned: always type: dict - sample: - { - "default_clientscopes": [ - "profile", - "role" - ], - "optional_clientscopes": [ - "phone" - ] - } + sample: {default_clientscopes: ["profile", "role"], optional_clientscopes: ["phone"]} end_state: description: - Representation of client scopes after module execution. - The sample is truncated. returned: on success type: dict - sample: - { - "default_clientscopes": [ - "profile", - "role" - ], - "optional_clientscopes": [] - } + sample: {default_clientscopes: ["profile", "role"], optional_clientscopes: []} """ from ansible.module_utils.basic import AnsibleModule diff --git a/plugins/modules/keycloak_clientsecret_info.py b/plugins/modules/keycloak_clientsecret_info.py index 0ea48f6a33..da07d03248 100644 --- a/plugins/modules/keycloak_clientsecret_info.py +++ b/plugins/modules/keycloak_clientsecret_info.py @@ -39,8 +39,8 @@ options: id: description: - The unique identifier for this client. - - This parameter is not required for getting or generating a client secret but providing it reduces the number of API - calls required. + - This parameter is not required for getting or generating a client secret but providing it will reduce the number of + API calls required. type: str client_id: diff --git a/plugins/modules/keycloak_clientsecret_regenerate.py b/plugins/modules/keycloak_clientsecret_regenerate.py index 2bcaeb3705..bb449abc10 100644 --- a/plugins/modules/keycloak_clientsecret_regenerate.py +++ b/plugins/modules/keycloak_clientsecret_regenerate.py @@ -43,8 +43,8 @@ options: id: description: - The unique identifier for this client. - - This parameter is not required for getting or generating a client secret but providing it reduces the number of API - calls required. + - This parameter is not required for getting or generating a client secret but providing it will reduce the number of + API calls required. type: str client_id: diff --git a/plugins/modules/keycloak_clienttemplate.py b/plugins/modules/keycloak_clienttemplate.py index ee357605f1..53b1266c7c 100644 --- a/plugins/modules/keycloak_clienttemplate.py +++ b/plugins/modules/keycloak_clienttemplate.py @@ -35,8 +35,8 @@ options: state: description: - State of the client template. - - On V(present), the client template is created (or updated if it exists already). - - On V(absent), the client template is removed if it exists. + - On V(present), the client template will be created (or updated if it exists already). + - On V(absent), the client template will be removed if it exists. choices: ['present', 'absent'] default: 'present' type: str @@ -238,7 +238,10 @@ proposed: description: Representation of proposed client template. returned: always type: dict - sample: {"name": "test01"} + sample: + { + "name": "test01" + } existing: description: Representation of existing client template (sample is truncated). diff --git a/plugins/modules/keycloak_component.py b/plugins/modules/keycloak_component.py index 8b0c67b321..15c3c8e731 100644 --- a/plugins/modules/keycloak_component.py +++ b/plugins/modules/keycloak_component.py @@ -35,8 +35,8 @@ options: state: description: - State of the Keycloak component. - - On V(present), the component is created (or updated if it exists already). - - On V(absent), the component is removed if it exists. + - On V(present), the component will be created (or updated if it exists already). + - On V(absent), the component will be removed if it exists. choices: ['present', 'absent'] default: 'present' type: str diff --git a/plugins/modules/keycloak_group.py b/plugins/modules/keycloak_group.py index 7053b33a35..865b52213a 100644 --- a/plugins/modules/keycloak_group.py +++ b/plugins/modules/keycloak_group.py @@ -20,9 +20,9 @@ description: scope tailored to your needs and a user having the expected roles. - The names of module options are snake_cased versions of the camelCase ones found in the Keycloak API and its documentation at U(https://www.keycloak.org/docs-api/20.0.2/rest-api/index.html). - - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and are returned that way - by this module. You may pass single values for attributes when calling the module, and this is translated into a list - suitable for the API. + - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and will be returned that + way by this module. You may pass single values for attributes when calling the module, and this will be translated into + a list suitable for the API. - When updating a group, where possible provide the group ID to the module. This removes a lookup to the API to translate the name into the group ID. attributes: @@ -37,9 +37,9 @@ options: state: description: - State of the group. - - On V(present), the group is created if it does not yet exist, or updated with the parameters you provide. - - On V(absent), the group is removed if it exists. Be aware that absenting a group with subgroups automatically deletes - all its subgroups too. + - On V(present), the group will be created if it does not yet exist, or updated with the parameters you provide. + - On V(absent), the group will be removed if it exists. Be aware that absenting a group with subgroups will automatically + delete all its subgroups too. default: 'present' type: str choices: @@ -61,7 +61,8 @@ options: type: str description: - The unique identifier for this group. - - This parameter is not required for updating or deleting a group but providing it reduces the number of API calls required. + - This parameter is not required for updating or deleting a group but providing it will reduce the number of API calls + required. attributes: type: dict description: @@ -281,7 +282,8 @@ end_state: returned: always sample: [] subGroups: - description: A list of groups that are children of this group. These groups have the same parameters as documented here. + description: A list of groups that are children of this group. These groups will have the same parameters as documented + here. type: list returned: always clientRoles: diff --git a/plugins/modules/keycloak_identity_provider.py b/plugins/modules/keycloak_identity_provider.py index 40a06846d6..eea168a14b 100644 --- a/plugins/modules/keycloak_identity_provider.py +++ b/plugins/modules/keycloak_identity_provider.py @@ -34,8 +34,9 @@ options: state: description: - State of the identity provider. - - On V(present), the identity provider is created if it does not yet exist, or updated with the parameters you provide. - - On V(absent), the identity provider is removed if it exists. + - On V(present), the identity provider will be created if it does not yet exist, or updated with the parameters you + provide. + - On V(absent), the identity provider will be removed if it exists. default: 'present' type: str choices: @@ -147,14 +148,14 @@ options: sync_mode: description: - - Default sync mode for all mappers. The sync mode determines when user data is synced using the mappers. + - Default sync mode for all mappers. The sync mode determines when user data will be synced using the mappers. aliases: - syncMode type: str issuer: description: - - The issuer identifier for the issuer of the response. If not provided, no validation is performed. + - The issuer identifier for the issuer of the response. If not provided, no validation will be performed. type: str authorizationUrl: @@ -204,7 +205,7 @@ options: useJwksUrl: description: - - If V(true), identity provider public keys are downloaded from given JWKS URL. + - If the switch is on, identity provider public keys will be downloaded from given JWKS URL. type: bool jwksUrl: @@ -214,7 +215,7 @@ options: entityId: description: - - The Entity ID that is used to uniquely identify this SAML Service Provider. + - The Entity ID that will be used to uniquely identify this SAML Service Provider. type: str singleSignOnServiceUrl: diff --git a/plugins/modules/keycloak_realm.py b/plugins/modules/keycloak_realm.py index c8bc7dc7df..c2d4dceb21 100644 --- a/plugins/modules/keycloak_realm.py +++ b/plugins/modules/keycloak_realm.py @@ -39,8 +39,8 @@ options: state: description: - State of the realm. - - On V(present), the realm is created (or updated if it exists already). - - On V(absent), the realm is removed if it exists. + - On V(present), the realm will be created (or updated if it exists already). + - On V(absent), the realm will be removed if it exists. choices: ['present', 'absent'] default: 'present' type: str @@ -553,31 +553,19 @@ proposed: description: Representation of proposed realm. returned: always type: dict - sample: {"realm": "test"} + sample: {realm: "test"} existing: description: Representation of existing realm (sample is truncated). returned: always type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} end_state: description: Representation of realm after module execution (sample is truncated). returned: on success type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} """ from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \ diff --git a/plugins/modules/keycloak_realm_info.py b/plugins/modules/keycloak_realm_info.py index 501ca48c21..838b19513d 100644 --- a/plugins/modules/keycloak_realm_info.py +++ b/plugins/modules/keycloak_realm_info.py @@ -19,9 +19,9 @@ description: - This module allows you to get Keycloak realm public information using the Keycloak REST API. - The names of module options are snake_cased versions of the camelCase ones found in the Keycloak API and its documentation at U(https://www.keycloak.org/docs-api/8.0/rest-api/index.html). - - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and are returned that way - by this module. You may pass single values for attributes when calling the module, and this is translated into a list - suitable for the API. + - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and will be returned that + way by this module. You may pass single values for attributes when calling the module, and this will be translated into + a list suitable for the API. extends_documentation_fragment: - community.general.attributes - community.general.attributes.info_module diff --git a/plugins/modules/keycloak_realm_key.py b/plugins/modules/keycloak_realm_key.py index dbb284ec4b..4f6caa4464 100644 --- a/plugins/modules/keycloak_realm_key.py +++ b/plugins/modules/keycloak_realm_key.py @@ -25,9 +25,11 @@ description: at U(https://www.keycloak.org/docs-api/8.0/rest-api/index.html). Aliases are provided so camelCased versions can be used as well. - This module is unable to detect changes to the actual cryptographic key after importing it. However, if some other property - is changed alongside the cryptographic key, then the key also changes as a side-effect, as the JSON payload needs to include - the private key. This can be considered either a bug or a feature, as the alternative would be to always update the realm - key whether it has changed or not. + is changed alongside the cryptographic key, then the key will also get changed as a side-effect, as the JSON payload needs + to include the private key. This can be considered either a bug or a feature, as the alternative would be to always update + the realm key whether it has changed or not. + - If certificate is not explicitly provided it will be dynamically created by Keycloak. Therefore comparing the current + state of the certificate to the desired state (which may be empty) is not possible. attributes: check_mode: support: full @@ -40,8 +42,8 @@ options: state: description: - State of the keycloak realm key. - - On V(present), the realm key is created (or updated if it exists already). - - On V(absent), the realm key is removed if it exists. + - On V(present), the realm key will be created (or updated if it exists already). + - On V(absent), the realm key will be removed if it exists. choices: ['present', 'absent'] default: 'present' type: str @@ -117,10 +119,10 @@ options: notes: - Current value of the private key cannot be fetched from Keycloak. Therefore comparing its desired state to the current state is not possible. - - If O(config.certificate) is not explicitly provided it is dynamically created by Keycloak. Therefore comparing the current + - If certificate is not explicitly provided it will be dynamically created by Keycloak. Therefore comparing the current state of the certificate to the desired state (which may be empty) is not possible. - Due to the private key and certificate options the module is B(not fully idempotent). You can use O(force=true) to force - the module to ensure updating if you know that the private key might have changed. + the module to always update if you know that the private key might have changed. extends_documentation_fragment: - community.general.keycloak - community.general.keycloak.actiongroup_keycloak @@ -206,21 +208,7 @@ end_state: description: Realm key configuration. type: dict returned: when O(state=present) - sample: - { - "active": [ - "true" - ], - "algorithm": [ - "RS256" - ], - "enabled": [ - "true" - ], - "priority": [ - "140" - ] - } + sample: {"active": ["true"], "algorithm": ["RS256"], "enabled": ["true"], "priority": ["140"]} """ from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \ diff --git a/plugins/modules/keycloak_realm_rolemapping.py b/plugins/modules/keycloak_realm_rolemapping.py index 2b6b6a4eda..2e3366d422 100644 --- a/plugins/modules/keycloak_realm_rolemapping.py +++ b/plugins/modules/keycloak_realm_rolemapping.py @@ -22,9 +22,9 @@ description: definition with the scope tailored to your needs and a user having the expected roles. - The names of module options are snake_cased versions of the camelCase ones found in the Keycloak API and its documentation at U(https://www.keycloak.org/docs-api/18.0/rest-api/index.html). - - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and are returned that way - by this module. You may pass single values for attributes when calling the module, and this is translated into a list - suitable for the API. + - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and will be returned that + way by this module. You may pass single values for attributes when calling the module, and this will be translated into + a list suitable for the API. - When updating a group_rolemapping, where possible provide the role ID to the module. This removes a lookup to the API to translate the name into the role ID. attributes: @@ -39,8 +39,9 @@ options: state: description: - State of the realm_rolemapping. - - On C(present), the realm_rolemapping is created if it does not yet exist, or updated with the parameters you provide. - - On C(absent), the realm_rolemapping is removed if it exists. + - On C(present), the realm_rolemapping will be created if it does not yet exist, or updated with the parameters you + provide. + - On C(absent), the realm_rolemapping will be removed if it exists. default: 'present' type: str choices: @@ -85,8 +86,8 @@ options: type: str description: - ID of the group to be mapped. - - This parameter is not required for updating or deleting the rolemapping but providing it reduces the number of API - calls required. + - This parameter is not required for updating or deleting the rolemapping but providing it will reduce the number of + API calls required. roles: description: - Roles to be mapped to the group. @@ -102,8 +103,8 @@ options: type: str description: - The unique identifier for this role_representation. - - This parameter is not required for updating or deleting a role_representation but providing it reduces the number - of API calls required. + - This parameter is not required for updating or deleting a role_representation but providing it will reduce the + number of API calls required. extends_documentation_fragment: - community.general.keycloak - community.general.keycloak.actiongroup_keycloak @@ -194,7 +195,7 @@ proposed: description: Representation of proposed client role mapping. returned: always type: dict - sample: {"clientId": "test"} + sample: {clientId: "test"} existing: description: @@ -202,13 +203,7 @@ existing: - The sample is truncated. returned: always type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} end_state: description: @@ -216,13 +211,7 @@ end_state: - The sample is truncated. returned: on success type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} """ from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import ( diff --git a/plugins/modules/keycloak_role.py b/plugins/modules/keycloak_role.py index 5b706354ed..c9979653c5 100644 --- a/plugins/modules/keycloak_role.py +++ b/plugins/modules/keycloak_role.py @@ -22,9 +22,9 @@ description: scope tailored to your needs and a user having the expected roles. - The names of module options are snake_cased versions of the camelCase ones found in the Keycloak API and its documentation at U(https://www.keycloak.org/docs-api/8.0/rest-api/index.html). - - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and are returned that way - by this module. You may pass single values for attributes when calling the module, and this is translated into a list - suitable for the API. + - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and will be returned that + way by this module. You may pass single values for attributes when calling the module, and this will be translated into + a list suitable for the API. attributes: check_mode: support: full @@ -37,8 +37,8 @@ options: state: description: - State of the role. - - On V(present), the role is created if it does not yet exist, or updated with the parameters you provide. - - On V(absent), the role is removed if it exists. + - On V(present), the role will be created if it does not yet exist, or updated with the parameters you provide. + - On V(absent), the role will be removed if it exists. default: 'present' type: str choices: @@ -195,7 +195,10 @@ proposed: description: Representation of proposed role. returned: always type: dict - sample: {"description": "My updated test description"} + sample: + { + "description": "My updated test description" + } existing: description: Representation of existing role. @@ -244,7 +247,7 @@ def main(): composites_spec = dict( name=dict(type='str', required=True), - client_id=dict(type='str', aliases=['clientId']), + client_id=dict(type='str', aliases=['clientId'], required=False), state=dict(type='str', default='present', choices=['present', 'absent']) ) diff --git a/plugins/modules/keycloak_user.py b/plugins/modules/keycloak_user.py index 2b3c838483..83bf8f5d02 100644 --- a/plugins/modules/keycloak_user.py +++ b/plugins/modules/keycloak_user.py @@ -101,9 +101,9 @@ options: groups: description: - List of groups for the user. - - Groups can be referenced by their name, like V(staff), or their path, like V(/staff/engineering). The path syntax - allows you to reference subgroups, which is not possible otherwise. - - Using the path is possible since community.general 10.6.0. + Groups can be referenced by their name, like V(staff), or their path, like V(/staff/engineering). + The path syntax allows you to reference subgroups, which is not possible otherwise. + This is possible since community.general 10.6.0. type: list elements: dict default: [] @@ -332,6 +332,11 @@ EXAMPLES = r""" """ RETURN = r""" +msg: + description: Message as to what action was taken. + returned: always + type: str + sample: User f18c709c-03d6-11ee-970b-c74bf2721112 created proposed: description: Representation of the proposed user. returned: on success @@ -344,6 +349,10 @@ end_state: description: Representation of the user after module execution. returned: on success type: dict +changed: + description: Return V(true) if the operation changed the user on the keycloak server, V(false) otherwise. + returned: always + type: bool """ from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \ diff --git a/plugins/modules/keycloak_user_federation.py b/plugins/modules/keycloak_user_federation.py index 3290ab8dd9..b3b86111c0 100644 --- a/plugins/modules/keycloak_user_federation.py +++ b/plugins/modules/keycloak_user_federation.py @@ -34,8 +34,8 @@ options: state: description: - State of the user federation. - - On V(present), the user federation is created if it does not yet exist, or updated with the parameters you provide. - - On V(absent), the user federation is removed if it exists. + - On V(present), the user federation will be created if it does not yet exist, or updated with the parameters you provide. + - On V(absent), the user federation will be removed if it exists. default: 'present' type: str choices: @@ -50,7 +50,7 @@ options: id: description: - - The unique ID for this user federation. If left empty, the user federation is searched by its O(name). + - The unique ID for this user federation. If left empty, the user federation will be searched by its O(name). type: str name: @@ -76,7 +76,7 @@ options: parent_id: description: - - Unique ID for the parent of this user federation. Realm ID is automatically used if left blank. + - Unique ID for the parent of this user federation. Realm ID will be automatically used if left blank. aliases: - parentId type: str @@ -95,11 +95,11 @@ options: value with the desired value always evaluates to not equal. This means the before and desired states are never equal if the parameter is set. - Set to V(always) to include O(config.bindCredential) in the comparison of before and desired state. Because of the - redacted value returned by Keycloak the module always detects a change and make an update if a O(config.bindCredential) + redacted value returned by Keycloak the module will always detect a change and make an update if a O(config.bindCredential) value is set. - Set to V(only_indirect) to exclude O(config.bindCredential) when comparing the before state with the desired state. - The value of O(config.bindCredential) is only updated if there are other changes to the user federation that require - an update. + The value of O(config.bindCredential) will only be updated if there are other changes to the user federation that + require an update. type: str default: always choices: @@ -129,14 +129,14 @@ options: importEnabled: description: - - If V(true), LDAP users are imported into Keycloak DB and synced by the configured sync policies. + - If V(true), LDAP users will be imported into Keycloak DB and synced by the configured sync policies. default: true type: bool editMode: description: - - V(READ_ONLY) is a read-only LDAP store. V(WRITABLE) means data is synced back to LDAP on demand. V(UNSYNCED) means - user data is imported, but not synced back to LDAP. + - V(READ_ONLY) is a read-only LDAP store. V(WRITABLE) means data will be synced back to LDAP on demand. V(UNSYNCED) + means user data will be imported, but not synced back to LDAP. type: str choices: - READ_ONLY @@ -181,7 +181,7 @@ options: userObjectClasses: description: - All values of LDAP objectClass attribute for users in LDAP divided by comma. For example V(inetOrgPerson, organizationalPerson). - Newly created Keycloak users are written to LDAP with all those object classes and existing LDAP user records + Newly created Keycloak users will be written to LDAP with all those object classes and existing LDAP user records are found just if they contain all those object classes. type: str @@ -222,7 +222,7 @@ options: bindDn: description: - - DN of LDAP user which is used by Keycloak to access LDAP server. + - DN of LDAP user which will be used by Keycloak to access LDAP server. type: str bindCredential: @@ -232,7 +232,7 @@ options: startTls: description: - - Encrypts the connection to LDAP using STARTTLS, which disables connection pooling. + - Encrypts the connection to LDAP using STARTTLS, which will disable connection pooling. default: false type: bool @@ -258,11 +258,11 @@ options: useTruststoreSpi: description: - - Specifies whether LDAP connection uses the truststore SPI with the truststore configured in standalone.xml/domain.xml. - V(always) means that it always uses it. V(never) means that it does not use it. V(ldapsOnly) means that it uses - if your connection URL use ldaps. + - Specifies whether LDAP connection will use the truststore SPI with the truststore configured in standalone.xml/domain.xml. + V(always) means that it will always use it. V(never) means that it will not use it. V(ldapsOnly) means that it + will use if your connection URL use ldaps. - Note even if standalone.xml/domain.xml is not configured, the default Java cacerts or certificate specified by - C(javax.net.ssl.trustStore) property is used. + C(javax.net.ssl.trustStore) property will be used. default: ldapsOnly type: str choices: @@ -335,8 +335,8 @@ options: allowKerberosAuthentication: description: - - Enable/disable HTTP authentication of users with SPNEGO/Kerberos tokens. The data about authenticated users is - provisioned from this LDAP server. + - Enable/disable HTTP authentication of users with SPNEGO/Kerberos tokens. The data about authenticated users will + be provisioned from this LDAP server. default: false type: bool @@ -348,9 +348,9 @@ options: krbPrincipalAttribute: description: - Name of the LDAP attribute, which refers to Kerberos principal. This is used to lookup appropriate LDAP user after - successful Kerberos/SPNEGO authentication in Keycloak. When this is empty, the LDAP user is looked up based on - LDAP username corresponding to the first part of his Kerberos principal. For instance, for principal C(john@KEYCLOAK.ORG), - it assumes that LDAP username is V(john). + successful Kerberos/SPNEGO authentication in Keycloak. When this is empty, the LDAP user will be looked based + on LDAP username corresponding to the first part of his Kerberos principal. For instance, for principal C(john@KEYCLOAK.ORG), + it will assume that LDAP username is V(john). type: str version_added: 8.1.0 @@ -419,17 +419,17 @@ options: evictionDay: description: - - Day of the week the entry is set to become invalid on. + - Day of the week the entry will become invalid on. type: str evictionHour: description: - - Hour of day the entry is set to become invalid on. + - Hour of day the entry will become invalid on. type: str evictionMinute: description: - - Minute of day the entry is set to become invalid on. + - Minute of day the entry will become invalid on. type: str maxLifespan: @@ -461,12 +461,12 @@ options: name: description: - - Name of the mapper. If no ID is given, the mapper is searched by name. + - Name of the mapper. If no ID is given, the mapper will be searched by name. type: str parentId: description: - - Unique ID for the parent of this mapper. ID of the user federation is automatically used if left blank. + - Unique ID for the parent of this mapper. ID of the user federation will automatically be used if left blank. type: str providerId: diff --git a/plugins/modules/keycloak_user_rolemapping.py b/plugins/modules/keycloak_user_rolemapping.py index 49d71e2ca9..794ea369d7 100644 --- a/plugins/modules/keycloak_user_rolemapping.py +++ b/plugins/modules/keycloak_user_rolemapping.py @@ -21,9 +21,9 @@ description: the scope tailored to your needs and a user having the expected roles. - The names of module options are snake_cased versions of the camelCase ones found in the Keycloak API and its documentation at U(https://www.keycloak.org/docs-api/8.0/rest-api/index.html). - - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and are returned that way - by this module. You may pass single values for attributes when calling the module, and this is translated into a list - suitable for the API. + - Attributes are multi-valued in the Keycloak API. All attributes are lists of individual values and will be returned that + way by this module. You may pass single values for attributes when calling the module, and this will be translated into + a list suitable for the API. - When updating a user_rolemapping, where possible provide the role ID to the module. This removes a lookup to the API to translate the name into the role ID. attributes: @@ -38,8 +38,8 @@ options: state: description: - State of the user_rolemapping. - - On V(present), the user_rolemapping is created if it does not yet exist, or updated with the parameters you provide. - - On V(absent), the user_rolemapping is removed if it exists. + - On V(present), the user_rolemapping will be created if it does not yet exist, or updated with the parameters you provide. + - On V(absent), the user_rolemapping will be removed if it exists. default: 'present' type: str choices: @@ -61,14 +61,14 @@ options: type: str description: - ID of the user to be mapped. - - This parameter is not required for updating or deleting the rolemapping but providing it reduces the number of API - calls required. + - This parameter is not required for updating or deleting the rolemapping but providing it will reduce the number of + API calls required. service_account_user_client_id: type: str description: - Client ID of the service-account-user to be mapped. - - This parameter is not required for updating or deleting the rolemapping but providing it reduces the number of API - calls required. + - This parameter is not required for updating or deleting the rolemapping but providing it will reduce the number of + API calls required. client_id: type: str description: @@ -79,8 +79,8 @@ options: type: str description: - ID of the client to be mapped. - - This parameter is not required for updating or deleting the rolemapping but providing it reduces the number of API - calls required. + - This parameter is not required for updating or deleting the rolemapping but providing it will reduce the number of + API calls required. roles: description: - Roles to be mapped to the user. @@ -96,8 +96,8 @@ options: type: str description: - The unique identifier for this role_representation. - - This parameter is not required for updating or deleting a role_representation but providing it reduces the number - of API calls required. + - This parameter is not required for updating or deleting a role_representation but providing it will reduce the + number of API calls required. extends_documentation_fragment: - community.general.keycloak - community.general.keycloak.actiongroup_keycloak @@ -190,7 +190,7 @@ proposed: description: Representation of proposed client role mapping. returned: always type: dict - sample: {"clientId": "test"} + sample: {clientId: "test"} existing: description: @@ -198,13 +198,7 @@ existing: - The sample is truncated. returned: always type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} end_state: description: @@ -212,13 +206,7 @@ end_state: - The sample is truncated. returned: on success type: dict - sample: - { - "adminUrl": "http://www.example.com/admin_url", - "attributes": { - "request.object.signature.alg": "RS256" - } - } + sample: {"adminUrl": "http://www.example.com/admin_url", "attributes": {"request.object.signature.alg": "RS256"}} """ from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, \ diff --git a/plugins/modules/keycloak_userprofile.py b/plugins/modules/keycloak_userprofile.py index 9760a17ecf..a79ca93890 100644 --- a/plugins/modules/keycloak_userprofile.py +++ b/plugins/modules/keycloak_userprofile.py @@ -33,8 +33,9 @@ options: state: description: - State of the User Profile provider. - - On V(present), the User Profile provider is created if it does not yet exist, or updated with the parameters you provide. - - On V(absent), the User Profile provider is removed if it exists. + - On V(present), the User Profile provider will be created if it does not yet exist, or updated with the parameters + you provide. + - On V(absent), the User Profile provider will be removed if it exists. default: 'present' type: str choices: @@ -170,7 +171,7 @@ options: group: description: - - Specifies the User Profile group where this attribute is added. + - Specifies the User Profile group where this attribute will be added. type: str permissions: @@ -405,6 +406,7 @@ data: description: The data returned by the Keycloak API. returned: when state is present type: dict + sample: {'...': '...'} """ from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \ @@ -454,6 +456,7 @@ def main(): ), config=dict( type='dict', + required=False, options={ 'kc_user_profile_config': dict( type='list', @@ -463,6 +466,7 @@ def main(): 'attributes': dict( type='list', elements='dict', + required=False, options={ 'name': dict(type='str', required=True), 'display_name': dict(type='str', aliases=['displayName'], required=True), @@ -472,17 +476,17 @@ def main(): 'length': dict( type='dict', options={ - 'min': dict(type='int'), + 'min': dict(type='int', required=False), 'max': dict(type='int', required=True) } ), - 'email': dict(type='dict'), - 'username_prohibited_characters': dict(type='dict', aliases=['usernameProhibitedCharacters']), - 'up_username_not_idn_homograph': dict(type='dict', aliases=['upUsernameNotIdnHomograph']), - 'person_name_prohibited_characters': dict(type='dict', aliases=['personNameProhibitedCharacters']), - 'uri': dict(type='dict'), - 'pattern': dict(type='dict'), - 'options': dict(type='dict') + 'email': dict(type='dict', required=False), + 'username_prohibited_characters': dict(type='dict', aliases=['usernameProhibitedCharacters'], required=False), + 'up_username_not_idn_homograph': dict(type='dict', aliases=['upUsernameNotIdnHomograph'], required=False), + 'person_name_prohibited_characters': dict(type='dict', aliases=['personNameProhibitedCharacters'], required=False), + 'uri': dict(type='dict', required=False), + 'pattern': dict(type='dict', required=False), + 'options': dict(type='dict', required=False) } ), 'annotations': dict(type='dict'), @@ -509,15 +513,15 @@ def main(): options={ 'name': dict(type='str', required=True), 'display_header': dict(type='str', aliases=['displayHeader'], required=True), - 'display_description': dict(type='str', aliases=['displayDescription']), - 'annotations': dict(type='dict') + 'display_description': dict(type='str', aliases=['displayDescription'], required=False), + 'annotations': dict(type='dict', required=False) } ), 'unmanaged_attribute_policy': dict( type='str', aliases=['unmanagedAttributePolicy'], choices=['ENABLED', 'ADMIN_EDIT', 'ADMIN_VIEW'], - + required=False ) } ) diff --git a/plugins/modules/keyring.py b/plugins/modules/keyring.py index eef59dd10a..3a8cbcae02 100644 --- a/plugins/modules/keyring.py +++ b/plugins/modules/keyring.py @@ -206,10 +206,10 @@ def run_module(): username=dict(type="str", required=True), keyring_password=dict(type="str", required=True, no_log=True), user_password=dict( - type="str", no_log=True, aliases=["password"] + type="str", required=False, no_log=True, aliases=["password"] ), state=dict( - type="str", default="present", choices=["absent", "present"] + type="str", required=False, default="present", choices=["absent", "present"] ), ) diff --git a/plugins/modules/kibana_plugin.py b/plugins/modules/kibana_plugin.py index b975e2dcea..09703b504c 100644 --- a/plugins/modules/kibana_plugin.py +++ b/plugins/modules/kibana_plugin.py @@ -59,11 +59,11 @@ options: version: description: - Version of the plugin to be installed. - - If the plugin is installed with in a previous version, it is B(not) updated unless O(force=true). + - If plugin exists with previous version, plugin will B(not) be updated unless O(force) is set to V(true). type: str force: description: - - Delete and re-install the plugin. It can be useful for plugins update. + - Delete and re-install the plugin. Can be useful for plugins update. type: bool default: false allow_root: @@ -109,6 +109,14 @@ timeout: description: The timeout for plugin download. returned: success type: str +stdout: + description: The command stdout. + returned: success + type: str +stderr: + description: The command stderr. + returned: success + type: str state: description: The state for the managed plugin. returned: success @@ -228,11 +236,11 @@ def main(): argument_spec=dict( name=dict(required=True), state=dict(default="present", choices=list(PACKAGE_STATE_MAP.keys())), - url=dict(), + url=dict(default=None), timeout=dict(default="1m"), plugin_bin=dict(default="/opt/kibana/bin/kibana", type="path"), plugin_dir=dict(default="/opt/kibana/installedPlugins/", type="path"), - version=dict(), + version=dict(default=None), force=dict(default=False, type="bool"), allow_root=dict(default=False, type="bool"), ), diff --git a/plugins/modules/krb_ticket.py b/plugins/modules/krb_ticket.py index 3a01944535..e021050c22 100644 --- a/plugins/modules/krb_ticket.py +++ b/plugins/modules/krb_ticket.py @@ -30,7 +30,7 @@ options: principal: description: - The principal name. - - If not set, the user running this module is used. + - If not set, the user running this module will be used. type: str state: description: @@ -50,17 +50,17 @@ options: - Use O(cache_name) as the ticket cache name and location. - If this option is not used, the default cache name and location are used. - The default credentials cache may vary between systems. - - If not set the the value of E(KRB5CCNAME) environment variable is used instead, its value is used to name the default - ticket cache. + - If not set the the value of E(KRB5CCNAME) environment variable will be used instead, its value is used to name the + default ticket cache. type: str lifetime: description: - Requests a ticket with the lifetime, if the O(lifetime) is not specified, the default ticket lifetime is used. - - Specifying a ticket lifetime longer than the maximum ticket lifetime (configured by each site) does not override the + - Specifying a ticket lifetime longer than the maximum ticket lifetime (configured by each site) will not override the configured maximum ticket lifetime. - 'The value for O(lifetime) must be followed by one of the following suffixes: V(s) - seconds, V(m) - minutes, V(h) - hours, V(d) - days.' - - You cannot mix units; a value of V(3h30m) results in an error. + - You cannot mix units; a value of V(3h30m) will result in an error. - See U(https://web.mit.edu/kerberos/krb5-1.12/doc/basic/date_format.html) for reference. type: str start_time: @@ -78,7 +78,7 @@ options: - Requests renewable tickets, with a total lifetime equal to O(renewable). - 'The value for O(renewable) must be followed by one of the following delimiters: V(s) - seconds, V(m) - minutes, V(h) - hours, V(d) - days.' - - You cannot mix units; a value of V(3h30m) results in an error. + - You cannot mix units; a value of V(3h30m) will result in an error. - See U(https://web.mit.edu/kerberos/krb5-1.12/doc/basic/date_format.html) for reference. type: str forwardable: @@ -119,7 +119,7 @@ options: keytab: description: - Requests a ticket, obtained from a key in the local host's keytab. - - If O(keytab_path) is not specified it tries to use default client keytab path (C(-i) option). + - If O(keytab_path) is not specified will try to use default client keytab path (C(-i) option). type: bool keytab_path: description: diff --git a/plugins/modules/launchd.py b/plugins/modules/launchd.py index 310e1af9b1..0f770f47a5 100644 --- a/plugins/modules/launchd.py +++ b/plugins/modules/launchd.py @@ -37,9 +37,9 @@ options: version_added: 10.1.0 state: description: - - V(started)/V(stopped) are idempotent actions that do not run commands unless necessary. - - C(launchd) does not support V(restarted) nor V(reloaded) natively. These states trigger a stop/start (restarted) or - an unload/load (reloaded). + - V(started)/V(stopped) are idempotent actions that will not run commands unless necessary. + - Launchd does not support V(restarted) nor V(reloaded) natively. These will trigger a stop/start (restarted) or an + unload/load (reloaded). - V(restarted) unloads and loads the service before start to ensure that the latest job definition (plist) is used. - V(reloaded) unloads and loads the service to ensure that the latest job definition (plist) is used. Whether a service is started or stopped depends on the content of the definition file. @@ -53,8 +53,8 @@ options: force_stop: description: - Whether the service should not be restarted automatically by launchd. - - Services might have the C(KeepAlive) attribute set to V(true) in a launchd configuration. In case this is set to V(true), - stopping a service causes that C(launchd) starts the service again. + - Services might have the 'KeepAlive' attribute set to true in a launchd configuration. In case this is set to true, + stopping a service will cause that launchd starts the service again. - Set this option to V(true) to let this module change the C(KeepAlive) attribute to V(false). type: bool default: false diff --git a/plugins/modules/layman.py b/plugins/modules/layman.py index b19428d9f9..b0fab39233 100644 --- a/plugins/modules/layman.py +++ b/plugins/modules/layman.py @@ -35,7 +35,7 @@ options: type: str list_url: description: - - An URL of the alternative overlays list that defines the overlay to install. This list is fetched and saved under + - An URL of the alternative overlays list that defines the overlay to install. This list will be fetched and saved under C(${overlay_defs}/${name}.xml), where C(overlay_defs) is read from the Layman's configuration. aliases: [url] type: str @@ -47,7 +47,7 @@ options: type: str validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be set to V(false) when no other option exists. + - If V(false), SSL certificates will not be validated. This should only be set to V(false) when no other option exists. type: bool default: true """ @@ -236,7 +236,7 @@ def main(): name=dict(required=True), list_url=dict(aliases=['url']), state=dict(default="present", choices=['present', 'absent', 'updated']), - validate_certs=dict(default=True, type='bool'), + validate_certs=dict(required=False, default=True, type='bool'), ), supports_check_mode=True ) diff --git a/plugins/modules/ldap_attrs.py b/plugins/modules/ldap_attrs.py index 592da93a63..c7ccd42154 100644 --- a/plugins/modules/ldap_attrs.py +++ b/plugins/modules/ldap_attrs.py @@ -43,9 +43,10 @@ options: choices: [present, absent, exact] default: present description: - - The state of the attribute values. If V(present), all given attribute values are added if they are missing. If V(absent), - all given attribute values are removed if present. If V(exact), the set of attribute values is forced to exactly those - provided and no others. If O(state=exact) and the attribute value is empty, all values for this attribute are removed. + - The state of the attribute values. If V(present), all given attribute values will be added if they are missing. If + V(absent), all given attribute values will be removed if present. If V(exact), the set of attribute values will be + forced to exactly those provided and no others. If O(state=exact) and the attribute value is empty, all values for + this attribute will be removed. attributes: required: true type: dict @@ -296,7 +297,7 @@ def main(): module = AnsibleModule( argument_spec=gen_specs( attributes=dict(type='dict', required=True), - ordered=dict(type='bool', default=False), + ordered=dict(type='bool', default=False, required=False), state=dict(type='str', default='present', choices=['absent', 'exact', 'present']), ), supports_check_mode=True, diff --git a/plugins/modules/ldap_inc.py b/plugins/modules/ldap_inc.py index 224027f666..ea6788de66 100644 --- a/plugins/modules/ldap_inc.py +++ b/plugins/modules/ldap_inc.py @@ -26,8 +26,8 @@ notes: and the control PostRead. This extension and the control are implemented in OpenLdap but not all directory servers implement them. In this case, the module automatically uses a more classic method based on two phases, first the current value is read then the modify operation remove the old value and add the new one in a single request. If the value has changed - by a concurrent call then the remove action fails. Then the sequence is retried 3 times before raising an error to the - playbook. In an heavy modification environment, the module does not guarante to be systematically successful. + by a concurrent call then the remove action will fail. Then the sequence is retried 3 times before raising an error to + the playbook. In an heavy modification environment, the module does not guarante to be systematically successful. - This only deals with integer attribute of an existing entry. To modify attributes of an entry, see M(community.general.ldap_attrs) or to add or remove whole entries, see M(community.general.ldap_entry). author: @@ -153,7 +153,7 @@ def main(): module = AnsibleModule( argument_spec=gen_specs( attribute=dict(type='str', required=True), - increment=dict(type='int', default=1), + increment=dict(type='int', default=1, required=False), method=dict(type='str', default='auto', choices=['auto', 'rfc4525', 'legacy']), ), supports_check_mode=True, diff --git a/plugins/modules/ldap_search.py b/plugins/modules/ldap_search.py index 47c4d8d64d..155e9859d5 100644 --- a/plugins/modules/ldap_search.py +++ b/plugins/modules/ldap_search.py @@ -64,10 +64,10 @@ options: version_added: 7.1.0 base64_attributes: description: - - If provided, all attribute values returned that are listed in this option are Base64 encoded. - - If the special value V(*) appears in this list, all attributes are Base64 encoded. - - All other attribute values are converted to UTF-8 strings. If they contain binary data, please note that invalid UTF-8 - bytes are omitted. + - If provided, all attribute values returned that are listed in this option will be Base64 encoded. + - If the special value V(*) appears in this list, all attributes will be Base64 encoded. + - All other attribute values will be converted to UTF-8 strings. If they contain binary data, please note that invalid + UTF-8 bytes will be omitted. type: list elements: str version_added: 7.0.0 @@ -91,16 +91,15 @@ EXAMPLES = r""" register: ldap_group_gids """ -# @FIXME RV 'results' is meant to be used when 'loop:' was used with the module. RESULTS = r""" results: description: - - For every entry found, one dictionary is returned. + - For every entry found, one dictionary will be returned. - Every dictionary contains a key C(dn) with the entry's DN as a value. - Every attribute of the entry found is added to the dictionary. If the key has precisely one value, that value is taken directly, otherwise the key's value is a list. - - Note that all values (for single-element lists) and list elements (for multi-valued lists) are UTF-8 strings. Some might - contain Base64-encoded binary data; which ones is determined by the O(base64_attributes) option. + - Note that all values (for single-element lists) and list elements (for multi-valued lists) will be UTF-8 strings. Some + might contain Base64-encoded binary data; which ones is determined by the O(base64_attributes) option. type: list elements: dict """ diff --git a/plugins/modules/librato_annotation.py b/plugins/modules/librato_annotation.py index 1087cb426c..35fc810c65 100644 --- a/plugins/modules/librato_annotation.py +++ b/plugins/modules/librato_annotation.py @@ -13,8 +13,8 @@ DOCUMENTATION = r""" module: librato_annotation short_description: Create an annotation in Librato description: - - Create an annotation event on the given annotation stream O(name). If the annotation stream does not exist, it creates - one automatically. + - Create an annotation event on the given annotation stream :name. If the annotation stream does not exist, it will be created + automatically. author: "Seth Edwards (@Sedward)" requirements: [] extends_documentation_fragment: @@ -39,7 +39,7 @@ options: type: str description: - The annotation stream name. - - If the annotation stream does not exist, it creates one automatically. + - If the annotation stream does not exist, it will be created automatically. required: false title: type: str @@ -160,12 +160,12 @@ def main(): argument_spec=dict( user=dict(required=True), api_key=dict(required=True, no_log=True), - name=dict(), + name=dict(required=False), title=dict(required=True), - source=dict(), - description=dict(), - start_time=dict(type='int'), - end_time=dict(type='int'), + source=dict(required=False), + description=dict(required=False), + start_time=dict(required=False, default=None, type='int'), + end_time=dict(required=False, default=None, type='int'), links=dict(type='list', elements='dict') ) ) diff --git a/plugins/modules/linode.py b/plugins/modules/linode.py index d2c5714d47..fcfcce4d0a 100644 --- a/plugins/modules/linode.py +++ b/plugins/modules/linode.py @@ -47,8 +47,8 @@ options: linode_id: description: - Unique ID of a Linode server. This value is read-only in the sense that if you specify it on creation of a Linode - it is not used. The Linode API generates these IDs and we can those generated value here to reference a Linode more - specifically. This is useful for idempotency. + it will not be used. The Linode API generates these IDs and we can those generated value here to reference a Linode + more specifically. This is useful for idempotence. aliases: [lid] type: int additional_disks: @@ -103,7 +103,7 @@ options: type: int backupwindow: description: - - The time window in which backups are taken. + - The time window in which backups will be taken. type: int plan: description: diff --git a/plugins/modules/linode_v4.py b/plugins/modules/linode_v4.py index 0095cb9002..b650f7f104 100644 --- a/plugins/modules/linode_v4.py +++ b/plugins/modules/linode_v4.py @@ -17,7 +17,7 @@ requirements: author: - Luke Murphy (@decentral1se) notes: - - No Linode resizing is currently implemented. This module aims to replace the current Linode module which uses deprecated + - No Linode resizing is currently implemented. This module will, in time, replace the current Linode module which uses deprecated API bindings on the Linode side. extends_documentation_fragment: - community.general.attributes @@ -43,7 +43,7 @@ options: type: str label: description: - - The instance label. This label is used as the main determiner for idempotency for the module and is therefore mandatory. + - The instance label. This label is used as the main determiner for idempotence for the module and is therefore mandatory. type: str required: true group: @@ -53,7 +53,7 @@ options: type: str private_ip: description: - - If V(true), the created Linode instance has private networking enabled and assigned a private IPv4 address. + - If V(true), the created Linode will have private networking enabled and assigned a private IPv4 address. type: bool default: false version_added: 3.0.0 @@ -65,8 +65,8 @@ options: elements: str root_pass: description: - - The password for the root user. If not specified, it generates a new one. This generated password is available in - the task success JSON. + - The password for the root user. If not specified, one will be generated. This generated password will be available + in the task success JSON. type: str authorized_keys: description: @@ -128,46 +128,45 @@ instance: description: The instance description in JSON serialized form. returned: Always. type: dict - sample: - { - "root_pass": "foobar", # if auto-generated - "alerts": { - "cpu": 90, - "io": 10000, - "network_in": 10, - "network_out": 10, - "transfer_quota": 80 - }, - "backups": { - "enabled": false, - "schedule": { - "day": null, - "window": null - } - }, - "created": "2018-09-26T08:12:33", - "group": "Foobar Group", - "hypervisor": "kvm", - "id": 10480444, - "image": "linode/centos7", - "ipv4": [ - "130.132.285.233" - ], - "ipv6": "2a82:7e00::h03c:46ff:fe04:5cd2/64", - "label": "lin-foo", - "region": "eu-west", - "specs": { - "disk": 25600, - "memory": 1024, - "transfer": 1000, - "vcpus": 1 - }, - "status": "running", - "tags": [], - "type": "g6-nanode-1", - "updated": "2018-09-26T10:10:14", - "watchdog_enabled": true - } + sample: { + "root_pass": "foobar", # if auto-generated + "alerts": { + "cpu": 90, + "io": 10000, + "network_in": 10, + "network_out": 10, + "transfer_quota": 80 + }, + "backups": { + "enabled": false, + "schedule": { + "day": null, + "window": null + } + }, + "created": "2018-09-26T08:12:33", + "group": "Foobar Group", + "hypervisor": "kvm", + "id": 10480444, + "image": "linode/centos7", + "ipv4": [ + "130.132.285.233" + ], + "ipv6": "2a82:7e00::h03c:46ff:fe04:5cd2/64", + "label": "lin-foo", + "region": "eu-west", + "specs": { + "disk": 25600, + "memory": 1024, + "transfer": 1000, + "vcpus": 1 + }, + "status": "running", + "tags": [], + "type": "g6-nanode-1", + "updated": "2018-09-26T10:10:14", + "watchdog_enabled": true + } """ import traceback diff --git a/plugins/modules/listen_ports_facts.py b/plugins/modules/listen_ports_facts.py index a33c78be3c..9f9eb66481 100644 --- a/plugins/modules/listen_ports_facts.py +++ b/plugins/modules/listen_ports_facts.py @@ -20,7 +20,7 @@ requirements: short_description: Gather facts on processes listening on TCP and UDP ports notes: - C(ss) returns all processes for each listen address and port. - - This plugin returns each of them, so multiple entries for the same listen address and port are likely in results. + - This plugin will return each of them, so multiple entries for the same listen address and port are likely in results. extends_documentation_fragment: - community.general.attributes - community.general.attributes.facts @@ -29,7 +29,7 @@ options: command: description: - Override which command to use for fetching listen ports. - - By default module uses first found supported command on the system (in alphanumerical order). + - By default module will use first found supported command on the system (in alphanumerical order). type: str choices: - netstat @@ -397,7 +397,7 @@ def main(): break if bin_path is None: - raise EnvironmentError('Unable to find any of the supported commands in PATH: {0}'.format(", ".join(sorted(commands_map)))) + raise EnvironmentError(msg='Unable to find any of the supported commands in PATH: {0}'.format(", ".join(sorted(commands_map)))) # which ports are listening for connections? args = commands_map[command]['args'] diff --git a/plugins/modules/lldp.py b/plugins/modules/lldp.py index 018d9fc307..7f4a820257 100644 --- a/plugins/modules/lldp.py +++ b/plugins/modules/lldp.py @@ -98,7 +98,7 @@ def gather_lldp(module): def main(): module_args = dict( - multivalues=dict(type='bool', default=False) + multivalues=dict(type='bool', required=False, default=False) ) module = AnsibleModule(module_args) diff --git a/plugins/modules/locale_gen.py b/plugins/modules/locale_gen.py index 2e1932c204..23e9d33485 100644 --- a/plugins/modules/locale_gen.py +++ b/plugins/modules/locale_gen.py @@ -37,10 +37,10 @@ options: choices: [absent, present] default: present notes: - - If C(/etc/locale.gen) exists, the module assumes to be using the B(glibc) mechanism, else if C(/var/lib/locales/supported.d/) - exists it assumes to be using the B(ubuntu_legacy) mechanism, else it raises an error. - - When using glibc mechanism, it manages locales by editing C(/etc/locale.gen) and running C(locale-gen). - - When using ubuntu_legacy mechanism, it manages locales by editing C(/var/lib/locales/supported.d/local) and then running + - If C(/etc/locale.gen) exists, the module will assume to be using the B(glibc) mechanism, else if C(/var/lib/locales/supported.d/) + exists it will assume to be using the B(ubuntu_legacy) mechanism, else it will raise an error. + - When using glibc mechanism, it will manage locales by editing C(/etc/locale.gen) and running C(locale-gen). + - When using ubuntu_legacy mechanism, it will manage locales by editing C(/var/lib/locales/supported.d/local) and then running C(locale-gen). - Please note that the code path that uses ubuntu_legacy mechanism has not been tested for a while, because Ubuntu is already using the glibc mechanism. There is no support for that, given our inability to test it. Therefore, that mechanism is diff --git a/plugins/modules/logentries.py b/plugins/modules/logentries.py index 69e83f5e49..420f054fac 100644 --- a/plugins/modules/logentries.py +++ b/plugins/modules/logentries.py @@ -139,8 +139,8 @@ def main(): argument_spec=dict( path=dict(required=True), state=dict(default="present", choices=["present", "followed", "absent", "unfollowed"]), - name=dict(type='str'), - logtype=dict(type='str', aliases=['type']) + name=dict(required=False, default=None, type='str'), + logtype=dict(required=False, default=None, type='str', aliases=['type']) ), supports_check_mode=True ) diff --git a/plugins/modules/logstash_plugin.py b/plugins/modules/logstash_plugin.py index afacf7767f..ba7bdc2cc5 100644 --- a/plugins/modules/logstash_plugin.py +++ b/plugins/modules/logstash_plugin.py @@ -49,7 +49,7 @@ options: version: type: str description: - - Specify version of the plugin to install. If the plugin exists with a previous version, it is B(not) updated. + - Specify plugin Version of the plugin to install. If plugin exists with previous version, it will NOT be updated. """ EXAMPLES = r""" diff --git a/plugins/modules/lvg.py b/plugins/modules/lvg.py index 42d4c9182e..1051664dd3 100644 --- a/plugins/modules/lvg.py +++ b/plugins/modules/lvg.py @@ -33,7 +33,7 @@ options: description: - List of comma-separated devices to use as physical devices in this volume group. - Required when creating or resizing volume group. - - The module runs C(pvcreate) if needed. + - The module will take care of running pvcreate if needed. - O(remove_extra_pvs) controls whether or not unspecified physical devices are removed from the volume group. type: list elements: str diff --git a/plugins/modules/lxc_container.py b/plugins/modules/lxc_container.py index cbd643efdb..8d5face301 100644 --- a/plugins/modules/lxc_container.py +++ b/plugins/modules/lxc_container.py @@ -129,13 +129,13 @@ options: archive: description: - Create an archive of a container. - - This creates a tarball of the running container. + - This will create a tarball of the running container. type: bool default: false archive_path: description: - Path the save the archived container. - - If the path does not exist the archive method attempts to create it. + - If the path does not exist the archive method will attempt to create it. type: path archive_compression: choices: @@ -157,8 +157,8 @@ options: description: - Define the state of a container. - If you clone a container using O(clone_name) the newly cloned container created in a stopped state. - - The running container is stopped while the clone operation is happening and upon completion of the clone the original - container state is restored. + - The running container will be stopped while the clone operation is happening and upon completion of the clone the + original container state will be restored. type: str default: started container_config: @@ -172,15 +172,15 @@ requirements: - 'python3-lxc # OS Package' notes: - Containers must have a unique name. If you attempt to create a container with a name that already exists in the users - namespace the module simply returns as "unchanged". - - The O(container_command) can be used with any state except V(absent). If used with state V(stopped) the container is V(started), - the command executed, and then the container V(stopped) again. Likewise if O(state=stopped) and the container does not - exist it is first created, V(started), the command executed, and then V(stopped). If you use a C(|) in the variable you - can use common script formatting within the variable itself. The O(container_command) option always execute as C(bash). - When using O(container_command), a log file is created in the C(/tmp/) directory which contains both C(stdout) and C(stderr) - of any command executed. - - If O(archive=true) the system attempts to create a compressed tarball of the running container. The O(archive) option - supports LVM backed containers and creates a snapshot of the running container when creating the archive. + namespace the module will simply return as "unchanged". + - The O(container_command) can be used with any state except V(absent). If used with state V(stopped) the container will + be V(started), the command executed, and then the container V(stopped) again. Likewise if O(state=stopped) and the container + does not exist it will be first created, V(started), the command executed, and then V(stopped). If you use a C(|) in the + variable you can use common script formatting within the variable itself. The O(container_command) option will always + execute as C(bash). When using O(container_command), a log file is created in the C(/tmp/) directory which contains both + C(stdout) and C(stderr) of any command executed. + - If O(archive=true) the system will attempt to create a compressed tarball of the running container. The O(archive) option + supports LVM backed containers and will create a snapshot of the running container when creating the archive. - If your distro does not have a package for C(python3-lxc), which is a requirement for this module, it can be installed from source at U(https://github.com/lxc/python3-lxc) or installed using C(pip install lxc). """ diff --git a/plugins/modules/lxca_cmms.py b/plugins/modules/lxca_cmms.py index 87b0e2e125..8ece67470b 100644 --- a/plugins/modules/lxca_cmms.py +++ b/plugins/modules/lxca_cmms.py @@ -144,8 +144,8 @@ FUNC_DICT = { INPUT_ARG_SPEC = dict( command_options=dict(default='cmms', choices=['cmms', 'cmms_by_uuid', 'cmms_by_chassis_uuid']), - uuid=dict(), - chassis=dict() + uuid=dict(default=None), + chassis=dict(default=None) ) diff --git a/plugins/modules/lxca_nodes.py b/plugins/modules/lxca_nodes.py index 91d3337b27..f133671114 100644 --- a/plugins/modules/lxca_nodes.py +++ b/plugins/modules/lxca_nodes.py @@ -175,7 +175,7 @@ INPUT_ARG_SPEC = dict( 'nodes_by_chassis_uuid', 'nodes_status_managed', 'nodes_status_unmanaged']), - uuid=dict(), chassis=dict() + uuid=dict(default=None), chassis=dict(default=None) ) diff --git a/plugins/modules/lxd_container.py b/plugins/modules/lxd_container.py index 4abec5acaa..f347df7492 100644 --- a/plugins/modules/lxd_container.py +++ b/plugins/modules/lxd_container.py @@ -101,9 +101,9 @@ options: type: str target: description: - - For cluster deployments. It attempts to create an instance on a target node. If the instance exists elsewhere in a - cluster, then it is not replaced nor moved. The name should respond to same name of the node you see in C(lxc cluster - list). + - For cluster deployments. Will attempt to create an instance on a target node. If the instance exists elsewhere in + a cluster, then it will not be replaced or moved. The name should respond to same name of the node you see in C(lxc + cluster list). type: str required: false version_added: 1.0.0 @@ -134,7 +134,7 @@ options: type: bool wait_for_container: description: - - If set to V(true), the tasks wait until the task reports a success status when performing container operations. + - If set to V(true), the tasks will wait till the task reports a success status when performing container operations. default: false type: bool version_added: 4.4.0 @@ -180,7 +180,7 @@ options: type: str notes: - Instances can be a container or a virtual machine, both of them must have unique name. If you attempt to create an instance - with a name that already existed in the users namespace, the module simply returns as "unchanged". + with a name that already existed in the users namespace the module will simply return as "unchanged". - There are two ways to run commands inside a container or virtual machine, using the command module or using the ansible lxd connection plugin bundled in Ansible >= 2.1, the later requires python to be installed in the instance which can be done with the command module. @@ -262,7 +262,7 @@ EXAMPLES = r""" source: type: image mode: pull - # Provides Ubuntu minimal images + # Provides Ubuntu minimal images server: https://cloud-images.ubuntu.com/minimal/releases/ protocol: simplestreams alias: "22.04" @@ -393,12 +393,7 @@ addresses: description: Mapping from the network device name to a list of IPv4 addresses in the instance. returned: when state is started or restarted type: dict - sample: - { - "eth0": [ - "10.155.92.191" - ] - } + sample: {"eth0": ["10.155.92.191"]} old_state: description: The old state of the instance. returned: when state is started or restarted diff --git a/plugins/modules/lxd_profile.py b/plugins/modules/lxd_profile.py index 2525889968..efdf50ea90 100644 --- a/plugins/modules/lxd_profile.py +++ b/plugins/modules/lxd_profile.py @@ -57,7 +57,7 @@ options: new_name: description: - A new name of a profile. - - If this parameter is specified a profile is renamed to this name. + - If this parameter is specified a profile will be renamed to this name. - See U(https://documentation.ubuntu.com/lxd/en/latest/api/#/profiles/profile_post). required: false type: str @@ -113,7 +113,7 @@ options: type: str notes: - Profiles must have a unique name. If you attempt to create a profile with a name that already existed in the users namespace - the module simply returns as "unchanged". + the module will simply return as "unchanged". """ EXAMPLES = r""" diff --git a/plugins/modules/lxd_project.py b/plugins/modules/lxd_project.py index 20804f8b38..98068175aa 100644 --- a/plugins/modules/lxd_project.py +++ b/plugins/modules/lxd_project.py @@ -42,14 +42,14 @@ options: new_name: description: - A new name of a project. - - If this parameter is specified a project is renamed to this name. + - If this parameter is specified a project will be renamed to this name. - See U(https://documentation.ubuntu.com/lxd/en/latest/api/#/projects/project_post). required: false type: str merge_project: description: - Merge the configuration of the present project with the new desired configuration, instead of replacing it. If configuration - is the same after merged, no change is made. + is the same after merged, no change will be made. required: false default: false type: bool @@ -98,7 +98,7 @@ options: type: str notes: - Projects must have a unique name. If you attempt to create a project with a name that already existed in the users namespace - the module simply returns as "unchanged". + the module will simply return as "unchanged". """ EXAMPLES = r""" diff --git a/plugins/modules/macports.py b/plugins/modules/macports.py index c328e45904..3f02eeb411 100644 --- a/plugins/modules/macports.py +++ b/plugins/modules/macports.py @@ -280,7 +280,7 @@ def main(): selfupdate=dict(aliases=["update_cache", "update_ports"], default=False, type='bool'), state=dict(default="present", choices=["present", "installed", "absent", "removed", "active", "inactive"]), upgrade=dict(default=False, type='bool'), - variant=dict(aliases=["variants"], type='str') + variant=dict(aliases=["variants"], default=None, type='str') ) ) diff --git a/plugins/modules/mail.py b/plugins/modules/mail.py index 7c8bdb69b3..03192e5bf8 100644 --- a/plugins/modules/mail.py +++ b/plugins/modules/mail.py @@ -90,7 +90,7 @@ options: attach: description: - A list of pathnames of files to attach to the message. - - Attached files have their content-type set to C(application/octet-stream). + - Attached files will have their content-type set to C(application/octet-stream). type: list elements: path default: [] @@ -115,12 +115,12 @@ options: default: plain secure: description: - - If V(always), the connection only sends email if the connection is Encrypted. If the server does not accept the encrypted - connection it fails. - - If V(try), the connection attempts to setup a secure SSL/TLS session, before trying to send. - - If V(never), the connection does not attempt to setup a secure SSL/TLS session, before sending. - - If V(starttls), the connection tries to upgrade to a secure SSL/TLS connection, before sending. If it is unable to - do so it fails. + - If V(always), the connection will only send email if the connection is Encrypted. If the server does not accept the + encrypted connection it will fail. + - If V(try), the connection will attempt to setup a secure SSL/TLS session, before trying to send. + - If V(never), the connection will not attempt to setup a secure SSL/TLS session, before sending. + - If V(starttls), the connection will try to upgrade to a secure SSL/TLS connection, before sending. If it is unable + to do so it will fail. type: str choices: [always, never, starttls, try] default: try @@ -137,7 +137,7 @@ options: message_id_domain: description: - The domain name to use for the L(Message-ID header, https://en.wikipedia.org/wiki/Message-ID). - - Note that this is only available on Python 3+. On Python 2, this value is ignored. + - Note that this is only available on Python 3+. On Python 2, this value will be ignored. type: str default: ansible version_added: 8.2.0 @@ -242,7 +242,7 @@ def main(): password=dict(type='str', no_log=True), host=dict(type='str', default='localhost'), port=dict(type='int', default=25), - ehlohost=dict(type='str'), + ehlohost=dict(type='str', default=None), sender=dict(type='str', default='root', aliases=['from']), to=dict(type='list', elements='str', default=['root'], aliases=['recipients']), cc=dict(type='list', elements='str', default=[]), diff --git a/plugins/modules/make.py b/plugins/modules/make.py index 57ee525db5..a574560f7f 100644 --- a/plugins/modules/make.py +++ b/plugins/modules/make.py @@ -48,7 +48,7 @@ options: params: description: - Any extra parameters to pass to make. - - If the value is empty, only the key is used. For example, V(FOO:) produces V(FOO), not V(FOO=). + - If the value is empty, only the key will be used. For example, V(FOO:) will produce V(FOO), not V(FOO=). type: dict target: description: diff --git a/plugins/modules/manageiq_alerts.py b/plugins/modules/manageiq_alerts.py index d1b3fdba69..87fafcf10b 100644 --- a/plugins/modules/manageiq_alerts.py +++ b/plugins/modules/manageiq_alerts.py @@ -300,7 +300,7 @@ def main(): expression=dict(type='dict'), options=dict(type='dict'), enabled=dict(type='bool'), - state=dict(default='present', + state=dict(required=False, default='present', choices=['present', 'absent']), ) # add the manageiq connection arguments to the arguments diff --git a/plugins/modules/manageiq_group.py b/plugins/modules/manageiq_group.py index 68170ea733..9781ebfc98 100644 --- a/plugins/modules/manageiq_group.py +++ b/plugins/modules/manageiq_group.py @@ -75,8 +75,8 @@ options: managed_filters_merge_mode: type: str description: - - In V(merge) mode existing categories are kept or updated, new categories are added. - - In V(replace) mode all categories are replaced with the supplied O(managed_filters). + - In merge mode existing categories are kept or updated, new categories are added. + - In replace mode all categories will be replaced with the supplied O(managed_filters). choices: [merge, replace] default: replace belongsto_filters: @@ -570,14 +570,14 @@ def main(): argument_spec = dict( description=dict(required=True, type='str'), state=dict(choices=['absent', 'present'], default='present'), - role_id=dict(type='int'), - role=dict(type='str'), - tenant_id=dict(type='int'), - tenant=dict(type='str'), - managed_filters=dict(type='dict'), - managed_filters_merge_mode=dict(choices=['merge', 'replace'], default='replace'), - belongsto_filters=dict(type='list', elements='str'), - belongsto_filters_merge_mode=dict(choices=['merge', 'replace'], default='replace'), + role_id=dict(required=False, type='int'), + role=dict(required=False, type='str'), + tenant_id=dict(required=False, type='int'), + tenant=dict(required=False, type='str'), + managed_filters=dict(required=False, type='dict'), + managed_filters_merge_mode=dict(required=False, choices=['merge', 'replace'], default='replace'), + belongsto_filters=dict(required=False, type='list', elements='str'), + belongsto_filters_merge_mode=dict(required=False, choices=['merge', 'replace'], default='replace'), ) # add the manageiq connection arguments to the arguments argument_spec.update(manageiq_argument_spec()) diff --git a/plugins/modules/manageiq_policies.py b/plugins/modules/manageiq_policies.py index 247e2dc94c..4256f89d07 100644 --- a/plugins/modules/manageiq_policies.py +++ b/plugins/modules/manageiq_policies.py @@ -147,7 +147,7 @@ def main(): resource_name=dict(type='str'), resource_type=dict(required=True, type='str', choices=list(manageiq_entities().keys())), - state=dict(type='str', + state=dict(required=False, type='str', choices=['present', 'absent'], default='present'), ) # add the manageiq connection arguments to the arguments diff --git a/plugins/modules/manageiq_policies_info.py b/plugins/modules/manageiq_policies_info.py index 2db694f11c..c7c20418b2 100644 --- a/plugins/modules/manageiq_policies_info.py +++ b/plugins/modules/manageiq_policies_info.py @@ -96,8 +96,8 @@ from ansible_collections.community.general.plugins.module_utils.manageiq import def main(): argument_spec = dict( - resource_id=dict(type='int'), - resource_name=dict(type='str'), + resource_id=dict(required=False, type='int'), + resource_name=dict(required=False, type='str'), resource_type=dict(required=True, type='str', choices=list(manageiq_entities().keys())), ) diff --git a/plugins/modules/manageiq_provider.py b/plugins/modules/manageiq_provider.py index 334555c29a..7f7049fa65 100644 --- a/plugins/modules/manageiq_provider.py +++ b/plugins/modules/manageiq_provider.py @@ -31,7 +31,7 @@ options: description: - V(absent) - provider should not exist, - V(present) - provider should be present, - - V(refresh) - provider is refreshed. + - V(refresh) - provider will be refreshed. choices: ['absent', 'present', 'refresh'] default: 'present' name: @@ -44,7 +44,7 @@ options: choices: ['Openshift', 'Amazon', 'oVirt', 'VMware', 'Azure', 'Director', 'OpenStack', 'GCE'] zone: type: str - description: The ManageIQ zone name that manages the provider. + description: The ManageIQ zone name that will manage the provider. default: 'default' provider_region: type: str diff --git a/plugins/modules/manageiq_tags.py b/plugins/modules/manageiq_tags.py index efd135393d..6833b70355 100644 --- a/plugins/modules/manageiq_tags.py +++ b/plugins/modules/manageiq_tags.py @@ -63,11 +63,11 @@ options: resource_name: type: str description: - - The name of the resource at which tags are be controlled. + - The name of the resource at which tags will be controlled. - Must be specified if O(resource_id) is not set. Both options are mutually exclusive. resource_id: description: - - The ID of the resource at which tags are controlled. + - The ID of the resource at which tags will be controlled. - Must be specified if O(resource_name) is not set. Both options are mutually exclusive. type: int version_added: 2.2.0 @@ -138,7 +138,7 @@ def main(): resource_name=dict(type='str'), resource_type=dict(required=True, type='str', choices=list(manageiq_entities().keys())), - state=dict(type='str', + state=dict(required=False, type='str', choices=['present', 'absent'], default='present'), ) # add the manageiq connection arguments to the arguments diff --git a/plugins/modules/manageiq_tags_info.py b/plugins/modules/manageiq_tags_info.py index 2a742f69c5..c5b6fcd451 100644 --- a/plugins/modules/manageiq_tags_info.py +++ b/plugins/modules/manageiq_tags_info.py @@ -45,11 +45,11 @@ options: resource_name: type: str description: - - The name of the resource at which tags are controlled. + - The name of the resource at which tags will be controlled. - Must be specified if O(resource_id) is not set. Both options are mutually exclusive. resource_id: description: - - The ID of the resource at which tags are controlled. + - The ID of the resource at which tags will be controlled. - Must be specified if O(resource_name) is not set. Both options are mutually exclusive. type: int """ diff --git a/plugins/modules/manageiq_tenant.py b/plugins/modules/manageiq_tenant.py index fda97509ce..deb2fc452d 100644 --- a/plugins/modules/manageiq_tenant.py +++ b/plugins/modules/manageiq_tenant.py @@ -482,8 +482,8 @@ def main(): argument_spec = dict( name=dict(required=True, type='str'), description=dict(required=True, type='str'), - parent_id=dict(type='int'), - parent=dict(type='str'), + parent_id=dict(required=False, type='int'), + parent=dict(required=False, type='str'), state=dict(choices=['absent', 'present'], default='present'), quotas=dict(type='dict', default={}) ) diff --git a/plugins/modules/manageiq_user.py b/plugins/modules/manageiq_user.py index 475086c823..a4d5c21dfc 100644 --- a/plugins/modules/manageiq_user.py +++ b/plugins/modules/manageiq_user.py @@ -59,8 +59,8 @@ options: default: always choices: ['always', 'on_create'] description: - - V(always) updates passwords unconditionally. - - V(on_create) only sets the password for a newly created user. + - V(always) will update passwords unconditionally. + - V(on_create) will only set the password for a newly created user. """ EXAMPLES = r""" diff --git a/plugins/modules/matrix.py b/plugins/modules/matrix.py index fb6c797bff..186c57dd31 100644 --- a/plugins/modules/matrix.py +++ b/plugins/modules/matrix.py @@ -13,7 +13,7 @@ author: "Jan Christian Grünhage (@jcgruenhage)" module: matrix short_description: Send notifications to matrix description: - - This module sends HTML formatted notifications to matrix rooms. + - This module sends html formatted notifications to matrix rooms. extends_documentation_fragment: - community.general.attributes attributes: @@ -99,9 +99,9 @@ def run_module(): msg_html=dict(type='str', required=True), room_id=dict(type='str', required=True), hs_url=dict(type='str', required=True), - token=dict(type='str', no_log=True), - user_id=dict(type='str'), - password=dict(type='str', no_log=True), + token=dict(type='str', required=False, no_log=True), + user_id=dict(type='str', required=False), + password=dict(type='str', required=False, no_log=True), ) result = dict( diff --git a/plugins/modules/mattermost.py b/plugins/modules/mattermost.py index 4cb32c1f3b..ed046e6481 100644 --- a/plugins/modules/mattermost.py +++ b/plugins/modules/mattermost.py @@ -38,7 +38,7 @@ options: type: str description: - Mattermost webhook API key. Log into your Mattermost site, go to Menu -> Integration -> Incoming Webhook -> Add Incoming - Webhook. This gives you a full URL. O(api_key) is the last part. U(http://mattermost.example.com/hooks/API_KEY). + Webhook. This will give you full URL. O(api_key) is the last part. U(http://mattermost.example.com/hooks/API_KEY). required: true text: type: str @@ -75,8 +75,8 @@ options: version_added: 10.0.0 validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed - certificates. + - If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using + self-signed certificates. default: true type: bool """ @@ -137,10 +137,10 @@ def main(): url=dict(type='str', required=True), api_key=dict(type='str', required=True, no_log=True), text=dict(type='str'), - channel=dict(type='str'), + channel=dict(type='str', default=None), username=dict(type='str', default='Ansible'), icon_url=dict(type='str', default='https://docs.ansible.com/favicon.ico'), - priority=dict(type='str', choices=['important', 'urgent']), + priority=dict(type='str', default=None, choices=['important', 'urgent']), validate_certs=dict(default=True, type='bool'), attachments=dict(type='list', elements='dict'), ), diff --git a/plugins/modules/maven_artifact.py b/plugins/modules/maven_artifact.py index af3be70f39..fb294797f0 100644 --- a/plugins/modules/maven_artifact.py +++ b/plugins/modules/maven_artifact.py @@ -16,7 +16,8 @@ module: maven_artifact short_description: Downloads an Artifact from a Maven Repository description: - Downloads an artifact from a maven repository given the maven coordinates provided to the module. - - Can retrieve snapshots or release versions of the artifact and resolve the latest available version if one is not available. + - Can retrieve snapshots or release versions of the artifact and will resolve the latest available version if one is not + available. author: "Chris Schmidt (@chrisisbeef)" requirements: - lxml @@ -84,8 +85,8 @@ options: type: dict force_basic_auth: description: - - C(httplib2), the library used by the URI module only sends authentication information when a webservice responds to - an initial request with a 401 status. Since some basic auth services do not properly send a 401, logins fail. This + - C(httplib2), the library used by the URI module only sends authentication information when a webservice responds to an + initial request with a 401 status. Since some basic auth services do not properly send a 401, logins will fail. This option forces the sending of the Basic authentication header upon initial request. default: false type: bool @@ -109,7 +110,7 @@ options: default: 10 validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be set to V(false) when no other option exists. + - If V(false), SSL certificates will not be validated. This should only be set to V(false) when no other option exists. type: bool default: true client_cert: @@ -134,13 +135,13 @@ options: verify_checksum: type: str description: - - If V(never), the MD5/SHA1 checksum is never downloaded and verified. - - If V(download), the MD5/SHA1 checksum is downloaded and verified only after artifact download. This is the default. - - If V(change), the MD5/SHA1 checksum is downloaded and verified if the destination already exist, to verify if they - are identical. This was the behaviour before 2.6. Since it downloads the checksum before (maybe) downloading the artifact, - and since some repository software, when acting as a proxy/cache, return a 404 error if the artifact has not been - cached yet, it may fail unexpectedly. If you still need it, you should consider using V(always) instead - if you deal - with a checksum, it is better to use it to verify integrity after download. + - If V(never), the MD5/SHA1 checksum will never be downloaded and verified. + - If V(download), the MD5/SHA1 checksum will be downloaded and verified only after artifact download. This is the default. + - If V(change), the MD5/SHA1 checksum will be downloaded and verified if the destination already exist, to verify if + they are identical. This was the behaviour before 2.6. Since it downloads the checksum before (maybe) downloading + the artifact, and since some repository software, when acting as a proxy/cache, return a 404 error if the artifact + has not been cached yet, it may fail unexpectedly. If you still need it, you should consider using V(always) instead + - if you deal with a checksum, it is better to use it to verify integrity after download. - V(always) combines V(download) and V(change). required: false default: 'download' @@ -148,9 +149,9 @@ options: checksum_alg: type: str description: - - If V(md5), checksums use the MD5 algorithm. This is the default. - - If V(sha1), checksums use the SHA1 algorithm. This can be used on systems configured to use FIPS-compliant algorithms, - since MD5 is blocked on such systems. + - If V(md5), checksums will use the MD5 algorithm. This is the default. + - If V(sha1), checksums will use the SHA1 algorithm. This can be used on systems configured to use FIPS-compliant algorithms, + since MD5 will be blocked on such systems. default: 'md5' choices: ['md5', 'sha1'] version_added: 3.2.0 @@ -621,25 +622,25 @@ def main(): argument_spec=dict( group_id=dict(required=True), artifact_id=dict(required=True), - version=dict(), - version_by_spec=dict(), + version=dict(default=None), + version_by_spec=dict(default=None), classifier=dict(default=''), extension=dict(default='jar'), repository_url=dict(default='https://repo1.maven.org/maven2'), - username=dict(aliases=['aws_secret_key']), - password=dict(no_log=True, aliases=['aws_secret_access_key']), + username=dict(default=None, aliases=['aws_secret_key']), + password=dict(default=None, no_log=True, aliases=['aws_secret_access_key']), headers=dict(type='dict'), force_basic_auth=dict(default=False, type='bool'), state=dict(default="present", choices=["present", "absent"]), # TODO - Implement a "latest" state timeout=dict(default=10, type='int'), dest=dict(type="path", required=True), - validate_certs=dict(default=True, type='bool'), - client_cert=dict(type="path"), - client_key=dict(type="path"), - keep_name=dict(default=False, type='bool'), - verify_checksum=dict(default='download', choices=['never', 'download', 'change', 'always']), - checksum_alg=dict(default='md5', choices=['md5', 'sha1']), - unredirected_headers=dict(type='list', elements='str'), + validate_certs=dict(required=False, default=True, type='bool'), + client_cert=dict(type="path", required=False), + client_key=dict(type="path", required=False), + keep_name=dict(required=False, default=False, type='bool'), + verify_checksum=dict(required=False, default='download', choices=['never', 'download', 'change', 'always']), + checksum_alg=dict(required=False, default='md5', choices=['md5', 'sha1']), + unredirected_headers=dict(type='list', elements='str', required=False), directory_mode=dict(type='str'), ), add_file_common_args=True, diff --git a/plugins/modules/memset_dns_reload.py b/plugins/modules/memset_dns_reload.py index cb8ebe9191..7781abbf76 100644 --- a/plugins/modules/memset_dns_reload.py +++ b/plugins/modules/memset_dns_reload.py @@ -36,9 +36,9 @@ options: default: false type: bool description: - - If V(true), it polls the reload job's status and return when the job has completed (unless the 30 second timeout is - reached first). If the timeout is reached then the task does not return as failed, but stderr indicates that the polling - failed. + - Boolean value, if set will poll the reload job's status and return when the job has completed (unless the 30 second + timeout is reached first). If the timeout is reached then the task will not be marked as failed, but stderr will indicate + that the polling failed. """ EXAMPLES = r""" @@ -167,7 +167,7 @@ def main(): module = AnsibleModule( argument_spec=dict( api_key=dict(required=True, type='str', no_log=True), - poll=dict(default=False, type='bool') + poll=dict(required=False, default=False, type='bool') ), supports_check_mode=False ) diff --git a/plugins/modules/memset_server_info.py b/plugins/modules/memset_server_info.py index 59d395a161..df7ecb712f 100644 --- a/plugins/modules/memset_server_info.py +++ b/plugins/modules/memset_server_info.py @@ -148,7 +148,7 @@ memset_api: description: The network zone(s) the server is in. returned: always type: list - sample: ["reading"] + sample: ['reading'] nickname: description: Customer-set nickname for the server. returned: always diff --git a/plugins/modules/memset_zone.py b/plugins/modules/memset_zone.py index 553328909d..2c80503bec 100644 --- a/plugins/modules/memset_zone.py +++ b/plugins/modules/memset_zone.py @@ -289,8 +289,8 @@ def main(): state=dict(required=True, choices=['present', 'absent'], type='str'), api_key=dict(required=True, type='str', no_log=True), name=dict(required=True, aliases=['nickname'], type='str'), - ttl=dict(default=0, choices=[0, 300, 600, 900, 1800, 3600, 7200, 10800, 21600, 43200, 86400], type='int'), - force=dict(default=False, type='bool') + ttl=dict(required=False, default=0, choices=[0, 300, 600, 900, 1800, 3600, 7200, 10800, 21600, 43200, 86400], type='int'), + force=dict(required=False, default=False, type='bool') ), supports_check_mode=True ) diff --git a/plugins/modules/memset_zone_record.py b/plugins/modules/memset_zone_record.py index fd87c35fa0..7c16ee31eb 100644 --- a/plugins/modules/memset_zone_record.py +++ b/plugins/modules/memset_zone_record.py @@ -356,15 +356,15 @@ def main(): global module module = AnsibleModule( argument_spec=dict( - state=dict(default='present', choices=['present', 'absent'], type='str'), + state=dict(required=False, default='present', choices=['present', 'absent'], type='str'), api_key=dict(required=True, type='str', no_log=True), zone=dict(required=True, type='str'), type=dict(required=True, choices=['A', 'AAAA', 'CNAME', 'MX', 'NS', 'SRV', 'TXT'], type='str'), address=dict(required=True, aliases=['ip', 'data'], type='str'), - record=dict(default='', type='str'), - ttl=dict(default=0, choices=[0, 300, 600, 900, 1800, 3600, 7200, 10800, 21600, 43200, 86400], type='int'), - priority=dict(default=0, type='int'), - relative=dict(default=False, type='bool') + record=dict(required=False, default='', type='str'), + ttl=dict(required=False, default=0, choices=[0, 300, 600, 900, 1800, 3600, 7200, 10800, 21600, 43200, 86400], type='int'), + priority=dict(required=False, default=0, type='int'), + relative=dict(required=False, default=False, type='bool') ), supports_check_mode=True ) diff --git a/plugins/modules/mksysb.py b/plugins/modules/mksysb.py index 7e188ec844..3b6d322f23 100644 --- a/plugins/modules/mksysb.py +++ b/plugins/modules/mksysb.py @@ -77,7 +77,7 @@ options: storage_path: type: str description: - - Storage path where the mksysb backup is stored. + - Storage path where the mksysb will stored. required: true use_snapshot: description: @@ -96,6 +96,10 @@ EXAMPLES = r""" """ RETURN = r""" +changed: + description: Return changed for mksysb actions as true or false. + returned: always + type: bool msg: description: Return message regarding the action. returned: always diff --git a/plugins/modules/modprobe.py b/plugins/modules/modprobe.py index d5bb6fddbb..cff77e9558 100644 --- a/plugins/modules/modprobe.py +++ b/plugins/modules/modprobe.py @@ -50,11 +50,11 @@ options: - Persistency between reboots for configured module. - This option creates files in C(/etc/modules-load.d/) and C(/etc/modprobe.d/) that make your module configuration persistent during reboots. - - If V(present), adds module name to C(/etc/modules-load.d/) and params to C(/etc/modprobe.d/) so the module is loaded - on next reboot. - - If V(absent), comments out module name from C(/etc/modules-load.d/) and comments out params from C(/etc/modprobe.d/) - so the module is not loaded on next reboot. - - If V(disabled), does not touch anything and leaves C(/etc/modules-load.d/) and C(/etc/modprobe.d/) as it is. + - If V(present), adds module name to C(/etc/modules-load.d/) and params to C(/etc/modprobe.d/) so the module will be + loaded on next reboot. + - If V(absent), will comment out module name from C(/etc/modules-load.d/) and comment out params from C(/etc/modprobe.d/) + so the module will not be loaded on next reboot. + - If V(disabled), will not touch anything and leave C(/etc/modules-load.d/) and C(/etc/modprobe.d/) as it is. - Note that it is usually a better idea to rely on the automatic module loading by PCI IDs, USB IDs, DMI IDs or similar triggers encoded in the kernel modules themselves instead of configuration like this. - In fact, most modern kernel modules are prepared for automatic loading already. diff --git a/plugins/modules/monit.py b/plugins/modules/monit.py index a10967264c..65b6c606e9 100644 --- a/plugins/modules/monit.py +++ b/plugins/modules/monit.py @@ -35,8 +35,8 @@ options: type: str timeout: description: - - If there are pending actions for the service monitored by monit, then it checks for up to this many seconds to verify - the requested action has been performed. The module sleeps for five seconds between each check. + - If there are pending actions for the service monitored by monit, then Ansible will check for up to this many seconds + to verify the requested action has been performed. Ansible will sleep for five seconds between each check. default: 300 type: int author: diff --git a/plugins/modules/mqtt.py b/plugins/modules/mqtt.py index b35a257da7..9c610d02c7 100644 --- a/plugins/modules/mqtt.py +++ b/plugins/modules/mqtt.py @@ -44,7 +44,7 @@ options: type: str description: - MQTT client identifier. - - If not specified, it uses a value C(hostname + pid). + - If not specified, a value C(hostname + pid) will be used. topic: type: str description: @@ -72,22 +72,22 @@ options: type: path description: - The path to the Certificate Authority certificate files that are to be treated as trusted by this client. If this - is the only option given then the client operates in a similar manner to a web browser. That is to say it requires - the broker to have a certificate signed by the Certificate Authorities in ca_certs and communicates using TLS v1, - but does not attempt any form of authentication. This provides basic network encryption but may not be sufficient + is the only option given then the client will operate in a similar manner to a web browser. That is to say it will + require the broker to have a certificate signed by the Certificate Authorities in ca_certs and will communicate using + TLS v1, but will not attempt any form of authentication. This provides basic network encryption but may not be sufficient depending on how the broker is configured. aliases: [ca_certs] client_cert: type: path description: - - The path pointing to the PEM encoded client certificate. If this is set it is used as client information for TLS based - authentication. Support for this feature is broker dependent. + - The path pointing to the PEM encoded client certificate. If this is not None it will be used as client information + for TLS based authentication. Support for this feature is broker dependent. aliases: [certfile] client_key: type: path description: - - The path pointing to the PEM encoded client private key. If this is set it is used as client information for TLS based - authentication. Support for this feature is broker dependent. + - The path pointing to the PEM encoded client private key. If this is not None it will be used as client information + for TLS based authentication. Support for this feature is broker dependent. aliases: [keyfile] tls_version: description: @@ -162,15 +162,15 @@ def main(): port=dict(default=1883, type='int'), topic=dict(required=True), payload=dict(required=True), - client_id=dict(), + client_id=dict(default=None), qos=dict(default="0", choices=["0", "1", "2"]), retain=dict(default=False, type='bool'), - username=dict(), - password=dict(no_log=True), - ca_cert=dict(type='path', aliases=['ca_certs']), - client_cert=dict(type='path', aliases=['certfile']), - client_key=dict(type='path', aliases=['keyfile']), - tls_version=dict(choices=['tlsv1.1', 'tlsv1.2']) + username=dict(default=None), + password=dict(default=None, no_log=True), + ca_cert=dict(default=None, type='path', aliases=['ca_certs']), + client_cert=dict(default=None, type='path', aliases=['certfile']), + client_key=dict(default=None, type='path', aliases=['keyfile']), + tls_version=dict(default=None, choices=['tlsv1.1', 'tlsv1.2']) ), supports_check_mode=True ) diff --git a/plugins/modules/mssql_db.py b/plugins/modules/mssql_db.py index 8a15bfe699..e1fc222e71 100644 --- a/plugins/modules/mssql_db.py +++ b/plugins/modules/mssql_db.py @@ -158,7 +158,7 @@ def main(): login_password=dict(default='', no_log=True), login_host=dict(required=True), login_port=dict(default='1433'), - target=dict(), + target=dict(default=None), autocommit=dict(type='bool', default=False), state=dict( default='present', choices=['present', 'absent', 'import']) diff --git a/plugins/modules/mssql_script.py b/plugins/modules/mssql_script.py index 37bd0853d0..872b2ee13d 100644 --- a/plugins/modules/mssql_script.py +++ b/plugins/modules/mssql_script.py @@ -23,7 +23,7 @@ attributes: check_mode: support: partial details: - - The script is not be executed in check mode. + - The script will not be executed in check mode. diff_mode: support: none @@ -64,8 +64,8 @@ options: version_added: 8.4.0 output: description: - - With V(default) each row is returned as a list of values. See RV(query_results). - - Output format V(dict) returns dictionary with the column names as keys. See RV(query_results_dict). + - With V(default) each row will be returned as a list of values. See RV(query_results). + - Output format V(dict) will return dictionary with the column names as keys. See RV(query_results_dict). - V(dict) requires named columns to be returned by each query otherwise an error is thrown. choices: ["dict", "default"] default: 'default' @@ -170,33 +170,12 @@ query_results: type: list elements: list returned: success and O(output=default) - sample: - [ - [ - [ - [ - "Batch 0 - Select 0" - ] - ], - [ - [ - "Batch 0 - Select 1" - ] - ] - ], - [ - [ - [ - "Batch 1 - Select 0" - ] - ] - ] - ] + sample: [[[["Batch 0 - Select 0"]], [["Batch 0 - Select 1"]]], [[["Batch 1 - Select 0"]]]] contains: queries: description: - List of result sets of each query. - - If a query returns no results, the results of this and all the following queries are not included in the output. + - If a query returns no results, the results of this and all the following queries will not be included in the output. - Use the V(GO) keyword in O(script) to separate queries. type: list elements: list @@ -218,33 +197,12 @@ query_results_dict: type: list elements: list returned: success and O(output=dict) - sample: - [ - [ - [ - [ - "Batch 0 - Select 0" - ] - ], - [ - [ - "Batch 0 - Select 1" - ] - ] - ], - [ - [ - [ - "Batch 1 - Select 0" - ] - ] - ] - ] + sample: [[[["Batch 0 - Select 0"]], [["Batch 0 - Select 1"]]], [[["Batch 1 - Select 0"]]]] contains: queries: description: - List of result sets of each query. - - If a query returns no results, the results of this and all the following queries are not included in the output. + - If a query returns no results, the results of this and all the following queries will not be included in the output. Use V(GO) keyword to separate queries. type: list elements: list @@ -282,7 +240,7 @@ def clean_output(o): def run_module(): module_args = dict( - name=dict(aliases=['db'], default=''), + name=dict(required=False, aliases=['db'], default=''), login_user=dict(), login_password=dict(no_log=True), login_host=dict(required=True), diff --git a/plugins/modules/nagios.py b/plugins/modules/nagios.py index 830a805f87..b3fb65bc63 100644 --- a/plugins/modules/nagios.py +++ b/plugins/modules/nagios.py @@ -22,6 +22,11 @@ description: - The C(nagios) module is not idempotent. - All actions require the O(host) parameter to be given explicitly. In playbooks you can use the C({{inventory_hostname}}) variable to refer to the host the playbook is currently running on. + - You can specify multiple services at once by separating them with commas, for example O(services=httpd,nfs,puppet). + - When specifying what service to handle there is a special service value, O(host), which will handle alerts/downtime/acknowledge + for the I(host itself), for example O(services=host). This keyword may not be given with other services at the same time. + B(Setting alerts/downtime/acknowledge for a host does not affect alerts/downtime/acknowledge for any of the services running + on it.) To schedule downtime for all services on particular host use keyword "all", for example O(services=all). extends_documentation_fragment: - community.general.attributes attributes: @@ -83,12 +88,6 @@ options: description: - What to manage downtime/alerts for. Separate multiple services with commas. - 'B(Required) option when O(action) is one of: V(downtime), V(acknowledge), V(forced_check), V(enable_alerts), V(disable_alerts).' - - You can specify multiple services at once by separating them with commas, for example O(services=httpd,nfs,puppet). - - When specifying what O(services) to handle there is a special service value, V(host), which handles alerts/downtime/acknowledge - for the I(host itself), for example O(services=host). This keyword may not be given with other services at the same - time. B(Setting alerts/downtime/acknowledge for a host does not affect alerts/downtime/acknowledge for any of the - services running on it.) To schedule downtime for all O(services) on particular host use keyword V(all), for example - O(services=all). aliases: ["service"] type: str servicegroup: @@ -98,8 +97,8 @@ options: type: str command: description: - - The raw command to send to Nagios, which should not include the submitted time header or the line-feed. - - B(Required) option when O(action=command). + - The raw command to send to nagios, which should not include the submitted time header or the line-feed. + - B(Required) option when using the V(command) O(action). type: str author: "Tim Bielawa (@tbielawa)" diff --git a/plugins/modules/netcup_dns.py b/plugins/modules/netcup_dns.py index c48e0a2fb2..900eb01e0d 100644 --- a/plugins/modules/netcup_dns.py +++ b/plugins/modules/netcup_dns.py @@ -68,7 +68,7 @@ options: default: false description: - Whether the record should be the only one for that record type and record name. Only use with O(state=present). - - This deletes all other records with the same record name and type. + - This will delete all other records with the same record name and type. priority: description: - Record priority. Required for O(type=MX). @@ -213,15 +213,15 @@ def main(): customer_id=dict(required=True, type='int'), domain=dict(required=True), - record=dict(default='@', aliases=['name']), + record=dict(required=False, default='@', aliases=['name']), type=dict(required=True, choices=['A', 'AAAA', 'MX', 'CNAME', 'CAA', 'SRV', 'TXT', 'TLSA', 'NS', 'DS', 'OPENPGPKEY', 'SMIMEA', 'SSHFP']), value=dict(required=True), - priority=dict(type='int'), - solo=dict(type='bool', default=False), - state=dict(choices=['present', 'absent'], default='present'), - timeout=dict(type='int', default=5), + priority=dict(required=False, type='int'), + solo=dict(required=False, type='bool', default=False), + state=dict(required=False, choices=['present', 'absent'], default='present'), + timeout=dict(required=False, type='int', default=5), ), supports_check_mode=True diff --git a/plugins/modules/newrelic_deployment.py b/plugins/modules/newrelic_deployment.py index af58402a44..b9ce8af586 100644 --- a/plugins/modules/newrelic_deployment.py +++ b/plugins/modules/newrelic_deployment.py @@ -62,8 +62,8 @@ options: required: false validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed - certificates. + - If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using + self-signed certificates. required: false default: true type: bool @@ -102,14 +102,14 @@ def main(): module = AnsibleModule( argument_spec=dict( token=dict(required=True, no_log=True), - app_name=dict(), - application_id=dict(), - changelog=dict(), - description=dict(), + app_name=dict(required=False), + application_id=dict(required=False), + changelog=dict(required=False), + description=dict(required=False), revision=dict(required=True), - user=dict(), + user=dict(required=False), validate_certs=dict(default=True, type='bool'), - app_name_exact_match=dict(type='bool', default=False), + app_name_exact_match=dict(required=False, type='bool', default=False), ), required_one_of=[['app_name', 'application_id']], required_if=[('app_name_exact_match', True, ['app_name'])], diff --git a/plugins/modules/nexmo.py b/plugins/modules/nexmo.py index 2d3a62b053..ef6502532d 100644 --- a/plugins/modules/nexmo.py +++ b/plugins/modules/nexmo.py @@ -45,12 +45,12 @@ options: msg: type: str description: - - Message text to send. Messages longer than 160 characters are split into multiple messages. + - Message to text to send. Messages longer than 160 characters will be split into multiple messages. required: true validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed - certificates. + - If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using + self-signed certificates. type: bool default: true extends_documentation_fragment: diff --git a/plugins/modules/nictagadm.py b/plugins/modules/nictagadm.py index 07b17bcf9e..a02a8fcffd 100644 --- a/plugins/modules/nictagadm.py +++ b/plugins/modules/nictagadm.py @@ -35,7 +35,7 @@ options: type: str etherstub: description: - - Specifies that the nic tag is attached to a created O(etherstub). + - Specifies that the nic tag will be attached to a created O(etherstub). - Parameter O(etherstub) is mutually exclusive with both O(mtu), and O(mac). type: bool default: false @@ -46,7 +46,7 @@ options: type: int force: description: - - When O(state=absent) this switch uses the C(-f) parameter and delete the nic tag regardless of existing VMs. + - When O(state=absent) this switch will use the C(-f) parameter and delete the nic tag regardless of existing VMs. type: bool default: false state: @@ -83,7 +83,7 @@ mac: type: str sample: 00:1b:21:a3:f5:4d etherstub: - description: Specifies if the nic tag was created and attached to an etherstub. + description: Specifies if the nic tag will create and attach to an etherstub. returned: always type: bool sample: false @@ -93,7 +93,7 @@ mtu: type: int sample: 1500 force: - description: Shows if C(-f) was used during the deletion of a nic tag. + description: Shows if -f was used during the deletion of a nic tag. returned: always type: bool sample: false diff --git a/plugins/modules/nmcli.py b/plugins/modules/nmcli.py index 0d35e5aacc..049273130d 100644 --- a/plugins/modules/nmcli.py +++ b/plugins/modules/nmcli.py @@ -21,10 +21,10 @@ extends_documentation_fragment: description: - Manage the network devices. Create, modify and manage various connection and device type, for example V(ethernet), V(team), V(bond), V(vlan) and so on. - - 'On CentOS 8 and Fedora >=29 like systems, the requirements can be met by installing the following packages: C(NetworkManager).' - - 'On CentOS 7 and Fedora <=28 like systems, the requirements can be met by installing the following packages: C(NetworkManager-tui).' - - 'On Ubuntu and Debian like systems, the requirements can be met by installing the following packages: C(network-manager).' - - 'On openSUSE, the requirements can be met by installing the following packages: C(NetworkManager).' + - 'On CentOS 8 and Fedora >=29 like systems, the requirements can be met by installing the following packages: NetworkManager.' + - 'On CentOS 7 and Fedora <=28 like systems, the requirements can be met by installing the following packages: NetworkManager-tui.' + - 'On Ubuntu and Debian like systems, the requirements can be met by installing the following packages: network-manager.' + - 'On openSUSE, the requirements can be met by installing the following packages: NetworkManager.' attributes: check_mode: support: full @@ -34,8 +34,8 @@ options: state: description: - Whether the device should exist or not, taking action if the state is different from what is stated. - - Using O(state=present) creates connection set to be brought up automatically. - - Using O(state=up) and O(state=down) does not modify connection with other parameters. These states have been added + - Using O(state=present) to create connection will automatically bring connection up. + - Using O(state=up) and O(state=down) will not modify connection with other parameters. These states have been added in community.general 9.5.0. type: str required: true @@ -48,7 +48,7 @@ options: default: true autoconnect_priority: description: - - The priority of the connection profile for autoconnect. If set, connection profiles with higher priority are preferred. + - The priority of the connection profile for autoconnect. If set, connection profiles with higher priority will be preferred. type: int version_added: 11.0.0 autoconnect_retries: @@ -71,9 +71,9 @@ options: ifname: description: - The interface to bind the connection to. - - The connection is only applicable to this interface name. + - The connection will only be applicable to this interface name. - A special value of V(*) can be used for interface-independent connections. - - The O(ifname) argument is mandatory for all connection types except bond, team, bridge, vlan and vpn. + - The ifname argument is mandatory for all connection types except bond, team, bridge, vlan and vpn. - This parameter defaults to O(conn_name) when left unset for all connection types except vpn that removes it. type: str type: @@ -501,7 +501,7 @@ options: runner_fast_rate: description: - Option specifies the rate at which our link partner is asked to transmit LACPDU packets. If this is V(true) then packets - are sent once per second. Otherwise they are sent every 30 seconds. + will be sent once per second. Otherwise they will be sent every 30 seconds. - Only allowed for O(runner=lacp). type: bool version_added: 6.5.0 @@ -595,7 +595,7 @@ options: - Indicates whether Fast Initial Link Setup (802.11ai) must be enabled for the connection. - One of V(0) (use global default value), V(1) (disable FILS), V(2) (enable FILS if the supplicant and the access point support it) or V(3) (enable FILS and fail if not supported). - - When set to V(0) and no global default is set, FILS is optionally enabled. + - When set to V(0) and no global default is set, FILS will be optionally enabled. type: int choices: [0, 1, 2, 3] default: 0 @@ -639,7 +639,7 @@ options: - Indicates whether Protected Management Frames (802.11w) must be enabled for the connection. - One of V(0) (use global default value), V(1) (disable PMF), V(2) (enable PMF if the supplicant and the access point support it) or V(3) (enable PMF and fail if not supported). - - When set to V(0) and no global default is set, PMF is optionally enabled. + - When set to V(0) and no global default is set, PMF will be optionally enabled. type: int choices: [0, 1, 2, 3] default: 0 @@ -672,8 +672,8 @@ options: description: - Controls the interpretation of WEP keys. - Allowed values are V(1), in which case the key is either a 10- or 26-character hexadecimal string, or a 5- or - 13-character ASCII password; or V(2), in which case the passphrase is provided as a string and it is hashed using - the de-facto MD5 method to derive the actual WEP key. + 13-character ASCII password; or V(2), in which case the passphrase is provided as a string and will be hashed + using the de-facto MD5 method to derive the actual WEP key. type: int choices: [1, 2] wep-key0: @@ -708,8 +708,8 @@ options: wps-method: description: - Flags indicating which mode of WPS is to be used if any. - - There is little point in changing the default setting as NetworkManager automatically determines whether it is - feasible to start WPS enrollment from the Access Point capabilities. + - There is little point in changing the default setting as NetworkManager will automatically determine whether it + is feasible to start WPS enrollment from the Access Point capabilities. - WPS can be disabled by setting this property to a value of V(1). type: int default: 0 @@ -753,8 +753,8 @@ options: description: - 802.11 frequency band of the network. - One of V(a) for 5GHz 802.11a or V(bg) for 2.4GHz 802.11. - - This locks associations to the Wi-Fi network to the specific band, so for example, if V(a) is specified, the device - does not associate with the same network in the 2.4GHz band even if the network's settings are compatible. + - This will lock associations to the Wi-Fi network to the specific band, so for example, if V(a) is specified, the + device will not associate with the same network in the 2.4GHz band even if the network's settings are compatible. - This setting depends on specific driver capability and may not work with all drivers. type: str choices: [a, bg] @@ -767,7 +767,7 @@ options: channel: description: - Wireless channel to use for the Wi-Fi connection. - - The device only joins (or creates for Ad-Hoc networks) a Wi-Fi network on the specified channel. + - The device will only join (or create for Ad-Hoc networks) a Wi-Fi network on the specified channel. - Because channel numbers overlap between bands, this property also requires the O(wifi.band) property to be set. type: int default: 0 @@ -782,7 +782,7 @@ options: - With O(wifi.cloned-mac-address) setting V(random) or V(stable), by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. - - Note that the least significant bit of the first MAC address is always unset to create a unicast MAC address. + - Note that the least significant bit of the first MAC address will always be unset to create a unicast MAC address. - If the property is V(null), it is eligible to be overwritten by a default connection setting. - If the value is still V(null) or an empty string, the default is to create a locally-administered, unicast MAC address. @@ -792,12 +792,12 @@ options: 3 bytes using the V(random) or V(stable) algorithm. - If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. - - For example, a value of V(FE:FF:FF:00:00:00 68:F7:28:00:00:00) sets the OUI of the MAC address to 68:F7:28, while - the lower bits are randomized. - - A value of V(02:00:00:00:00:00 00:00:00:00:00:00) creates a fully scrambled globally-administered, burned-in MAC - address. + - For example, a value of V(FE:FF:FF:00:00:00 68:F7:28:00:00:00) will set the OUI of the MAC address to 68:F7:28, + while the lower bits are randomized. + - A value of V(02:00:00:00:00:00 00:00:00:00:00:00) will create a fully scrambled globally-administered, burned-in + MAC address. - If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, V(02:00:00:00:00:00 - 00:00:00:00:00:00 02:00:00:00:00:00) creates a fully scrambled MAC address, randomly locally or globally administered. + 00:00:00:00:00:00 02:00:00:00:00:00) will create a fully scrambled MAC address, randomly locally or globally administered. type: str hidden: description: @@ -827,7 +827,7 @@ options: choices: [0, 1, 2] mac-address: description: - - If specified, this connection only applies to the Wi-Fi device whose permanent MAC address matches. + - If specified, this connection will only apply to the Wi-Fi device whose permanent MAC address matches. - This property does not change the MAC address of the device (for example for MAC spoofing). type: str mode: @@ -896,25 +896,25 @@ options: apn: description: - The GPRS Access Point Name specifying the APN used when establishing a data session with the GSM-based network. - - The APN often determines how the user is billed for their network usage and whether the user has access to the - Internet or just a provider-specific walled-garden, so it is important to use the correct APN for the user's mobile - broadband plan. + - The APN often determines how the user will be billed for their network usage and whether the user has access to + the Internet or just a provider-specific walled-garden, so it is important to use the correct APN for the user's + mobile broadband plan. - The APN may only be composed of the characters a-z, 0-9, ., and - per GSM 03.60 Section 14.9. type: str auto-config: - description: When V(true), the settings such as O(gsm.apn), O(gsm.username), or O(gsm.password) default to values - that match the network the modem registers to in the Mobile Broadband Provider database. + description: When V(true), the settings such as O(gsm.apn), O(gsm.username), or O(gsm.password) will default to values + that match the network the modem will register to in the Mobile Broadband Provider database. type: bool default: false device-id: description: - The device unique identifier (as given by the V(WWAN) management service) which this connection applies to. - - If given, the connection only applies to the specified device. + - If given, the connection will only apply to the specified device. type: str home-only: description: - - When V(true), only connections to the home network are allowed. - - Connections to roaming networks are not made. + - When V(true), only connections to the home network will be allowed. + - Connections to roaming networks will not be made. type: bool default: false mtu: @@ -925,7 +925,7 @@ options: network-id: description: - The Network ID (GSM LAI format, ie MCC-MNC) to force specific network registration. - - If the Network ID is specified, NetworkManager attempts to force the device to register only on the specified + - If the Network ID is specified, NetworkManager will attempt to force the device to register only on the specified network. - This can be used to ensure that the device does not roam when direct roaming control of the device is not otherwise possible. @@ -944,7 +944,7 @@ options: - NMSettingSecretFlags indicating how to handle the O(gsm.password) property. - 'Following choices are allowed: V(0) B(NONE): The system is responsible for providing and storing this secret (default), V(1) B(AGENT_OWNED): A user secret agent is responsible for providing and storing this secret; when - it is required agents are asked to retrieve it V(2) B(NOT_SAVED): This secret should not be saved, but should + it is required agents will be asked to retrieve it V(2) B(NOT_SAVED): This secret should not be saved, but should be requested from the user each time it is needed V(4) B(NOT_REQUIRED): In situations where it cannot be automatically determined that the secret is required (some VPNs and PPP providers do not require all secrets) this flag indicates that the specific secret is not required.' @@ -966,14 +966,14 @@ options: sim-id: description: - The SIM card unique identifier (as given by the C(WWAN) management service) which this connection applies to. - - If given, the connection applies to any device also allowed by O(gsm.device-id) which contains a SIM card matching + - If given, the connection will apply to any device also allowed by O(gsm.device-id) which contains a SIM card matching the given identifier. type: str sim-operator-id: description: - A MCC/MNC string like V(310260) or V(21601I) identifying the specific mobile network operator which this connection applies to. - - If given, the connection applies to any device also allowed by O(gsm.device-id) and O(gsm.sim-id) which contains + - If given, the connection will apply to any device also allowed by O(gsm.device-id) and O(gsm.sim-id) which contains a SIM card provisioned by the given operator. type: str username: @@ -1032,8 +1032,8 @@ options: ip4-auto-default-route: description: - Whether to enable special handling of the IPv4 default route. - - If enabled, the IPv4 default route from O(wireguard.peer-routes) is placed to a dedicated routing-table and two - policy routing rules are added. + - If enabled, the IPv4 default route from O(wireguard.peer-routes) will be placed to a dedicated routing-table and + two policy routing rules will be added. - The fwmark number is also used as routing-table for the default-route, and if fwmark is zero, an unused fwmark/table is chosen automatically. This corresponds to what wg-quick does with Table=auto and what WireGuard calls "Improved Rule-based Routing". @@ -1043,7 +1043,7 @@ options: - Like O(wireguard.ip4-auto-default-route), but for the IPv6 default route. type: bool listen-port: - description: The WireGuard connection listen-port. If not specified, the port is chosen randomly when the interface + description: The WireGuard connection listen-port. If not specified, the port will be chosen randomly when the interface comes up. type: int mtu: @@ -1056,12 +1056,12 @@ options: peer-routes: description: - Whether to automatically add routes for the AllowedIPs ranges of the peers. - - If V(true) (the default), NetworkManager automatically adds routes in the routing tables according to C(ipv4.route-table) + - If V(true) (the default), NetworkManager will automatically add routes in the routing tables according to C(ipv4.route-table) and C(ipv6.route-table). Usually you want this automatism enabled. - If V(false), no such routes are added automatically. In this case, the user may want to configure static routes in C(ipv4.routes) and C(ipv6.routes), respectively. - Note that if the peer's AllowedIPs is V(0.0.0.0/0) or V(::/0) and the profile's C(ipv4.never-default) or C(ipv6.never-default) - setting is enabled, the peer route for this peer is not added automatically. + setting is enabled, the peer route for this peer will not be added automatically. type: bool private-key: description: The 256 bit private-key in base64 encoding. @@ -1079,7 +1079,7 @@ options: version_added: 5.1.0 suboptions: permissions: - description: User that has permission to use the connection. + description: User that will have permission to use the connection. type: str required: true service-type: @@ -1096,7 +1096,7 @@ options: - NMSettingSecretFlags indicating how to handle the C(vpn.password) property. - 'Following choices are allowed: V(0) B(NONE): The system is responsible for providing and storing this secret (default); V(1) B(AGENT_OWNED): A user secret agent is responsible for providing and storing this secret; when - it is required agents are asked to retrieve it; V(2) B(NOT_SAVED): This secret should not be saved, but should + it is required agents will be asked to retrieve it; V(2) B(NOT_SAVED): This secret should not be saved, but should be requested from the user each time it is needed; V(4) B(NOT_REQUIRED): In situations where it cannot be automatically determined that the secret is required (some VPNs and PPP providers do not require all secrets) this flag indicates that the specific secret is not required.' @@ -1115,8 +1115,7 @@ options: ipsec-psk: description: - The pre-shared key in base64 encoding. - - > - You can encode using this Ansible Jinja2 expression: V("0s{{ '[YOUR PRE-SHARED KEY]' | ansible.builtin.b64encode }}"). + - "You can encode using this Ansible jinja2 expression: V(\"0s{{ '[YOUR PRE-SHARED KEY]' | ansible.builtin.b64encode }}\")." - This is only used when O(vpn.ipsec-enabled=true). type: str sriov: diff --git a/plugins/modules/nosh.py b/plugins/modules/nosh.py index 7cd4f4ad66..da9db091bc 100644 --- a/plugins/modules/nosh.py +++ b/plugins/modules/nosh.py @@ -35,22 +35,22 @@ options: required: false choices: [started, stopped, reset, restarted, reloaded] description: - - V(started)/V(stopped) are idempotent actions that do not run commands unless necessary. - - V(restarted) always bounces the service. - - V(reloaded) sends a SIGHUP or starts the service. - - V(reset) starts or stops the service according to whether it is enabled or not. + - V(started)/V(stopped) are idempotent actions that will not run commands unless necessary. + - V(restarted) will always bounce the service. + - V(reloaded) will send a SIGHUP or start the service. + - V(reset) will start or stop the service according to whether it is enabled or not. enabled: required: false type: bool description: - Enable or disable the service, independently of C(*.preset) file preference or running state. Mutually exclusive with - O(preset). It takes effect prior to O(state=reset). + O(preset). Will take effect prior to O(state=reset). preset: required: false type: bool description: - Enable or disable the service according to local preferences in C(*.preset) files. Mutually exclusive with O(enabled). - Only has an effect if set to true. It takes effect prior to O(state=reset). + Only has an effect if set to true. Will take effect prior to O(state=reset). user: required: false default: false diff --git a/plugins/modules/nsupdate.py b/plugins/modules/nsupdate.py index 4049996ca3..9f665626b2 100644 --- a/plugins/modules/nsupdate.py +++ b/plugins/modules/nsupdate.py @@ -63,8 +63,8 @@ options: type: str zone: description: - - DNS record is modified on this O(zone). - - When omitted, DNS is queried to attempt finding the correct zone. + - DNS record will be modified on this O(zone). + - When omitted DNS will be queried to attempt finding the correct zone. type: str record: description: @@ -144,6 +144,10 @@ EXAMPLES = r""" """ RETURN = r""" +changed: + description: If module has modified record. + returned: success + type: str record: description: DNS record. returned: success @@ -472,18 +476,18 @@ def main(): module = AnsibleModule( argument_spec=dict( - state=dict(default='present', choices=['present', 'absent'], type='str'), + state=dict(required=False, default='present', choices=['present', 'absent'], type='str'), server=dict(required=True, type='str'), - port=dict(default=53, type='int'), - key_name=dict(type='str'), - key_secret=dict(type='str', no_log=True), - key_algorithm=dict(default='hmac-md5', choices=tsig_algs, type='str'), - zone=dict(type='str'), + port=dict(required=False, default=53, type='int'), + key_name=dict(required=False, type='str'), + key_secret=dict(required=False, type='str', no_log=True), + key_algorithm=dict(required=False, default='hmac-md5', choices=tsig_algs, type='str'), + zone=dict(required=False, default=None, type='str'), record=dict(required=True, type='str'), - type=dict(default='A', type='str'), - ttl=dict(default=3600, type='int'), - value=dict(type='list', elements='str'), - protocol=dict(default='tcp', choices=['tcp', 'udp'], type='str') + type=dict(required=False, default='A', type='str'), + ttl=dict(required=False, default=3600, type='int'), + value=dict(required=False, default=None, type='list', elements='str'), + protocol=dict(required=False, default='tcp', choices=['tcp', 'udp'], type='str') ), supports_check_mode=True ) diff --git a/plugins/modules/oci_vcn.py b/plugins/modules/oci_vcn.py index 56a637ac2c..e44d2b0f20 100644 --- a/plugins/modules/oci_vcn.py +++ b/plugins/modules/oci_vcn.py @@ -162,12 +162,17 @@ def main(): ) module_args.update( dict( - cidr_block=dict(type="str"), - compartment_id=dict(type="str"), - display_name=dict(type="str", aliases=["name"]), - dns_label=dict(type="str"), - state=dict(type="str", default="present", choices=["absent", "present"]), - vcn_id=dict(type="str", aliases=["id"]), + cidr_block=dict(type="str", required=False), + compartment_id=dict(type="str", required=False), + display_name=dict(type="str", required=False, aliases=["name"]), + dns_label=dict(type="str", required=False), + state=dict( + type="str", + required=False, + default="present", + choices=["absent", "present"], + ), + vcn_id=dict(type="str", required=False, aliases=["id"]), ) ) diff --git a/plugins/modules/odbc.py b/plugins/modules/odbc.py index 41b5df4f08..54c923cf1e 100644 --- a/plugins/modules/odbc.py +++ b/plugins/modules/odbc.py @@ -66,7 +66,6 @@ EXAMPLES = r""" changed_when: false """ -# @FIXME RV 'results' is meant to be used when 'loop:' was used with the module. RETURN = r""" results: description: List of lists of strings containing selected rows, likely empty for DDL statements. diff --git a/plugins/modules/office_365_connector_card.py b/plugins/modules/office_365_connector_card.py index 6b8384a7ca..8ff82fecc1 100644 --- a/plugins/modules/office_365_connector_card.py +++ b/plugins/modules/office_365_connector_card.py @@ -17,7 +17,7 @@ description: U(https://learn.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-reference#connector-card-for-microsoft-365-groups). author: "Marc Sensenich (@marc-sensenich)" notes: - - This module is not idempotent, therefore if you run the same task twice then you create two Connector Cards. + - This module is not idempotent, therefore if the same task is run twice there will be two Connector Cards created. extends_documentation_fragment: - community.general.attributes attributes: @@ -35,7 +35,7 @@ options: type: str description: - A string used for summarizing card content. - - This is the message subject. + - This will be shown as the message subject. - This is required if the text parameter is not populated. color: type: str @@ -49,13 +49,13 @@ options: type: str description: - The main text of the card. - - This is rendered below the sender information and optional title, + - This will be rendered below the sender information and optional title, - And above any sections or actions present. actions: type: list elements: dict description: - - This array of objects is used to power the action links found at the bottom of the card. + - This array of objects will power the action links found at the bottom of the card. sections: type: list elements: dict diff --git a/plugins/modules/one_host.py b/plugins/modules/one_host.py index 7c43da3058..8246172c90 100644 --- a/plugins/modules/one_host.py +++ b/plugins/modules/one_host.py @@ -36,8 +36,8 @@ options: state: description: - Takes the host to the desired lifecycle state. - - If V(absent) the host is deleted from the cluster. - - If V(present) the host is created in the cluster (includes V(enabled), V(disabled) and V(offline) states). + - If V(absent) the host will be deleted from the cluster. + - If V(present) the host will be created in the cluster (includes V(enabled), V(disabled) and V(offline) states). - If V(enabled) the host is fully operational. - V(disabled), for example to perform maintenance operations. - V(offline), host is totally offline. diff --git a/plugins/modules/one_image.py b/plugins/modules/one_image.py index d9a21f86b7..e5ffb68b4f 100644 --- a/plugins/modules/one_image.py +++ b/plugins/modules/one_image.py @@ -48,8 +48,8 @@ options: type: bool new_name: description: - - A name that is assigned to the existing or new image. - - In the case of cloning, by default O(new_name) is set to the name of the origin image with the prefix 'Copy of'. + - A name that will be assigned to the existing or new image. + - In the case of cloning, by default O(new_name) will take the name of the origin image with the prefix 'Copy of'. type: str persistent: description: @@ -325,7 +325,7 @@ datastore: returned: when O(state=present), O(state=cloned), or O(state=renamed) version_added: 9.5.0 vms: - description: The image's list of VM ID's. + description: The image's list of vm ID's. type: list elements: int returned: when O(state=present), O(state=cloned), or O(state=renamed) diff --git a/plugins/modules/one_image_info.py b/plugins/modules/one_image_info.py index f940444cad..7e5def76fb 100644 --- a/plugins/modules/one_image_info.py +++ b/plugins/modules/one_image_info.py @@ -29,10 +29,10 @@ options: elements: str name: description: - - A O(name) of the image whose facts is gathered. - - If the O(name) begins with V(~) the O(name) is used as regex pattern, which restricts the list of images (whose facts - is returned) whose names match specified regex. - - Also, if the O(name) begins with V(~*) case-insensitive matching is performed. + - A O(name) of the image whose facts will be gathered. + - If the O(name) begins with V(~) the O(name) will be used as regex pattern, which restricts the list of images (whose + facts will be returned) whose names match specified regex. + - Also, if the O(name) begins with V(~*) case-insensitive matching will be performed. - See examples for more details. type: str author: @@ -231,7 +231,7 @@ images: sample: image_datastore version_added: 9.5.0 vms: - description: The image's list of VM ID's. + description: The image's list of vm ID's. type: list elements: int version_added: 9.5.0 @@ -281,8 +281,8 @@ IMAGE_STATES = ['INIT', 'READY', 'USED', 'DISABLED', 'LOCKED', 'ERROR', 'CLONE', class ImageInfoModule(OpenNebulaModule): def __init__(self): argument_spec = dict( - ids=dict(type='list', aliases=['id'], elements='str'), - name=dict(type='str'), + ids=dict(type='list', aliases=['id'], elements='str', required=False), + name=dict(type='str', required=False), ) mutually_exclusive = [ ['ids', 'name'], diff --git a/plugins/modules/one_service.py b/plugins/modules/one_service.py index 88ccd29d74..8244e0ca5a 100644 --- a/plugins/modules/one_service.py +++ b/plugins/modules/one_service.py @@ -55,7 +55,7 @@ options: type: str unique: description: - - Setting O(unique=true) ensures that there is only one service instance running with a name set with O(service_name) + - Setting O(unique=true) will make sure that there is only one service instance running with a name set with O(service_name) when instantiating a service from a template specified with O(template_id) or O(template_name). Check examples below. type: bool default: false @@ -73,11 +73,11 @@ options: type: str owner_id: description: - - ID of the user which is set as the owner of the service. + - ID of the user which will be set as the owner of the service. type: int group_id: description: - - ID of the group which is set as the group of the service. + - ID of the group which will be set as the group of the service. type: int wait: description: @@ -91,7 +91,7 @@ options: type: int custom_attrs: description: - - Dictionary of key/value custom attributes which is used when instantiating a new service. + - Dictionary of key/value custom attributes which will be used when instantiating a new service. default: {} type: dict role: diff --git a/plugins/modules/one_template.py b/plugins/modules/one_template.py index 091c4c55a7..71db2c1d2c 100644 --- a/plugins/modules/one_template.py +++ b/plugins/modules/one_template.py @@ -33,12 +33,12 @@ attributes: options: id: description: - - A O(id) of the template you would like to manage. If not set then a new template is created with the given O(name). + - A O(id) of the template you would like to manage. If not set then a new template will be created with the given O(name). type: int name: description: - - A O(name) of the template you would like to manage. If a template with the given name does not exist it is created, - otherwise it is managed by this module. + - A O(name) of the template you would like to manage. If a template with the given name does not exist it will be created, + otherwise it will be managed by this module. type: str template: description: @@ -163,11 +163,11 @@ from ansible_collections.community.general.plugins.module_utils.opennebula impor class TemplateModule(OpenNebulaModule): def __init__(self): argument_spec = dict( - id=dict(type='int'), - name=dict(type='str'), + id=dict(type='int', required=False), + name=dict(type='str', required=False), state=dict(type='str', choices=['present', 'absent'], default='present'), - template=dict(type='str'), - filter=dict(type='str', choices=['user_primary_group', 'user', 'all', 'user_groups'], default='user'), + template=dict(type='str', required=False), + filter=dict(type='str', required=False, choices=['user_primary_group', 'user', 'all', 'user_groups'], default='user'), ) mutually_exclusive = [ diff --git a/plugins/modules/one_vm.py b/plugins/modules/one_vm.py index 3d23efa036..2139da5d4c 100644 --- a/plugins/modules/one_vm.py +++ b/plugins/modules/one_vm.py @@ -39,7 +39,7 @@ options: api_password: description: - Password of the user to login into OpenNebula RPC server. If not set then the value of the E(ONE_PASSWORD) environment - variable is used. if both O(api_username) or O(api_password) are not set, then it tries to authenticate with ONE auth + variable is used. if both O(api_username) or O(api_password) are not set, then it will try authenticate with ONE auth file. Default path is C(~/.one/one_auth). - Set environment variable E(ONE_AUTH) to override this path. type: str @@ -53,7 +53,7 @@ options: type: int vm_start_on_hold: description: - - Set to true to put VM on hold while creating. + - Set to true to put vm on hold while creating. default: false type: bool instance_ids: @@ -80,7 +80,7 @@ options: wait: description: - Wait for the instance to reach its desired state before returning. Keep in mind if you are waiting for instance to - be in running state it does not mean that you are able to SSH on that machine only that boot process have started + be in running state it does not mean that you will be able to SSH on that machine only that boot process have started on that instance. See the example using the M(ansible.builtin.wait_for) module for details. default: true type: bool @@ -94,9 +94,9 @@ options: - A dictionary of key/value attributes to add to new instances, or for setting C(state) of instances with these attributes. - Keys are case insensitive and OpenNebula automatically converts them to upper case. - Be aware V(NAME) is a special attribute which sets the name of the VM when it is deployed. - - C(#) character(s) can be appended to the C(NAME) and the module automatically adds indexes to the names of VMs. + - C(#) character(s) can be appended to the C(NAME) and the module will automatically add indexes to the names of VMs. - 'For example: V(NAME: foo-###) would create VMs with names V(foo-000), V(foo-001),...' - - When used with O(count_attributes) and O(exact_count) the module matches the base name without the index part. + - When used with O(count_attributes) and O(exact_count) the module will match the base name without the index part. default: {} type: dict labels: @@ -126,7 +126,7 @@ options: description: - Indicates how many instances that match O(count_attributes) and O(count_labels) parameters should be deployed. Instances are either created or terminated based on this value. - - B(NOTE:) Instances with the least IDs are terminated first. + - B(NOTE:) Instances with the least IDs will be terminated first. type: int mode: description: @@ -135,11 +135,11 @@ options: type: str owner_id: description: - - ID of the user which is set as the owner of the instance. + - ID of the user which will be set as the owner of the instance. type: int group_id: description: - - ID of the group which is set as the group of the instance. + - ID of the group which will be set as the group of the instance. type: int memory: description: @@ -157,7 +157,7 @@ options: type: float vcpu: description: - - Number of CPUs (cores) the new VM uses. + - Number of CPUs (cores) new VM will have. type: int networks: description: @@ -170,9 +170,9 @@ options: - Creates an image from a VM disk. - It is a dictionary where you have to specify C(name) of the new image. - Optionally you can specify C(disk_id) of the disk you want to save. By default C(disk_id) is 0. - - B(NOTE:) This operation is only performed on the first VM (if more than one VM ID is passed) and the VM has to be - in the C(poweredoff) state. - - Also this operation fails if an image with specified C(name) already exists. + - B(NOTE:) This operation will only be performed on the first VM (if more than one VM ID is passed) and the VM has to + be in the C(poweredoff) state. + - Also this operation will fail if an image with specified C(name) already exists. type: dict persistent: description: @@ -195,16 +195,14 @@ options: - When O(instance_ids) is provided, updates running VMs with the C(updateconf) API call. - When new VMs are being created, emulates the C(updateconf) API call using direct template merge. - Allows for complete modifications of the C(CONTEXT) attribute. - - 'Supported attributes include:' + - "Supported attributes include:" - B(BACKUP_CONFIG:) V(BACKUP_VOLATILE), V(FS_FREEZE), V(INCREMENT_MODE), V(KEEP_LAST), V(MODE); - - B(CONTEXT:) (Any value, except V(ETH*). Variable substitutions are made); + - B(CONTEXT:) (Any value, except V(ETH*). Variable substitution will be made); - B(CPU_MODEL:) V(FEATURES), V(MODEL); - - B(FEATURES:) V(ACPI), V(APIC), V(GUEST_AGENT), V(HYPERV), V(IOTHREADS), V(LOCALTIME), V(PAE), V(VIRTIO_BLK_QUEUES), - V(VIRTIO_SCSI_QUEUES); + - B(FEATURES:) V(ACPI), V(APIC), V(GUEST_AGENT), V(HYPERV), V(IOTHREADS), V(LOCALTIME), V(PAE), V(VIRTIO_BLK_QUEUES), V(VIRTIO_SCSI_QUEUES); - B(GRAPHICS:) V(COMMAND), V(KEYMAP), V(LISTEN), V(PASSWD), V(PORT), V(TYPE); - B(INPUT:) V(BUS), V(TYPE); - - B(OS:) V(ARCH), V(BOOT), V(BOOTLOADER), V(FIRMWARE), V(INITRD), V(KERNEL), V(KERNEL_CMD), V(MACHINE), V(ROOT), V(SD_DISK_BUS), - V(UUID); + - B(OS:) V(ARCH), V(BOOT), V(BOOTLOADER), V(FIRMWARE), V(INITRD), V(KERNEL), V(KERNEL_CMD), V(MACHINE), V(ROOT), V(SD_DISK_BUS), V(UUID); - B(RAW:) V(DATA), V(DATA_VMX), V(TYPE), V(VALIDATE); - B(VIDEO:) V(ATS), V(IOMMU), V(RESOLUTION), V(TYPE), V(VRAM). type: dict @@ -455,35 +453,35 @@ instances: returned: success contains: vm_id: - description: VM ID. + description: Vm ID. type: int sample: 153 vm_name: - description: VM name. + description: Vm name. type: str sample: foo template_id: - description: VM's template ID. + description: Vm's template ID. type: int sample: 153 group_id: - description: VM's group ID. + description: Vm's group ID. type: int sample: 1 group_name: - description: VM's group name. + description: Vm's group name. type: str sample: one-users owner_id: - description: VM's owner ID. + description: Vm's owner ID. type: int sample: 143 owner_name: - description: VM's owner name. + description: Vm's owner name. type: str sample: app-user mode: - description: VM's mode. + description: Vm's mode. type: str returned: success sample: 660 @@ -514,21 +512,20 @@ instances: networks: description: A list of dictionaries with info about IP, NAME, MAC, SECURITY_GROUPS for each NIC. type: list - sample: - [ - { - "ip": "10.120.5.33", - "mac": "02:00:0a:78:05:21", - "name": "default-test-private", - "security_groups": "0,10" - }, - { - "ip": "10.120.5.34", - "mac": "02:00:0a:78:05:22", - "name": "default-test-private", - "security_groups": "0" - } - ] + sample: [ + { + "ip": "10.120.5.33", + "mac": "02:00:0a:78:05:21", + "name": "default-test-private", + "security_groups": "0,10" + }, + { + "ip": "10.120.5.34", + "mac": "02:00:0a:78:05:22", + "name": "default-test-private", + "security_groups": "0" + } + ] uptime_h: description: Uptime of the instance in hours. type: int @@ -540,27 +537,23 @@ instances: attributes: description: A dictionary of key/values attributes that are associated with the instance. type: dict - sample: - { - "HYPERVISOR": "kvm", - "LOGO": "images/logos/centos.png", - "TE_GALAXY": "bar", - "USER_INPUTS": null - } + sample: { + "HYPERVISOR": "kvm", + "LOGO": "images/logos/centos.png", + "TE_GALAXY": "bar", + "USER_INPUTS": null + } updateconf: description: A dictionary of key/values attributes that are set with the updateconf API call. type: dict version_added: 6.3.0 - sample: - { - "OS": { - "ARCH": "x86_64" - }, - "CONTEXT": { - "START_SCRIPT": "ip r r 169.254.16.86/32 dev eth0", - "SSH_PUBLIC_KEY": "ssh-rsa ...\\nssh-ed25519 ..." - } + sample: { + "OS": { "ARCH": "x86_64" }, + "CONTEXT": { + "START_SCRIPT": "ip r r 169.254.16.86/32 dev eth0", + "SSH_PUBLIC_KEY": "ssh-rsa ...\\nssh-ed25519 ..." } + } tagged_instances: description: - A list of instances info based on a specific attributes and/or labels that are specified with O(count_attributes) and @@ -569,35 +562,35 @@ tagged_instances: returned: success contains: vm_id: - description: VM ID. + description: Vm ID. type: int sample: 153 vm_name: - description: VM name. + description: Vm name. type: str sample: foo template_id: - description: VM's template ID. + description: Vm's template ID. type: int sample: 153 group_id: - description: VM's group ID. + description: Vm's group ID. type: int sample: 1 group_name: - description: VM's group name. + description: Vm's group name. type: str sample: one-users owner_id: - description: VM's user ID. + description: Vm's user ID. type: int sample: 143 owner_name: - description: VM's user name. + description: Vm's user name. type: str sample: app-user mode: - description: VM's mode. + description: Vm's mode. type: str returned: success sample: 660 @@ -628,21 +621,20 @@ tagged_instances: networks: description: A list of dictionaries with info about IP, NAME, MAC, SECURITY_GROUPS for each NIC. type: list - sample: - [ - { - "ip": "10.120.5.33", - "mac": "02:00:0a:78:05:21", - "name": "default-test-private", - "security_groups": "0,10" - }, - { - "ip": "10.120.5.34", - "mac": "02:00:0a:78:05:22", - "name": "default-test-private", - "security_groups": "0" - } - ] + sample: [ + { + "ip": "10.120.5.33", + "mac": "02:00:0a:78:05:21", + "name": "default-test-private", + "security_groups": "0,10" + }, + { + "ip": "10.120.5.34", + "mac": "02:00:0a:78:05:22", + "name": "default-test-private", + "security_groups": "0" + } + ] uptime_h: description: Uptime of the instance in hours. type: int @@ -654,27 +646,12 @@ tagged_instances: attributes: description: A dictionary of key/values attributes that are associated with the instance. type: dict - sample: - { - "HYPERVISOR": "kvm", - "LOGO": "images/logos/centos.png", - "TE_GALAXY": "bar", - "USER_INPUTS": null - } + sample: {"HYPERVISOR": "kvm", "LOGO": "images/logos/centos.png", "TE_GALAXY": "bar", "USER_INPUTS": null} updateconf: description: A dictionary of key/values attributes that are set with the updateconf API call. type: dict version_added: 6.3.0 - sample: - { - "OS": { - "ARCH": "x86_64" - }, - "CONTEXT": { - "START_SCRIPT": "ip r r 169.254.16.86/32 dev eth0", - "SSH_PUBLIC_KEY": "ssh-rsa ...\\nssh-ed25519 ..." - } - } + sample: {"OS": {"ARCH": "x86_64"}, "CONTEXT": {"START_SCRIPT": "ip r r 169.254.16.86/32 dev eth0", "SSH_PUBLIC_KEY": "ssh-rsa ...\\nssh-ed25519 ..."}} """ try: diff --git a/plugins/modules/one_vnet.py b/plugins/modules/one_vnet.py index b77530e756..b8cb0c6559 100644 --- a/plugins/modules/one_vnet.py +++ b/plugins/modules/one_vnet.py @@ -30,12 +30,12 @@ options: id: description: - A O(id) of the network you would like to manage. - - If not set then a new network is created with the given O(name). + - If not set then a new network will be created with the given O(name). type: int name: description: - - A O(name) of the network you would like to manage. If a network with the given name does not exist it, then is created, - otherwise it is managed by this module. + - A O(name) of the network you would like to manage. If a network with the given name does not exist it will be created, + otherwise it will be managed by this module. type: str template: description: @@ -263,10 +263,10 @@ class NetworksModule(OpenNebulaModule): def __init__(self): argument_spec = dict( - id=dict(type='int'), - name=dict(type='str'), + id=dict(type='int', required=False), + name=dict(type='str', required=False), state=dict(type='str', choices=['present', 'absent'], default='present'), - template=dict(type='str'), + template=dict(type='str', required=False), ) mutually_exclusive = [ diff --git a/plugins/modules/oneandone_firewall_policy.py b/plugins/modules/oneandone_firewall_policy.py index eca9a8ed70..f949767ef3 100644 --- a/plugins/modules/oneandone_firewall_policy.py +++ b/plugins/modules/oneandone_firewall_policy.py @@ -46,14 +46,14 @@ options: type: str rules: description: - - List of rules that are set for the firewall policy. Each rule must contain protocol parameter, in addition to three - optional parameters (port_from, port_to, and source). + - A list of rules that will be set for the firewall policy. Each rule must contain protocol parameter, in addition to + three optional parameters (port_from, port_to, and source). type: list elements: dict default: [] add_server_ips: description: - - A list of server identifiers (ID or name) to be assigned to a firewall policy. Used in combination with update state. + - A list of server identifiers (id or name) to be assigned to a firewall policy. Used in combination with update state. type: list elements: str required: false @@ -67,15 +67,15 @@ options: default: [] add_rules: description: - - List of rules that are added to an existing firewall policy. It is syntax is the same as the one used for rules parameter. - Used in combination with update state. + - A list of rules that will be added to an existing firewall policy. It is syntax is the same as the one used for rules + parameter. Used in combination with update state. type: list elements: dict required: false default: [] remove_rules: description: - - List of rule IDs that are removed from an existing firewall policy. Used in combination with update state. + - A list of rule IDs that will be removed from an existing firewall policy. Used in combination with update state. type: list elements: str required: false @@ -194,7 +194,7 @@ RETURN = r""" firewall_policy: description: Information about the firewall policy that was processed. type: dict - sample: {"id": "92B74394A397ECC3359825C1656D67A6", "name": "Default Policy"} + sample: '{"id": "92B74394A397ECC3359825C1656D67A6", "name": "Default Policy"}' returned: always """ diff --git a/plugins/modules/oneandone_load_balancer.py b/plugins/modules/oneandone_load_balancer.py index 5a8ce7b8f0..5cd5da79d4 100644 --- a/plugins/modules/oneandone_load_balancer.py +++ b/plugins/modules/oneandone_load_balancer.py @@ -78,15 +78,15 @@ options: choices: ["ROUND_ROBIN", "LEAST_CONNECTIONS"] datacenter: description: - - ID or country code of the datacenter where the load balancer is created. + - ID or country code of the datacenter where the load balancer will be created. - If not specified, it defaults to V(US). type: str choices: ["US", "ES", "DE", "GB"] required: false rules: description: - - A list of rule objects that are set for the load balancer. Each rule must contain protocol, port_balancer, and port_server - parameters, in addition to source parameter, which is optional. + - A list of rule objects that will be set for the load balancer. Each rule must contain protocol, port_balancer, and + port_server parameters, in addition to source parameter, which is optional. type: list elements: dict default: [] @@ -111,15 +111,15 @@ options: default: [] add_rules: description: - - A list of rules that are added to an existing load balancer. It is syntax is the same as the one used for rules parameter. - Used in combination with O(state=update). + - A list of rules that will be added to an existing load balancer. It is syntax is the same as the one used for rules + parameter. Used in combination with O(state=update). type: list elements: dict required: false default: [] remove_rules: description: - - A list of rule IDs that are removed from an existing load balancer. Used in combination with O(state=update). + - A list of rule IDs that will be removed from an existing load balancer. Used in combination with O(state=update). type: list elements: str required: false @@ -245,7 +245,7 @@ RETURN = r""" load_balancer: description: Information about the load balancer that was processed. type: dict - sample: {"id": "92B74394A397ECC3359825C1656D67A6", "name": "Default Balancer"} + sample: '{"id": "92B74394A397ECC3359825C1656D67A6", "name": "Default Balancer"}' returned: always """ diff --git a/plugins/modules/oneandone_monitoring_policy.py b/plugins/modules/oneandone_monitoring_policy.py index 2d8693156c..627e693e5a 100644 --- a/plugins/modules/oneandone_monitoring_policy.py +++ b/plugins/modules/oneandone_monitoring_policy.py @@ -89,7 +89,7 @@ options: required: true ports: description: - - Array of ports that are to be monitored. + - Array of ports that will be monitoring. type: list elements: dict default: [] @@ -114,7 +114,7 @@ options: required: true processes: description: - - Array of processes that are to be monitored. + - Array of processes that will be monitoring. type: list elements: dict default: [] @@ -413,7 +413,7 @@ RETURN = r""" monitoring_policy: description: Information about the monitoring policy that was processed. type: dict - sample: {"id": "92B74394A397ECC3359825C1656D67A6", "name": "Default Policy"} + sample: '{"id": "92B74394A397ECC3359825C1656D67A6", "name": "Default Policy"}' returned: always """ diff --git a/plugins/modules/oneandone_private_network.py b/plugins/modules/oneandone_private_network.py index f39c464f96..1a56fe345c 100644 --- a/plugins/modules/oneandone_private_network.py +++ b/plugins/modules/oneandone_private_network.py @@ -50,7 +50,7 @@ options: type: str datacenter: description: - - The identifier of the datacenter where the private network is created. + - The identifier of the datacenter where the private network will be created. type: str choices: [US, ES, DE, GB] network_address: @@ -143,7 +143,7 @@ RETURN = r""" private_network: description: Information about the private network. type: dict - sample: {"name": "backup_network", "id": "55726DEDA20C99CF6F2AF8F18CAC9963"} + sample: '{"name": "backup_network", "id": "55726DEDA20C99CF6F2AF8F18CAC9963"}' returned: always """ diff --git a/plugins/modules/oneandone_public_ip.py b/plugins/modules/oneandone_public_ip.py index b6b49c5b4a..c30c0bbdc7 100644 --- a/plugins/modules/oneandone_public_ip.py +++ b/plugins/modules/oneandone_public_ip.py @@ -43,7 +43,7 @@ options: required: false datacenter: description: - - ID of the datacenter where the IP is created (only for unassigned IPs). + - ID of the datacenter where the IP will be created (only for unassigned IPs). type: str choices: [US, ES, DE, GB] default: US @@ -110,7 +110,7 @@ RETURN = r""" public_ip: description: Information about the public IP that was processed. type: dict - sample: {"id": "F77CC589EBC120905B4F4719217BFF6D", "ip": "10.5.132.106"} + sample: '{"id": "F77CC589EBC120905B4F4719217BFF6D", "ip": "10.5.132.106"}' returned: always """ diff --git a/plugins/modules/oneandone_server.py b/plugins/modules/oneandone_server.py index 7683ea1480..ae9198c7d0 100644 --- a/plugins/modules/oneandone_server.py +++ b/plugins/modules/oneandone_server.py @@ -73,8 +73,8 @@ options: type: float hdds: description: - - A list of hard disks with nested O(ignore:hdds[].size) and O(ignore:hdds[].is_main) properties. It must be provided - with O(vcore), O(cores_per_processor), and O(ram) parameters. + - A list of hard disks with nested O(ignore:hdds[].size) and O(ignore:hdds[].is_main) properties. It must be provided with O(vcore), + O(cores_per_processor), and O(ram) parameters. type: list elements: dict private_network: diff --git a/plugins/modules/onepassword_info.py b/plugins/modules/onepassword_info.py index 5689d28fe6..77daf481bf 100644 --- a/plugins/modules/onepassword_info.py +++ b/plugins/modules/onepassword_info.py @@ -51,7 +51,7 @@ options: section: type: str description: - - The name of a section within this item containing the specified field (optional, it searches all sections if not + - The name of a section within this item containing the specified field (optional, will search all sections if not specified). vault: type: str @@ -62,7 +62,8 @@ options: auto_login: type: dict description: - - A dictionary containing authentication details. If this is set, the module attempts to sign in to 1Password automatically. + - A dictionary containing authentication details. If this is set, M(community.general.onepassword_info) will attempt + to sign in to 1Password automatically. - Without this option, you must have already logged in using the 1Password CLI before running Ansible. - It is B(highly) recommended to store 1Password credentials in an Ansible Vault. Ensure that the key used to encrypt the Ansible Vault is equal to or greater in strength than the 1Password master password. @@ -71,7 +72,7 @@ options: type: str description: - 1Password subdomain name (V(subdomain).1password.com). - - If this is not specified, the most recent subdomain is used. + - If this is not specified, the most recent subdomain will be used. username: type: str description: @@ -374,7 +375,7 @@ def main(): username=dict(type='str'), master_password=dict(required=True, type='str', no_log=True), secret_key=dict(type='str', no_log=True), - )), + ), default=None), search_terms=dict(required=True, type='list', elements='dict'), ), supports_check_mode=True diff --git a/plugins/modules/oneview_ethernet_network.py b/plugins/modules/oneview_ethernet_network.py index 7ba3abb6e4..823fea3b2c 100644 --- a/plugins/modules/oneview_ethernet_network.py +++ b/plugins/modules/oneview_ethernet_network.py @@ -27,9 +27,9 @@ options: state: description: - Indicates the desired state for the Ethernet Network resource. - - V(present) ensures data properties are compliant with OneView. - - V(absent) removes the resource from OneView, if it exists. - - V(default_bandwidth_reset) resets the network connection template to the default. + - V(present) will ensure data properties are compliant with OneView. + - V(absent) will remove the resource from OneView, if it exists. + - V(default_bandwidth_reset) will reset the network connection template to the default. type: str default: present choices: [present, absent, default_bandwidth_reset] diff --git a/plugins/modules/oneview_fc_network.py b/plugins/modules/oneview_fc_network.py index 3063e80757..312a5dc893 100644 --- a/plugins/modules/oneview_fc_network.py +++ b/plugins/modules/oneview_fc_network.py @@ -24,8 +24,8 @@ options: state: description: - Indicates the desired state for the Fibre Channel Network resource. - - V(present) ensures data properties are compliant with OneView. - - V(absent) removes the resource from OneView, if it exists. + - V(present) will ensure data properties are compliant with OneView. + - V(absent) will remove the resource from OneView, if it exists. type: str choices: ['present', 'absent'] required: true diff --git a/plugins/modules/oneview_fc_network_info.py b/plugins/modules/oneview_fc_network_info.py index 9de22ef55c..af20869dc3 100644 --- a/plugins/modules/oneview_fc_network_info.py +++ b/plugins/modules/oneview_fc_network_info.py @@ -87,8 +87,8 @@ class FcNetworkInfoModule(OneViewModuleBase): def __init__(self): argument_spec = dict( - name=dict(type='str'), - params=dict(type='dict') + name=dict(required=False, type='str'), + params=dict(required=False, type='dict') ) super(FcNetworkInfoModule, self).__init__( diff --git a/plugins/modules/oneview_fcoe_network.py b/plugins/modules/oneview_fcoe_network.py index 37fbff9ef4..15128bd372 100644 --- a/plugins/modules/oneview_fcoe_network.py +++ b/plugins/modules/oneview_fcoe_network.py @@ -25,8 +25,8 @@ options: state: description: - Indicates the desired state for the FCoE Network resource. - - V(present) ensures data properties are compliant with OneView. - - V(absent) removes the resource from OneView, if it exists. + - V(present) will ensure data properties are compliant with OneView. + - V(absent) will remove the resource from OneView, if it exists. type: str default: present choices: ['present', 'absent'] diff --git a/plugins/modules/oneview_logical_interconnect_group.py b/plugins/modules/oneview_logical_interconnect_group.py index 2683fc5468..a45224cb31 100644 --- a/plugins/modules/oneview_logical_interconnect_group.py +++ b/plugins/modules/oneview_logical_interconnect_group.py @@ -28,8 +28,8 @@ options: state: description: - Indicates the desired state for the Logical Interconnect Group resource. - - V(absent) removes the resource from OneView, if it exists. - - V(present) ensures data properties are compliant with OneView. + - V(absent) will remove the resource from OneView, if it exists. + - V(present) will ensure data properties are compliant with OneView. type: str choices: [absent, present] default: present diff --git a/plugins/modules/oneview_network_set.py b/plugins/modules/oneview_network_set.py index ee5d3560a7..a7fae51f21 100644 --- a/plugins/modules/oneview_network_set.py +++ b/plugins/modules/oneview_network_set.py @@ -27,8 +27,8 @@ options: state: description: - Indicates the desired state for the Network Set resource. - - V(present) ensures data properties are compliant with OneView. - - V(absent) removes the resource from OneView, if it exists. + - V(present) will ensure data properties are compliant with OneView. + - V(absent) will remove the resource from OneView, if it exists. type: str default: present choices: ['present', 'absent'] diff --git a/plugins/modules/online_server_info.py b/plugins/modules/online_server_info.py index a06dae1926..d676d1a0e7 100644 --- a/plugins/modules/online_server_info.py +++ b/plugins/modules/online_server_info.py @@ -41,7 +41,7 @@ online_server_info: type: list elements: dict sample: - [ + "online_server_info": [ { "abuse": "abuse@example.com", "anti_ddos": false, diff --git a/plugins/modules/online_user_info.py b/plugins/modules/online_user_info.py index 5b1628adad..c76c71f2e5 100644 --- a/plugins/modules/online_user_info.py +++ b/plugins/modules/online_user_info.py @@ -37,7 +37,7 @@ online_user_info: returned: success type: dict sample: - { + "online_user_info": { "company": "foobar LLC", "email": "foobar@example.com", "first_name": "foo", diff --git a/plugins/modules/open_iscsi.py b/plugins/modules/open_iscsi.py index 80360833a2..defb0a072b 100644 --- a/plugins/modules/open_iscsi.py +++ b/plugins/modules/open_iscsi.py @@ -44,7 +44,7 @@ options: login: description: - Whether the target node should be connected. - - When O(target) is omitted, it logins to all available. + - When O(target) is omitted, will login to all available. type: bool aliases: [state] node_auth: @@ -84,7 +84,7 @@ options: description: - Whether the list of target nodes on the portal should be (re)discovered and added to the persistent iSCSI database. - Keep in mind that C(iscsiadm) discovery resets configuration, like C(node.startup) to manual, hence combined with - O(auto_node_startup=true) always returns a changed state. + O(auto_node_startup=true) will always return a changed state. type: bool default: false show_nodes: @@ -95,7 +95,7 @@ options: rescan: description: - Rescan an established session for discovering new targets. - - When O(target) is omitted, it rescans all sessions. + - When O(target) is omitted, will rescan all sessions. type: bool default: false version_added: 4.1.0 diff --git a/plugins/modules/openbsd_pkg.py b/plugins/modules/openbsd_pkg.py index e81fce3018..b9a541cc44 100644 --- a/plugins/modules/openbsd_pkg.py +++ b/plugins/modules/openbsd_pkg.py @@ -36,9 +36,9 @@ options: elements: str state: description: - - V(present) ensures the package is installed. - - V(latest) ensures the latest version of the package is installed. - - V(absent) ensures the specified package is not installed. + - V(present) will make sure the package is installed. + - V(latest) will make sure the latest version of the package is installed. + - V(absent) will make sure the specified package is not installed. choices: [absent, latest, present, installed, removed] default: present type: str @@ -73,7 +73,7 @@ options: type: bool default: false notes: - - When used with a C(loop:) each package is processed individually, it is much more efficient to pass the list directly + - When used with a C(loop:) each package will be processed individually, it is much more efficient to pass the list directly to the O(name) option. """ diff --git a/plugins/modules/opendj_backendprop.py b/plugins/modules/opendj_backendprop.py index be4edac125..cd55a39d51 100644 --- a/plugins/modules/opendj_backendprop.py +++ b/plugins/modules/opendj_backendprop.py @@ -10,10 +10,10 @@ __metaclass__ = type DOCUMENTATION = r""" module: opendj_backendprop -short_description: Update the backend configuration of OpenDJ using the dsconfig set-backend-prop command +short_description: Will update the backend configuration of OpenDJ using the dsconfig set-backend-prop command description: - - This module updates settings for OpenDJ with the command C(set-backend-prop). - - It checks first using C(get-backend-prop) if configuration needs to be applied. + - This module will update settings for OpenDJ with the command set-backend-prop. + - It will check first using de get-backend-prop if configuration needs to be applied. author: - Werner Dijkerman (@dj-wasabi) extends_documentation_fragment: @@ -153,9 +153,9 @@ def main(): opendj_bindir=dict(default="/opt/opendj/bin", type="path"), hostname=dict(required=True), port=dict(required=True), - username=dict(default="cn=Directory Manager"), - password=dict(no_log=True), - passwordfile=dict(type="path"), + username=dict(default="cn=Directory Manager", required=False), + password=dict(required=False, no_log=True), + passwordfile=dict(required=False, type="path"), backend=dict(required=True), name=dict(required=True), value=dict(required=True), diff --git a/plugins/modules/openwrt_init.py b/plugins/modules/openwrt_init.py index c8c98f2d39..bf5ce2b76a 100644 --- a/plugins/modules/openwrt_init.py +++ b/plugins/modules/openwrt_init.py @@ -32,19 +32,20 @@ options: state: type: str description: - - V(started)/V(stopped) are idempotent actions that do not run commands unless necessary. - - V(restarted) always bounces the service. - - V(reloaded) always reloads. + - V(started)/V(stopped) are idempotent actions that will not run commands unless necessary. + - V(restarted) will always bounce the service. + - V(reloaded) will always reload. choices: ['started', 'stopped', 'restarted', 'reloaded'] enabled: description: - - Whether the service should start on boot. B(At least one) of O(state) and O(enabled) are required. + - Whether the service should start on boot. B(At least one of state and enabled are required). type: bool pattern: type: str description: - - If the service does not respond to the C(running) command, name a substring to look for as would be found in the output - of the C(ps) command as a stand-in for a C(running) result. If the string is found, the service is assumed to be running. + - If the service does not respond to the 'running' command, name a substring to look for as would be found in the output + of the C(ps) command as a stand-in for a 'running' result. If the string is found, the service will be assumed to + be running. notes: - One option other than O(name) is required. requirements: diff --git a/plugins/modules/osx_defaults.py b/plugins/modules/osx_defaults.py index 56ff6e1ac1..bc8a7afd5e 100644 --- a/plugins/modules/osx_defaults.py +++ b/plugins/modules/osx_defaults.py @@ -69,7 +69,7 @@ options: state: description: - The state of the user defaults. - - If set to V(list) it queries the given parameter specified by O(key). Returns V(null) is nothing found or misspelled. + - If set to V(list) will query the given parameter specified by O(key). Returns V(null) is nothing found or mis-spelled. type: str choices: [absent, list, present] default: present diff --git a/plugins/modules/ovh_ip_failover.py b/plugins/modules/ovh_ip_failover.py index 425ee614f5..0734e985f7 100644 --- a/plugins/modules/ovh_ip_failover.py +++ b/plugins/modules/ovh_ip_failover.py @@ -49,13 +49,13 @@ options: default: true type: bool description: - - If V(true), the module waits for the IP address to be moved. If false, exit without waiting. The C(taskId) is returned + - If true, the module will wait for the IP address to be moved. If false, exit without waiting. The taskId will be returned in module output. wait_task_completion: required: false default: 0 description: - - If not V(0), the module waits for this task ID to be completed. Use O(wait_task_completion) if you want to wait for + - If not 0, the module will wait for this task ID to be completed. Use O(wait_task_completion) if you want to wait for completion of a previously executed task with O(wait_completion=false). You can execute this module repeatedly on a list of failover IPs using O(wait_completion=false) (see examples). type: int diff --git a/plugins/modules/ovh_monthly_billing.py b/plugins/modules/ovh_monthly_billing.py index 912b697517..438bf7db7f 100644 --- a/plugins/modules/ovh_monthly_billing.py +++ b/plugins/modules/ovh_monthly_billing.py @@ -98,10 +98,10 @@ def main(): argument_spec=dict( project_id=dict(required=True), instance_id=dict(required=True), - endpoint=dict(), - application_key=dict(no_log=True), - application_secret=dict(no_log=True), - consumer_key=dict(no_log=True), + endpoint=dict(required=False), + application_key=dict(required=False, no_log=True), + application_secret=dict(required=False, no_log=True), + consumer_key=dict(required=False, no_log=True), ), supports_check_mode=True ) diff --git a/plugins/modules/packet_device.py b/plugins/modules/packet_device.py index f17db56c8c..da04f52f6f 100644 --- a/plugins/modules/packet_device.py +++ b/plugins/modules/packet_device.py @@ -111,9 +111,9 @@ options: state: description: - Desired state of the device. - - If set to V(present) (the default), the module call returns immediately after the device-creating HTTP request successfully - returns. - - If set to V(active), the module call blocks until all the specified devices are in state active due to the Packet + - If set to V(present) (the default), the module call will return immediately after the device-creating HTTP request + successfully returns. + - If set to V(active), the module call will block until all the specified devices are in state active due to the Packet API, or until O(wait_timeout). choices: [present, absent, active, inactive, rebooted] default: present @@ -127,16 +127,16 @@ options: wait_for_public_IPv: description: - Whether to wait for the instance to be assigned a public IPv4/IPv6 address. - - If set to V(4), it waits until IPv4 is assigned to the instance. - - If set to V(6), it waits until public IPv6 is assigned to the instance. + - If set to 4, it will wait until IPv4 is assigned to the instance. + - If set to 6, wait until public IPv6 is assigned to the instance. choices: [4, 6] type: int wait_timeout: description: - How long (seconds) to wait either for automatic IP address assignment, or for the device to reach the V(active) state. - - If O(wait_for_public_IPv) is set and O(state=active), the module waits for both events consequently, applying the - timeout twice. + - If O(wait_for_public_IPv) is set and O(state=active), the module will wait for both events consequently, applying + the timeout twice. default: 900 type: int @@ -258,6 +258,12 @@ EXAMPLES = r""" """ RETURN = r""" +changed: + description: True if a device was altered in any way (created, modified or removed). + type: bool + sample: true + returned: success + devices: description: Information about each device that was processed. type: list diff --git a/plugins/modules/packet_ip_subnet.py b/plugins/modules/packet_ip_subnet.py index 0029623a10..ab74dac840 100644 --- a/plugins/modules/packet_ip_subnet.py +++ b/plugins/modules/packet_ip_subnet.py @@ -75,11 +75,11 @@ options: state: description: - Desired state of the IP subnet on the specified device. - - With O(state=present), you must specify either O(hostname) or O(device_id). Subnet with given CIDR is then assigned + - With O(state=present), you must specify either O(hostname) or O(device_id). Subnet with given CIDR will then be assigned to the specified device. - - With O(state=absent), you can specify either O(hostname) or O(device_id). The subnet is then removed from specified + - With O(state=absent), you can specify either O(hostname) or O(device_id). The subnet will be removed from specified devices. - - If you leave both O(hostname) and O(device_id) empty, the subnet is then removed from any device it is assigned to. + - If you leave both O(hostname) and O(device_id) empty, the subnet will be removed from any device it is assigned to. choices: ['present', 'absent'] default: 'present' type: str @@ -123,6 +123,12 @@ EXAMPLES = r""" """ RETURN = r""" +changed: + description: True if an IP address assignments were altered in any way (created or removed). + type: bool + sample: true + returned: success + device_id: type: str description: UUID of the device associated with the specified IP address. diff --git a/plugins/modules/packet_project.py b/plugins/modules/packet_project.py index afadec36be..d61c9e598b 100644 --- a/plugins/modules/packet_project.py +++ b/plugins/modules/packet_project.py @@ -110,6 +110,12 @@ EXAMPLES = r""" """ RETURN = r""" +changed: + description: True if a project was created or removed. + type: bool + sample: true + returned: success + name: description: Name of addressed project. type: str diff --git a/plugins/modules/packet_sshkey.py b/plugins/modules/packet_sshkey.py index ec76a17b4c..3073791b2a 100644 --- a/plugins/modules/packet_sshkey.py +++ b/plugins/modules/packet_sshkey.py @@ -35,7 +35,7 @@ options: type: str label: description: - - Label for the key. If you keep it empty, it is read from key string. + - Label for the key. If you keep it empty, it will be read from key string. type: str aliases: [name] id: @@ -85,6 +85,11 @@ EXAMPLES = r""" """ RETURN = r""" +changed: + description: True if a sshkey was created or removed. + type: bool + sample: true + returned: always sshkeys: description: Information about sshkeys that were created/removed. type: list diff --git a/plugins/modules/pacman.py b/plugins/modules/pacman.py index 359cbc51d1..38a98bba60 100644 --- a/plugins/modules/pacman.py +++ b/plugins/modules/pacman.py @@ -41,9 +41,9 @@ options: state: description: - Whether to install (V(present) or V(installed), V(latest)), or remove (V(absent) or V(removed)) a package. - - V(present) and V(installed) simply ensure that a desired package is installed. - - V(latest) updates the specified package if it is not of the latest available version. - - V(absent) and V(removed) remove the specified package. + - V(present) and V(installed) will simply ensure that a desired package is installed. + - V(latest) will update the specified package if it is not of the latest available version. + - V(absent) and V(removed) will remove the specified package. default: present choices: [absent, installed, latest, present, removed] type: str @@ -116,20 +116,20 @@ options: reason_for: description: - Set the install reason for V(all) packages or only for V(new) packages. - - In case of O(state=latest) already installed packages which are updated to a newer version are not counted as V(new). + - In case of O(state=latest) already installed packages which will be updated to a newer version are not counted as + V(new). default: new choices: [all, new] type: str version_added: 5.4.0 notes: - - When used with a C(loop:) each package is processed individually, it is much more efficient to pass the list directly + - When used with a C(loop:) each package will be processed individually, it is much more efficient to pass the list directly to the O(name) option. - To use an AUR helper (O(executable) option), a few extra setup steps might be required beforehand. For example, a dedicated build user with permissions to install packages could be necessary. - 'In the tests, while using C(yay) as the O(executable) option, the module failed to install AUR packages with the error: C(error: target not found: ).' - - The common return values `stdout` and `stderr` are returned upon success, when needed, since community.general 4.1.0. """ RETURN = r""" @@ -142,7 +142,7 @@ packages: returned: success and O(name) is specified or O(upgrade=true) type: list elements: str - sample: ["package", "other-package"] + sample: [package, other-package] cache_updated: description: @@ -152,6 +152,22 @@ cache_updated: type: bool sample: false version_added: 4.6.0 + +stdout: + description: + - Output from pacman. + returned: success, when needed + type: str + sample: ":: Synchronizing package databases... core is up to date :: Starting full system upgrade..." + version_added: 4.1.0 + +stderr: + description: + - Error output from pacman. + returned: success, when needed + type: str + sample: "warning: libtool: local (2.4.6+44+gb9b44533-14) is newer than core (2.4.6+42+gb88cebd5-15)\nwarning ..." + version_added: 4.1.0 """ EXAMPLES = r""" diff --git a/plugins/modules/pacman_key.py b/plugins/modules/pacman_key.py index 851655f9fc..37d17e7516 100644 --- a/plugins/modules/pacman_key.py +++ b/plugins/modules/pacman_key.py @@ -18,9 +18,9 @@ description: - Add or remove gpg keys from the pacman keyring. notes: - Use full-length key ID (40 characters). - - Keys are verified when using O(data), O(file), or O(url) unless O(verify) is overridden. - - Keys are locally signed after being imported into the keyring. - - If the key ID exists in the keyring, the key is not added unless O(force_update) is specified. + - Keys will be verified when using O(data), O(file), or O(url) unless O(verify) is overridden. + - Keys will be locally signed after being imported into the keyring. + - If the key ID exists in the keyring, the key will not be added unless O(force_update) is specified. - O(data), O(file), O(url), and O(keyserver) are mutually exclusive. requirements: - gpg @@ -72,7 +72,7 @@ options: keyring: description: - The full path to the keyring folder on the remote server. - - If not specified, module uses pacman's default (V(/etc/pacman.d/gnupg)). + - If not specified, module will use pacman's default (V(/etc/pacman.d/gnupg)). - Useful if the remote system requires an alternative gnupg directory. type: path default: /etc/pacman.d/gnupg diff --git a/plugins/modules/pagerduty.py b/plugins/modules/pagerduty.py index 78443e8410..5de20a5270 100644 --- a/plugins/modules/pagerduty.py +++ b/plugins/modules/pagerduty.py @@ -13,7 +13,7 @@ DOCUMENTATION = r""" module: pagerduty short_description: Create PagerDuty maintenance windows description: - - This module lets you create PagerDuty maintenance windows. + - This module will let you create PagerDuty maintenance windows. author: - "Andrew Newdigate (@suprememoocow)" - "Dylan Silva (@thaumos)" @@ -79,8 +79,8 @@ options: default: Created by Ansible validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed - certificates. + - If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using + self-signed certificates. type: bool default: true """ @@ -242,15 +242,15 @@ def main(): module = AnsibleModule( argument_spec=dict( state=dict(required=True, choices=['running', 'started', 'ongoing', 'absent']), - name=dict(), - user=dict(), + name=dict(required=False), + user=dict(required=False), token=dict(required=True, no_log=True), - service=dict(type='list', elements='str', aliases=["services"]), - window_id=dict(), - requester_id=dict(), - hours=dict(default='1'), # @TODO change to int? - minutes=dict(default='0'), # @TODO change to int? - desc=dict(default='Created by Ansible'), + service=dict(required=False, type='list', elements='str', aliases=["services"]), + window_id=dict(required=False), + requester_id=dict(required=False), + hours=dict(default='1', required=False), # @TODO change to int? + minutes=dict(default='0', required=False), # @TODO change to int? + desc=dict(default='Created by Ansible', required=False), validate_certs=dict(default=True, type='bool'), ) ) diff --git a/plugins/modules/pagerduty_alert.py b/plugins/modules/pagerduty_alert.py index e3d93e8718..347e849822 100644 --- a/plugins/modules/pagerduty_alert.py +++ b/plugins/modules/pagerduty_alert.py @@ -12,7 +12,7 @@ DOCUMENTATION = r""" module: pagerduty_alert short_description: Trigger, acknowledge or resolve PagerDuty incidents description: - - This module lets you trigger, acknowledge or resolve a PagerDuty incident by sending events. + - This module will let you trigger, acknowledge or resolve a PagerDuty incident by sending events. author: - "Amanpreet Singh (@ApsOps)" - "Xiao Shen (@xshen1)" @@ -43,7 +43,7 @@ options: service_id: type: str description: - - ID of PagerDuty service when incidents are triggered, acknowledged or resolved. + - ID of PagerDuty service when incidents will be triggered, acknowledged or resolved. - Required if O(api_version=v1). service_key: type: str @@ -92,9 +92,10 @@ options: type: str description: - For O(state=triggered) - Required. Short description of the problem that led to this trigger. This field (or a truncated - version) is used when generating phone calls, SMS messages and alert emails. It also appears on the incidents tables - in the PagerDuty UI. The maximum length is 1024 characters. - - For O(state=acknowledged) or O(state=resolved) - Text that appears in the incident's log associated with this event. + version) will be used when generating phone calls, SMS messages and alert emails. It will also appear on the incidents + tables in the PagerDuty UI. The maximum length is 1024 characters. + - For O(state=acknowledged) or O(state=resolved) - Text that will appear in the incident's log associated with this + event. default: Created via Ansible incident_class: type: str @@ -105,11 +106,12 @@ options: type: str description: - Identifies the incident to which this O(state) should be applied. - - For O(state=triggered) - If there is no open (in other words unresolved) incident with this key, a new one is created. - If there is already an open incident with a matching key, this event is appended to that incident's log. The event - key provides an easy way to 'de-dup' problem reports. If no O(incident_key) is provided, then it is generated by PagerDuty. + - For O(state=triggered) - If there is no open (in other words unresolved) incident with this key, a new one will be + created. If there is already an open incident with a matching key, this event will be appended to that incident's + log. The event key provides an easy way to 'de-dup' problem reports. If no O(incident_key) is provided, then it will + be generated by PagerDuty. - For O(state=acknowledged) or O(state=resolved) - This should be the incident_key you received back when the incident - was first opened by a trigger event. Acknowledge events referencing resolved or nonexistent incidents is discarded. + was first opened by a trigger event. Acknowledge events referencing resolved or nonexistent incidents will be discarded. link_url: type: str description: diff --git a/plugins/modules/pagerduty_change.py b/plugins/modules/pagerduty_change.py index de77016969..2b63859f1d 100644 --- a/plugins/modules/pagerduty_change.py +++ b/plugins/modules/pagerduty_change.py @@ -13,8 +13,8 @@ module: pagerduty_change short_description: Track a code or infrastructure change as a PagerDuty change event version_added: 1.3.0 description: - - This module lets you create a PagerDuty change event each time the module is run. - - This is not an idempotent action and a new change event is created each time it is run. + - This module will let you create a PagerDuty change event each time the module is run. + - This is not an idempotent action and a new change event will be created each time it is run. author: - Adam Vaughan (@adamvaughan) requirements: @@ -82,7 +82,7 @@ options: type: str validate_certs: description: - - If V(false), SSL certificates for the target URL are not validated. This should only be used on personally controlled + - If V(false), SSL certificates for the target URL will not be validated. This should only be used on personally controlled sites using self-signed certificates. required: false default: true @@ -121,14 +121,15 @@ def main(): argument_spec=dict( integration_key=dict(required=True, type='str', no_log=True), summary=dict(required=True, type='str'), - source=dict(default='Ansible', type='str'), - user=dict(type='str'), - repo=dict(type='str'), - revision=dict(type='str'), - environment=dict(type='str'), - link_url=dict(type='str'), - link_text=dict(type='str'), - url=dict(default='https://events.pagerduty.com/v2/change/enqueue', type='str'), + source=dict(required=False, default='Ansible', type='str'), + user=dict(required=False, type='str'), + repo=dict(required=False, type='str'), + revision=dict(required=False, type='str'), + environment=dict(required=False, type='str'), + link_url=dict(required=False, type='str'), + link_text=dict(required=False, type='str'), + url=dict(required=False, + default='https://events.pagerduty.com/v2/change/enqueue', type='str'), validate_certs=dict(default=True, type='bool') ), supports_check_mode=True diff --git a/plugins/modules/pagerduty_user.py b/plugins/modules/pagerduty_user.py index 0830af97f3..e03342c792 100644 --- a/plugins/modules/pagerduty_user.py +++ b/plugins/modules/pagerduty_user.py @@ -188,7 +188,7 @@ def main(): state=dict(type='str', default='present', choices=['present', 'absent']), pd_role=dict(type='str', default='responder', choices=['global_admin', 'manager', 'responder', 'observer', 'stakeholder', 'limited_stakeholder', 'restricted_access']), - pd_teams=dict(type='list', elements='str')), + pd_teams=dict(type='list', elements='str', required=False)), required_if=[['state', 'present', ['pd_teams']], ], supports_check_mode=True, ) diff --git a/plugins/modules/pam_limits.py b/plugins/modules/pam_limits.py index 536ba59662..d21781ac6c 100644 --- a/plugins/modules/pam_limits.py +++ b/plugins/modules/pam_limits.py @@ -80,7 +80,7 @@ options: default: false use_min: description: - - If set to V(true), the minimal value is used or conserved. + - If set to V(true), the minimal value will be used or conserved. - If the specified value is inferior to the value in the file, file content is replaced with the new value, else content is not modified. required: false @@ -88,7 +88,7 @@ options: default: false use_max: description: - - If set to V(true), the maximal value is used or conserved. + - If set to V(true), the maximal value will be used or conserved. - If the specified value is superior to the value in the file, file content is replaced with the new value, else content is not modified. required: false @@ -183,7 +183,7 @@ def main(): use_min=dict(default=False, type='bool'), backup=dict(default=False, type='bool'), dest=dict(default=limits_conf, type='str'), - comment=dict(default='', type='str') + comment=dict(required=False, default='', type='str') ), supports_check_mode=True, ) diff --git a/plugins/modules/pamd.py b/plugins/modules/pamd.py index 327316aa37..ec2127483e 100644 --- a/plugins/modules/pamd.py +++ b/plugins/modules/pamd.py @@ -68,20 +68,21 @@ options: type: str module_arguments: description: - - When O(state=updated), the O(module_arguments) replace existing module_arguments. - - When O(state=args_absent) args matching those listed in O(module_arguments) are removed. + - When O(state=updated), the O(module_arguments) will replace existing module_arguments. + - When O(state=args_absent) args matching those listed in O(module_arguments) will be removed. - When O(state=args_present) any args listed in O(module_arguments) are added if missing from the existing rule. - - Furthermore, if the module argument takes a value denoted by C(=), the value changes to that specified in module_arguments. + - Furthermore, if the module argument takes a value denoted by C(=), the value will be changed to that specified in + module_arguments. type: list elements: str state: description: - - The default of V(updated) modifies an existing rule if type, control and module_path all match an existing rule. - - With V(before), the new rule is inserted before a rule matching type, control and module_path. - - Similarly, with V(after), the new rule is inserted after an existing rulematching type, control and module_path. + - The default of V(updated) will modify an existing rule if type, control and module_path all match an existing rule. + - With V(before), the new rule will be inserted before a rule matching type, control and module_path. + - Similarly, with V(after), the new rule will be inserted after an existing rulematching type, control and module_path. - With either V(before) or V(after) O(new_type), O(new_control), and O(new_module_path) must all be specified. - - If state is V(args_absent) or V(args_present), O(new_type), O(new_control), and O(new_module_path) are ignored. - - State V(absent) removes the rule. + - If state is V(args_absent) or V(args_present), O(new_type), O(new_control), and O(new_module_path) will be ignored. + - State V(absent) will remove the rule. type: str choices: [absent, before, after, args_absent, args_present, updated] default: updated diff --git a/plugins/modules/parted.py b/plugins/modules/parted.py index 4bf0897afc..7fc9f320d2 100644 --- a/plugins/modules/parted.py +++ b/plugins/modules/parted.py @@ -50,7 +50,7 @@ options: type: int unit: description: - - Selects the current default unit that Parted uses to display locations and capacities on the disk and to interpret + - Selects the current default unit that Parted will use to display locations and capacities on the disk and to interpret those given by the user if they are not suffixed by an unit. - When fetching information about a disk, it is recommended to always specify a unit. type: str @@ -59,7 +59,8 @@ options: label: description: - Disk label type or partition table to use. - - If O(device) already contains a different label, it is changed to O(label) and any previous partitions are lost. + - If O(device) already contains a different label, it will be changed to O(label) and any previous partitions will be + lost. - A O(name) must be specified for a V(gpt) partition table. type: str choices: [aix, amiga, bsd, dvh, gpt, loop, mac, msdos, pc98, sun] @@ -73,8 +74,8 @@ options: default: primary part_start: description: - - Where the partition starts as offset from the beginning of the disk, that is, the "distance" from the start of the - disk. Negative numbers specify distance from the end of the disk. + - Where the partition will start as offset from the beginning of the disk, that is, the "distance" from the start of + the disk. Negative numbers specify distance from the end of the disk. - The distance can be specified with all the units supported by parted (except compat) and it is case sensitive, for example V(10GiB), V(15%). - Using negative values may require setting of O(fs_type) (see notes). @@ -82,8 +83,8 @@ options: default: 0% part_end: description: - - Where the partition ends as offset from the beginning of the disk, that is, the "distance" from the start of the disk. - Negative numbers specify distance from the end of the disk. + - Where the partition will end as offset from the beginning of the disk, that is, the "distance" from the start of the + disk. Negative numbers specify distance from the end of the disk. - The distance can be specified with all the units supported by parted (except compat) and it is case sensitive, for example V(10GiB), V(15%). type: str @@ -99,13 +100,13 @@ options: state: description: - Whether to create or delete a partition. - - If set to V(info) the module only returns the device information. + - If set to V(info) the module will only return the device information. type: str choices: [absent, present, info] default: info fs_type: description: - - If specified and the partition does not exist, sets filesystem type to given partition. + - If specified and the partition does not exist, will set filesystem type to given partition. - Parameter optional, but see notes below about negative O(part_start) values. type: str version_added: '0.2.0' diff --git a/plugins/modules/pear.py b/plugins/modules/pear.py index 5eb84b509d..05135925bc 100644 --- a/plugins/modules/pear.py +++ b/plugins/modules/pear.py @@ -47,14 +47,14 @@ options: description: - List of regular expressions that can be used to detect prompts during pear package installation to answer the expected question. - - Prompts are processed in the same order as the packages list. + - Prompts will be processed in the same order as the packages list. - You can optionally specify an answer to any question in the list. - - If no answer is provided, the list item must contain only the regular expression. - - "To specify an answer, the item must be a dictionary with the regular expression as key and the answer as value C(my_regular_expression: + - If no answer is provided, the list item will only contain the regular expression. + - "To specify an answer, the item will be a dict with the regular expression as key and the answer as value C(my_regular_expression: 'an_answer')." - You can provide a list containing items with or without answer. - - A prompt list can be shorter or longer than the packages list but it issues a warning. - - If you want to specify that a package does not need prompts in the middle of a list, V(null). + - A prompt list can be shorter or longer than the packages list but will issue a warning. + - If you want to specify that a package will not need prompts in the middle of a list, V(null). type: list elements: raw version_added: 0.2.0 @@ -293,8 +293,8 @@ def main(): argument_spec=dict( name=dict(aliases=['pkg'], required=True), state=dict(default='present', choices=['present', 'installed', "latest", 'absent', 'removed']), - executable=dict(type='path'), - prompts=dict(type='list', elements='raw'), + executable=dict(default=None, required=False, type='path'), + prompts=dict(default=None, required=False, type='list', elements='raw'), ), supports_check_mode=True) diff --git a/plugins/modules/pingdom.py b/plugins/modules/pingdom.py index 7c82063ab9..031085e61e 100644 --- a/plugins/modules/pingdom.py +++ b/plugins/modules/pingdom.py @@ -12,7 +12,7 @@ DOCUMENTATION = r""" module: pingdom short_description: Pause/unpause Pingdom alerts description: - - This module lets you pause/unpause Pingdom alerts. + - This module will let you pause/unpause Pingdom alerts. author: - "Dylan Silva (@thaumos)" - "Justin Johns (!UNKNOWN)" diff --git a/plugins/modules/pip_package_info.py b/plugins/modules/pip_package_info.py index 80bdedf7fe..ffe2e9f401 100644 --- a/plugins/modules/pip_package_info.py +++ b/plugins/modules/pip_package_info.py @@ -20,8 +20,8 @@ extends_documentation_fragment: options: clients: description: - - A list of the pip executables that are used to get the packages. They can be supplied with the full path or just the - executable name, for example V(pip3.7). + - A list of the pip executables that will be used to get the packages. They can be supplied with the full path or just + the executable name, for example V(pip3.7). default: ['pip'] required: false type: list @@ -59,39 +59,37 @@ packages: returned: always type: dict sample: - { - "packages": { - "pip": { - "Babel": [ - { - "name": "Babel", - "source": "pip", - "version": "2.6.0" - } - ], - "Flask": [ - { - "name": "Flask", - "source": "pip", - "version": "1.0.2" - } - ], - "Flask-SQLAlchemy": [ - { - "name": "Flask-SQLAlchemy", - "source": "pip", - "version": "2.3.2" - } - ], - "Jinja2": [ - { - "name": "Jinja2", - "source": "pip", - "version": "2.10" - } - ] - } - } + "packages": { + "pip": { + "Babel": [ + { + "name": "Babel", + "source": "pip", + "version": "2.6.0" + } + ], + "Flask": [ + { + "name": "Flask", + "source": "pip", + "version": "1.0.2" + } + ], + "Flask-SQLAlchemy": [ + { + "name": "Flask-SQLAlchemy", + "source": "pip", + "version": "2.3.2" + } + ], + "Jinja2": [ + { + "name": "Jinja2", + "source": "pip", + "version": "2.10" + } + ], + }, } """ diff --git a/plugins/modules/pipx.py b/plugins/modules/pipx.py index 778810be0c..5633640ea4 100644 --- a/plugins/modules/pipx.py +++ b/plugins/modules/pipx.py @@ -154,7 +154,7 @@ options: version_added: 9.4.0 requirements: - When using O(name) with version specifiers, the Python package C(packaging) is required. - - If the package C(packaging) is at a version lesser than C(22.0.0), it fails silently when processing invalid specifiers, + - If the package C(packaging) is at a version lesser than C(22.0.0), it will fail silently when processing invalid specifiers, like C(tox<<<<4.0). author: - "Alexei Znamensky (@russoz)" diff --git a/plugins/modules/pipx_info.py b/plugins/modules/pipx_info.py index fc74df496a..a381421aba 100644 --- a/plugins/modules/pipx_info.py +++ b/plugins/modules/pipx_info.py @@ -115,15 +115,7 @@ cmd: returned: success type: list elements: str - sample: - [ - "/usr/bin/python3.10", - "-m", - "pipx", - "list", - "--include-injected", - "--json" - ] + sample: ["/usr/bin/python3.10", "-m", "pipx", "list", "--include-injected", "--json"] version: description: Version of pipx. diff --git a/plugins/modules/pkg5_publisher.py b/plugins/modules/pkg5_publisher.py index 26abded4e2..01c9d48cce 100644 --- a/plugins/modules/pkg5_publisher.py +++ b/plugins/modules/pkg5_publisher.py @@ -16,7 +16,7 @@ author: "Peter Oliver (@mavit)" short_description: Manages Solaris 11 Image Packaging System publishers description: - IPS packages are the native packages in Solaris 11 and higher. - - This module configures which publishers a client downloads IPS packages from. + - This modules will configure which publishers a client will download IPS packages from. extends_documentation_fragment: - community.general.attributes attributes: diff --git a/plugins/modules/pkgin.py b/plugins/modules/pkgin.py index 8695f1b5af..21a3b10016 100644 --- a/plugins/modules/pkgin.py +++ b/plugins/modules/pkgin.py @@ -26,7 +26,7 @@ author: - "Shaun Zinck (@szinck)" - "Jasper Lievisse Adriaanse (@jasperla)" notes: - - 'Known bug with pkgin < 0.8.0: if a package is removed and another package depends on it, the other package is silently + - 'Known bug with pkgin < 0.8.0: if a package is removed and another package depends on it, the other package will be silently removed as well.' extends_documentation_fragment: - community.general.attributes diff --git a/plugins/modules/pkgng.py b/plugins/modules/pkgng.py index 58eafb9e0c..582abd3649 100644 --- a/plugins/modules/pkgng.py +++ b/plugins/modules/pkgng.py @@ -30,7 +30,7 @@ options: name: description: - Name or list of names of packages to install/remove. - - With O(name=*), O(state=latest) operates, but O(state=present) and O(state=absent) are noops. + - With O(name=*), O(state=latest) will operate, but O(state=present) and O(state=absent) will be noops. required: true aliases: [pkg] type: list @@ -65,19 +65,19 @@ options: type: str rootdir: description: - - For C(pkgng) versions 1.5 and later, pkg installs all packages within the specified root directory. + - For C(pkgng) versions 1.5 and later, pkg will install all packages within the specified root directory. - Can not be used together with O(chroot) or O(jail) options. required: false type: path chroot: description: - - Pkg chroots in the specified environment. + - Pkg will chroot in the specified environment. - Can not be used together with O(rootdir) or O(jail) options. required: false type: path jail: description: - - Pkg executes in the given jail name or ID. + - Pkg will execute in the given jail name or ID. - Can not be used together with O(chroot) or O(rootdir) options. type: str autoremove: @@ -103,8 +103,8 @@ options: version_added: 9.3.0 author: "bleader (@bleader)" notes: - - When using pkgsite, be careful that already in cache packages are not downloaded again. - - When used with a C(loop:) each package is processed individually, it is much more efficient to pass the list directly + - When using pkgsite, be careful that already in cache packages will not be downloaded again. + - When used with a C(loop:) each package will be processed individually, it is much more efficient to pass the list directly to the O(name) option. """ @@ -422,17 +422,17 @@ def autoremove_packages(module, run_pkgng): def main(): module = AnsibleModule( argument_spec=dict( - state=dict(default="present", choices=["present", "latest", "absent"]), + state=dict(default="present", choices=["present", "latest", "absent"], required=False), name=dict(aliases=["pkg"], required=True, type='list', elements='str'), cached=dict(default=False, type='bool'), - ignore_osver=dict(default=False, type='bool'), - annotation=dict(type='list', elements='str'), - pkgsite=dict(), - rootdir=dict(type='path'), - chroot=dict(type='path'), - jail=dict(type='str'), + ignore_osver=dict(default=False, required=False, type='bool'), + annotation=dict(required=False, type='list', elements='str'), + pkgsite=dict(required=False), + rootdir=dict(required=False, type='path'), + chroot=dict(required=False, type='path'), + jail=dict(required=False, type='str'), autoremove=dict(default=False, type='bool'), - use_globs=dict(default=True, type='bool'), + use_globs=dict(default=True, required=False, type='bool'), ), supports_check_mode=True, mutually_exclusive=[["rootdir", "chroot", "jail"]]) diff --git a/plugins/modules/pkgutil.py b/plugins/modules/pkgutil.py index a40bff06ec..7eb18cdb20 100644 --- a/plugins/modules/pkgutil.py +++ b/plugins/modules/pkgutil.py @@ -17,7 +17,7 @@ module: pkgutil short_description: OpenCSW package management on Solaris description: - This module installs, updates and removes packages from the OpenCSW project for Solaris. - - Unlike the M(community.general.svr4pkg) module, it resolves and downloads dependencies. + - Unlike the M(community.general.svr4pkg) module, it will resolve and download dependencies. - See U(https://www.opencsw.org/) for more information about the project. author: - Alexander Winkler (@dermute) @@ -50,7 +50,7 @@ options: state: description: - Whether to install (V(present)/V(installed)), or remove (V(absent)/V(removed)) packages. - - The upgrade (V(latest)) operation updates/installs the packages to the latest version available. + - The upgrade (V(latest)) operation will update/install the packages to the latest version available. type: str required: true choices: [absent, installed, latest, present, removed] diff --git a/plugins/modules/pmem.py b/plugins/modules/pmem.py index 1555ec842e..66c1d27033 100644 --- a/plugins/modules/pmem.py +++ b/plugins/modules/pmem.py @@ -46,9 +46,9 @@ options: type: int reserved: description: - - Percentage of the capacity to reserve (V(0)-V(100)). O(reserved) is not mapped into the system physical address space - and is presented as reserved capacity with Show Device and Show Memory Resources Commands. - - O(reserved) is set automatically if this is not configured. + - Percentage of the capacity to reserve (V(0)-V(100)). O(reserved) will not be mapped into the system physical address + space and will be presented as reserved capacity with Show Device and Show Memory Resources Commands. + - O(reserved) will be set automatically if this is not configured. type: int required: false socket: @@ -147,21 +147,20 @@ result: namespace: description: The list of the detail of namespace. type: list - sample: - [ - { - "appdirect": 111669149696, - "memorymode": 970662608896, - "reserved": 3626500096, - "socket": 0 - }, - { - "appdirect": 111669149696, - "memorymode": 970662608896, - "reserved": 3626500096, - "socket": 1 - } - ] + sample: [ + { + "appdirect": 111669149696, + "memorymode": 970662608896, + "reserved": 3626500096, + "socket": 0 + }, + { + "appdirect": 111669149696, + "memorymode": 970662608896, + "reserved": 3626500096, + "socket": 1 + } + ] """ EXAMPLES = r""" diff --git a/plugins/modules/pnpm.py b/plugins/modules/pnpm.py index 2dad63a608..c4dbf55dff 100644 --- a/plugins/modules/pnpm.py +++ b/plugins/modules/pnpm.py @@ -77,14 +77,14 @@ options: production: description: - Install dependencies in production mode. - - Pnpm ignores any dependencies under C(devDependencies) in package.json. + - Pnpm will ignore any dependencies under C(devDependencies) in package.json. required: false type: bool default: false dev: description: - Install dependencies in development mode. - - Pnpm ignores any regular dependencies in C(package.json). + - Pnpm will ignore any regular dependencies in C(package.json). required: false default: false type: bool @@ -339,11 +339,11 @@ class Pnpm(object): def main(): arg_spec = dict( - name=dict(), - alias=dict(), - path=dict(type="path"), - version=dict(), - executable=dict(type="path"), + name=dict(default=None), + alias=dict(default=None), + path=dict(default=None, type="path"), + version=dict(default=None), + executable=dict(default=None, type="path"), ignore_scripts=dict(default=False, type="bool"), no_optional=dict(default=False, type="bool"), production=dict(default=False, type="bool"), diff --git a/plugins/modules/portage.py b/plugins/modules/portage.py index 8a00b934dd..4a1cb1b990 100644 --- a/plugins/modules/portage.py +++ b/plugins/modules/portage.py @@ -193,7 +193,7 @@ options: quietfail: description: - Suppresses display of the build log on stdout (--quiet-fail). - - Only the die message and the path of the build log are displayed on stdout. + - Only the die message and the path of the build log will be displayed on stdout. type: bool default: false @@ -510,13 +510,13 @@ portage_absent_states = ['absent', 'unmerged', 'removed'] def main(): module = AnsibleModule( argument_spec=dict( - package=dict(type='list', elements='str', aliases=['name']), + package=dict(type='list', elements='str', default=None, aliases=['name']), state=dict( default=portage_present_states[0], choices=portage_present_states + portage_absent_states, ), update=dict(default=False, type='bool'), - backtrack=dict(type='int'), + backtrack=dict(default=None, type='int'), deep=dict(default=False, type='bool'), newuse=dict(default=False, type='bool'), changed_use=dict(default=False, type='bool'), @@ -525,18 +525,18 @@ def main(): nodeps=dict(default=False, type='bool'), onlydeps=dict(default=False, type='bool'), depclean=dict(default=False, type='bool'), - select=dict(type='bool'), + select=dict(default=None, type='bool'), quiet=dict(default=False, type='bool'), verbose=dict(default=False, type='bool'), - sync=dict(choices=['yes', 'web', 'no']), + sync=dict(default=None, choices=['yes', 'web', 'no']), getbinpkgonly=dict(default=False, type='bool'), getbinpkg=dict(default=False, type='bool'), usepkgonly=dict(default=False, type='bool'), usepkg=dict(default=False, type='bool'), keepgoing=dict(default=False, type='bool'), - jobs=dict(type='int'), - loadavg=dict(type='float'), - withbdeps=dict(type='bool'), + jobs=dict(default=None, type='int'), + loadavg=dict(default=None, type='float'), + withbdeps=dict(default=None, type='bool'), quietbuild=dict(default=False, type='bool'), quietfail=dict(default=False, type='bool'), ), diff --git a/plugins/modules/pritunl_org.py b/plugins/modules/pritunl_org.py index f87813031b..f264fae875 100644 --- a/plugins/modules/pritunl_org.py +++ b/plugins/modules/pritunl_org.py @@ -35,9 +35,9 @@ options: type: bool default: false description: - - If O(force) is V(true) and O(state) is V(absent), the module deletes the organization, no matter if it contains users - or not. By default O(force) is V(false), which causes the module to fail the deletion of the organization when it - contains users. + - If O(force) is V(true) and O(state) is V(absent), the module will delete the organization, no matter if it contains + users or not. By default O(force) is V(false), which will cause the module to fail the deletion of the organization + when it contains users. state: type: str default: 'present' @@ -176,8 +176,10 @@ def main(): argument_spec.update( dict( name=dict(required=True, type="str", aliases=["org"]), - force=dict(type="bool", default=False), - state=dict(choices=["present", "absent"], default="present"), + force=dict(required=False, type="bool", default=False), + state=dict( + required=False, choices=["present", "absent"], default="present" + ), ) ) diff --git a/plugins/modules/pritunl_org_info.py b/plugins/modules/pritunl_org_info.py index 952acd8963..c8e75190f1 100644 --- a/plugins/modules/pritunl_org_info.py +++ b/plugins/modules/pritunl_org_info.py @@ -27,7 +27,7 @@ options: - org default: null description: - - Name of the Pritunl organization to search for. If none provided, the module returns all Pritunl organizations. + - Name of the Pritunl organization to search for. If none provided, the module will return all Pritunl organizations. """ EXAMPLES = r""" @@ -113,7 +113,7 @@ def main(): argument_spec.update( dict( - organization=dict(type="str", aliases=["org"]) + organization=dict(required=False, type="str", default=None, aliases=["org"]) ) ) diff --git a/plugins/modules/pritunl_user.py b/plugins/modules/pritunl_user.py index 45de07eba6..c8cc9ea9c6 100644 --- a/plugins/modules/pritunl_user.py +++ b/plugins/modules/pritunl_user.py @@ -320,14 +320,18 @@ def main(): argument_spec.update( dict( organization=dict(required=True, type="str", aliases=["org"]), - state=dict(choices=["present", "absent"], default="present"), + state=dict( + required=False, choices=["present", "absent"], default="present" + ), user_name=dict(required=True, type="str"), - user_type=dict(choices=["client", "server"], default="client"), - user_email=dict(type="str"), - user_groups=dict(type="list", elements="str"), - user_disabled=dict(type="bool"), - user_gravatar=dict(type="bool"), - user_mac_addresses=dict(type="list", elements="str"), + user_type=dict( + required=False, choices=["client", "server"], default="client" + ), + user_email=dict(required=False, type="str", default=None), + user_groups=dict(required=False, type="list", elements="str", default=None), + user_disabled=dict(required=False, type="bool", default=None), + user_gravatar=dict(required=False, type="bool", default=None), + user_mac_addresses=dict(required=False, type="list", elements="str", default=None), ) ) diff --git a/plugins/modules/pritunl_user_info.py b/plugins/modules/pritunl_user_info.py index 2e8180675a..93786b166d 100644 --- a/plugins/modules/pritunl_user_info.py +++ b/plugins/modules/pritunl_user_info.py @@ -151,8 +151,12 @@ def main(): argument_spec.update( dict( organization=dict(required=True, type="str", aliases=["org"]), - user_name=dict(type="str"), - user_type=dict(choices=["client", "server"], default="client"), + user_name=dict(required=False, type="str", default=None), + user_type=dict( + required=False, + choices=["client", "server"], + default="client", + ), ) ) diff --git a/plugins/modules/pubnub_blocks.py b/plugins/modules/pubnub_blocks.py index 316fced4be..c8992b2aa7 100644 --- a/plugins/modules/pubnub_blocks.py +++ b/plugins/modules/pubnub_blocks.py @@ -56,13 +56,13 @@ options: default: {} account: description: - - Name of PubNub account for from which O(application) is used to manage blocks. - - User's account is used if value not set or empty. + - Name of PubNub account for from which O(application) will be used to manage blocks. + - User's account will be used if value not set or empty. type: str default: '' application: description: - - Name of target PubNub application for which blocks configuration on specific O(keyset) is done. + - Name of target PubNub application for which blocks configuration on specific O(keyset) will be done. type: str required: true keyset: @@ -72,19 +72,19 @@ options: required: true state: description: - - Intended block state after event handlers creation / update process is completed. + - Intended block state after event handlers creation / update process will be completed. required: false default: 'present' choices: ['started', 'stopped', 'present', 'absent'] type: str name: description: - - Name of managed block which is later visible on admin.pubnub.com. + - Name of managed block which will be later visible on admin.pubnub.com. required: true type: str description: description: - - Short block description which is later visible on U(https://admin.pubnub.com). + - Short block description which will be later visible on U(https://admin.pubnub.com). - Used only if block does not exists and does not change description for existing block. required: false type: str @@ -99,8 +99,8 @@ options: - Each entry for existing handlers should contain C(name) (so target handler can be identified). Rest parameters (C(src), C(channels) and C(event)) can be added if changes required for them. - It is possible to rename event handler by adding C(changes) key to event handler payload and pass dictionary, which - contains single key C(name), where new name should be passed. - - To remove particular event handler it is possible to set C(state) for it to C(absent) and it is removed. + will contain single key C(name), where new name should be passed. + - To remove particular event handler it is possible to set C(state) for it to C(absent) and it will be removed. required: false default: [] type: list @@ -115,7 +115,7 @@ options: validate_certs: description: - This key allow to try skip certificates check when performing REST API calls. Sometimes host may have issues with - certificates on it and this causes problems to call PubNub REST API. + certificates on it and this will cause problems to call PubNub REST API. - If check should be ignored V(false) should be passed to this parameter. required: false default: true @@ -532,9 +532,9 @@ def _content_of_file_at_path(path): def main(): fields = dict( - email=dict(default='', type='str'), - password=dict(default='', type='str', no_log=True), - account=dict(default='', type='str'), + email=dict(default='', required=False, type='str'), + password=dict(default='', required=False, type='str', no_log=True), + account=dict(default='', required=False, type='str'), application=dict(required=True, type='str'), keyset=dict(required=True, type='str', no_log=False), state=dict(default='present', type='str', diff --git a/plugins/modules/pulp_repo.py b/plugins/modules/pulp_repo.py index cc7f001837..0af129d26a 100644 --- a/plugins/modules/pulp_repo.py +++ b/plugins/modules/pulp_repo.py @@ -36,7 +36,7 @@ options: description: - C(httplib2), the library used by the M(ansible.builtin.uri) module only sends authentication information when a webservice responds to an initial request with a 401 status. Since some basic auth services do not properly send a 401, logins - fail. This option forces the sending of the Basic authentication header upon initial request. + will fail. This option forces the sending of the Basic authentication header upon initial request. type: bool default: false generate_sqlite: @@ -131,22 +131,22 @@ options: default: true state: description: - - The repo state. A state of V(sync) queues a sync of the repo. This is asynchronous but not delayed like a scheduled - sync. A state of V(publish) uses the repository's distributor to publish the content. + - The repo state. A state of V(sync) will queue a sync of the repo. This is asynchronous but not delayed like a scheduled + sync. A state of V(publish) will use the repository's distributor to publish the content. default: present choices: ["present", "absent", "sync", "publish"] type: str url_password: description: - The password for use in HTTP basic authentication to the pulp API. If the O(url_username) parameter is not specified, - the O(url_password) parameter is not used. + the O(url_password) parameter will not be used. url_username: description: - The username for use in HTTP basic authentication to the pulp API. validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed - certificates. + - If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using + self-signed certificates. type: bool default: true wait_for_completion: diff --git a/plugins/modules/puppet.py b/plugins/modules/puppet.py index a1ab66efc6..a631a8ec55 100644 --- a/plugins/modules/puppet.py +++ b/plugins/modules/puppet.py @@ -66,8 +66,8 @@ options: logdest: description: - Where the puppet logs should go, if puppet apply is being used. - - V(all) goes to both C(console) and C(syslog). - - V(stdout) is deprecated and replaced by C(console). + - V(all) will go to both C(console) and C(syslog). + - V(stdout) will be deprecated and replaced by C(console). type: str choices: [all, stdout, syslog] default: stdout @@ -128,8 +128,8 @@ options: - The default value, V(C), is supported on every system, but can lead to encoding errors if UTF-8 is used in the output. - Use V(C.UTF-8) or V(en_US.UTF-8) or similar UTF-8 supporting locales in case of problems. You need to make sure the selected locale is supported on the system the puppet agent runs on. - - Starting with community.general 9.1.0, you can use the value V(auto) and the module tries to determine the best parseable - locale to use. + - Starting with community.general 9.1.0, you can use the value V(auto) and the module will try and determine the best + parseable locale to use. type: str default: C version_added: 8.6.0 diff --git a/plugins/modules/pushbullet.py b/plugins/modules/pushbullet.py index 990ac36525..2f13f1dee2 100644 --- a/plugins/modules/pushbullet.py +++ b/plugins/modules/pushbullet.py @@ -114,12 +114,12 @@ def main(): module = AnsibleModule( argument_spec=dict( api_key=dict(type='str', required=True, no_log=True), - channel=dict(type='str'), - device=dict(type='str'), + channel=dict(type='str', default=None), + device=dict(type='str', default=None), push_type=dict(type='str', default="note", choices=['note', 'link']), title=dict(type='str', required=True), - body=dict(type='str'), - url=dict(type='str'), + body=dict(type='str', default=None), + url=dict(type='str', default=None), ), mutually_exclusive=( ['channel', 'device'], diff --git a/plugins/modules/pushover.py b/plugins/modules/pushover.py index dcfce34a06..ae57411531 100644 --- a/plugins/modules/pushover.py +++ b/plugins/modules/pushover.py @@ -15,7 +15,7 @@ short_description: Send notifications through U(https://pushover.net) description: - Send notifications through pushover to subscriber list of devices and email addresses. Requires pushover app on devices. notes: - - You need a pushover.net account to use this module. But no account is required to receive messages. + - You will require a pushover.net account to use this module. But no account is required to receive messages. extends_documentation_fragment: - community.general.attributes attributes: @@ -140,7 +140,7 @@ def main(): msg=dict(required=True), app_token=dict(required=True, no_log=True), user_key=dict(required=True, no_log=True), - pri=dict(default='0', choices=['-2', '-1', '0', '1', '2']), + pri=dict(required=False, default='0', choices=['-2', '-1', '0', '1', '2']), device=dict(type='str'), ), ) diff --git a/plugins/modules/python_requirements_info.py b/plugins/modules/python_requirements_info.py index cbe93dd944..a8ef5a952f 100644 --- a/plugins/modules/python_requirements_info.py +++ b/plugins/modules/python_requirements_info.py @@ -92,7 +92,7 @@ python_system_path: - /usr/lib/python/site-packages/ valid: description: A dictionary of dependencies that matched their desired versions. If no version was specified, then RV(ignore:desired) - is V(null). + will be V(null). returned: always type: dict sample: diff --git a/plugins/modules/redfish_command.py b/plugins/modules/redfish_command.py index f8578488e9..25f92bd1f7 100644 --- a/plugins/modules/redfish_command.py +++ b/plugins/modules/redfish_command.py @@ -229,8 +229,8 @@ options: description: - Custom OEM properties for HTTP Multipart Push updates. - If set, then O(update_custom_oem_header) is required too. - - The properties are passed raw without any validation or conversion by Ansible. This means the content can be a file, - a string, or any other data. If the content is a dictionary that should be converted to JSON, then the content must + - The properties will be passed raw without any validation or conversion by Ansible. This means the content can be a + file, a string, or any other data. If the content is a dict that should be converted to JSON, then the content must be converted to JSON before passing it to this module using the P(ansible.builtin.to_json#filter) filter. type: raw version_added: '10.1.0' @@ -830,16 +830,15 @@ return_values: returned: on success type: dict version_added: 6.1.0 - sample: - { - "update_status": { - "handle": "/redfish/v1/TaskService/TaskMonitors/735", - "messages": [], - "resets_requested": [], - "ret": true, - "status": "New" - } + sample: { + "update_status": { + "handle": "/redfish/v1/TaskService/TaskMonitors/735", + "messages": [], + "resets_requested": [], + "ret": true, + "status": "New" } + } """ from ansible.module_utils.basic import AnsibleModule diff --git a/plugins/modules/redfish_config.py b/plugins/modules/redfish_config.py index 6eba0b0048..8700d4b8de 100644 --- a/plugins/modules/redfish_config.py +++ b/plugins/modules/redfish_config.py @@ -166,9 +166,9 @@ options: volume_details: required: false description: - - Setting dictionary of volume to be created. - - If C(CapacityBytes) key is not specified in this dictionary, the size of the volume is determined by the Redfish service. - It is possible the size is not the maximum available size. + - Setting dict of volume to be created. + - If C(CapacityBytes) key is not specified in this dictionary, the size of the volume will be determined by the Redfish + service. It is possible the size will not be the maximum available size. type: dict default: {} version_added: '7.5.0' diff --git a/plugins/modules/redhat_subscription.py b/plugins/modules/redhat_subscription.py index 165bfb2891..6818253c9d 100644 --- a/plugins/modules/redhat_subscription.py +++ b/plugins/modules/redhat_subscription.py @@ -21,7 +21,7 @@ notes: - 'The module tries to use the D-Bus C(rhsm) service (part of C(subscription-manager)) to register, starting from community.general 6.5.0: this is done so credentials (username, password, activation keys) can be passed to C(rhsm) in a secure way. C(subscription-manager) itself gets credentials only as arguments of command line parameters, which is I(not) secure, as they can be easily stolen - by checking the process listing on the system. Due to limitations of the D-Bus interface of C(rhsm), the module does I(not) + by checking the process listing on the system. Due to limitations of the D-Bus interface of C(rhsm), the module will I(not) use D-Bus for registration when trying either to register using O(token), or when specifying O(environment), or when the system is old (typically RHEL 7 older than 7.4, RHEL 6, and older).' - In order to register a system, subscription-manager requires either a username and password, or an activationkey and an @@ -132,9 +132,10 @@ options: pool_ids: description: - Specify subscription pool IDs to consume. - - 'A pool ID may be specified as a C(string) - just the pool ID (for example V(0123456789abcdef0123456789abcdef)), or - as a C(dict) with the pool ID as the key, and a quantity as the value (for example V(0123456789abcdef0123456789abcdef: - 2). If the quantity is provided, it is used to consume multiple entitlements from a pool (the pool must support this).' + - 'A pool ID may be specified as a C(string) - just the pool ID (for example + V(0123456789abcdef0123456789abcdef)), or as a C(dict) with the pool ID as the key, and a quantity as the value (for + example V(0123456789abcdef0123456789abcdef: 2). If the quantity is provided, it is used to consume multiple entitlements + from a pool (the pool must support this).' default: [] type: list elements: raw @@ -166,8 +167,8 @@ options: - Set syspurpose attributes in file C(/etc/rhsm/syspurpose/syspurpose.json) and synchronize these attributes with RHSM server. Syspurpose attributes help attach the most appropriate subscriptions to the system automatically. When C(syspurpose.json) file already contains some attributes, then new attributes overwrite existing attributes. When some attribute is not - listed in the new list of attributes, the existing attribute is removed from C(syspurpose.json) file. Unknown attributes - are ignored. + listed in the new list of attributes, the existing attribute will be removed from C(syspurpose.json) file. Unknown + attributes are ignored. type: dict suboptions: usage: @@ -186,7 +187,7 @@ options: sync: description: - When this option is V(true), then syspurpose attributes are synchronized with RHSM server immediately. When this - option is V(false), then syspurpose attributes are synchronized with RHSM server by rhsmcertd daemon. + option is V(false), then syspurpose attributes will be synchronized with RHSM server by rhsmcertd daemon. type: bool default: false """ diff --git a/plugins/modules/redis_data.py b/plugins/modules/redis_data.py index 4efe409b72..03ae78dce3 100644 --- a/plugins/modules/redis_data.py +++ b/plugins/modules/redis_data.py @@ -33,7 +33,7 @@ options: type: str expiration: description: - - Expiration time in milliseconds. Setting this option always results in a change in the database. + - Expiration time in milliseconds. Setting this flag will always result in a change in the database. required: false type: int non_existing: @@ -143,11 +143,11 @@ def main(): redis_auth_args = redis_auth_argument_spec() module_args = dict( key=dict(type='str', required=True, no_log=False), - value=dict(type='str'), - expiration=dict(type='int'), - non_existing=dict(type='bool'), - existing=dict(type='bool'), - keep_ttl=dict(type='bool'), + value=dict(type='str', required=False), + expiration=dict(type='int', required=False), + non_existing=dict(type='bool', required=False), + existing=dict(type='bool', required=False), + keep_ttl=dict(type='bool', required=False), state=dict(type='str', default='present', choices=['present', 'absent']), ) diff --git a/plugins/modules/redis_data_incr.py b/plugins/modules/redis_data_incr.py index d5f2fe05c2..7630d621dc 100644 --- a/plugins/modules/redis_data_incr.py +++ b/plugins/modules/redis_data_incr.py @@ -21,8 +21,8 @@ attributes: support: partial details: - For C(check_mode) to work, the specified O(login_user) needs permission to run the C(GET) command on the key, otherwise - the module fails. - - When using C(check_mode) the module tries to calculate the value that Redis would return. If the key is not present, + the module will fail. + - When using C(check_mode) the module will try to calculate the value that Redis would return. If the key is not present, V(0.0) is used as value. diff_mode: support: none @@ -98,8 +98,8 @@ def main(): redis_auth_args = redis_auth_argument_spec() module_args = dict( key=dict(type='str', required=True, no_log=False), - increment_int=dict(type='int'), - increment_float=dict(type='float'), + increment_int=dict(type='int', required=False), + increment_float=dict(type='float', required=False), ) module_args.update(redis_auth_args) diff --git a/plugins/modules/rhsm_release.py b/plugins/modules/rhsm_release.py index 665c734849..6408d3c171 100644 --- a/plugins/modules/rhsm_release.py +++ b/plugins/modules/rhsm_release.py @@ -14,8 +14,8 @@ short_description: Set or Unset RHSM Release version description: - Sets or unsets the release version used by RHSM repositories. notes: - - This module fails on an unregistered system. Use the M(community.general.redhat_subscription) module to register a system - prior to setting the RHSM release. + - This module will fail on an unregistered system. Use the M(community.general.redhat_subscription) module to register a + system prior to setting the RHSM release. - It is possible to interact with C(subscription-manager) only as root, so root permissions are required to successfully run this module. requirements: diff --git a/plugins/modules/rhsm_repository.py b/plugins/modules/rhsm_repository.py index e59fcd27b4..c80caa0d6c 100644 --- a/plugins/modules/rhsm_repository.py +++ b/plugins/modules/rhsm_repository.py @@ -48,7 +48,7 @@ options: purge: description: - Disable all currently enabled repositories that are not not specified in O(name). Only set this to V(true) if passing - in a list of repositories to the O(name) field. Using this with C(loop) is likely not to have the desired result. + in a list of repositories to the O(name) field. Using this with C(loop) will most likely not have the desired result. type: bool default: false """ diff --git a/plugins/modules/riak.py b/plugins/modules/riak.py index 2009ca0a22..d7b45af5cd 100644 --- a/plugins/modules/riak.py +++ b/plugins/modules/riak.py @@ -62,8 +62,8 @@ options: type: str validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed - certificates. + - If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using + self-signed certificates. type: bool default: true """ @@ -103,13 +103,15 @@ def main(): module = AnsibleModule( argument_spec=dict( - command=dict(choices=['ping', 'kv_test', 'join', 'plan', 'commit']), + command=dict(required=False, default=None, choices=[ + 'ping', 'kv_test', 'join', 'plan', 'commit']), config_dir=dict(default='/etc/riak', type='path'), - http_conn=dict(default='127.0.0.1:8098'), - target_node=dict(default='riak@127.0.0.1'), + http_conn=dict(required=False, default='127.0.0.1:8098'), + target_node=dict(default='riak@127.0.0.1', required=False), wait_for_handoffs=dict(default=0, type='int'), wait_for_ring=dict(default=0, type='int'), - wait_for_service=dict(choices=['kv']), + wait_for_service=dict( + required=False, default=None, choices=['kv']), validate_certs=dict(default=True, type='bool')) ) diff --git a/plugins/modules/rocketchat.py b/plugins/modules/rocketchat.py index 6da9b36e8d..765b7a71e3 100644 --- a/plugins/modules/rocketchat.py +++ b/plugins/modules/rocketchat.py @@ -69,7 +69,7 @@ options: description: - Emoji for the message sender. The representation for the available emojis can be got from Rocket Chat. - For example V(:thumbsup:). - - If O(icon_emoji) is set, O(icon_url) is not used. + - If O(icon_emoji) is set, O(icon_url) will not be used. link_names: type: int description: @@ -80,8 +80,8 @@ options: - 0 validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed - certificates. + - If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using + self-signed certificates. type: bool default: true color: @@ -102,10 +102,10 @@ options: - Define a list of attachments. is_pre740: description: - - If V(true), the payload matches Rocket.Chat prior to 7.4.0 format. This format has been used by the module since its - inception, but is no longer supported by Rocket.Chat 7.4.0. - - The default value of the option is going to change to V(false) eventually. - - This parameter is going to be removed in a future release when Rocket.Chat 7.4.0 becomes the minimum supported version. + - If V(true), the payload matches Rocket.Chat prior to 7.4.0 format. + This format has been used by the module since its inception, but is no longer supported by Rocket.Chat 7.4.0. + - The default value of the option will change to V(false) eventually. + - This parameter will be removed in a future release when Rocket.Chat 7.4.0 becomes the minimum supported version. type: bool default: true version_added: 10.5.0 @@ -159,6 +159,13 @@ EXAMPLES = r""" delegate_to: localhost """ +RETURN = r""" +changed: + description: A flag indicating if any change was made or not. + returned: success + type: bool + sample: false +""" from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.urls import fetch_url @@ -221,7 +228,7 @@ def main(): domain=dict(type='str', required=True), token=dict(type='str', required=True, no_log=True), protocol=dict(type='str', default='https', choices=['http', 'https']), - msg=dict(type='str'), + msg=dict(type='str', required=False), channel=dict(type='str'), username=dict(type='str', default='Ansible'), icon_url=dict(type='str', default='https://docs.ansible.com/favicon.ico'), @@ -229,7 +236,7 @@ def main(): link_names=dict(type='int', default=1, choices=[0, 1]), validate_certs=dict(default=True, type='bool'), color=dict(type='str', default='normal', choices=['normal', 'good', 'warning', 'danger']), - attachments=dict(type='list', elements='dict'), + attachments=dict(type='list', elements='dict', required=False), is_pre740=dict(default=True, type='bool') ) ) diff --git a/plugins/modules/rollbar_deployment.py b/plugins/modules/rollbar_deployment.py index e0cf4e31aa..a9658dbadf 100644 --- a/plugins/modules/rollbar_deployment.py +++ b/plugins/modules/rollbar_deployment.py @@ -61,7 +61,7 @@ options: default: 'https://api.rollbar.com/api/1/deploy/' validate_certs: description: - - If V(false), SSL certificates for the target URL are not validated. This should only be used on personally controlled + - If V(false), SSL certificates for the target URL will not be validated. This should only be used on personally controlled sites using self-signed certificates. required: false default: true @@ -100,10 +100,13 @@ def main(): token=dict(required=True, no_log=True), environment=dict(required=True), revision=dict(required=True), - user=dict(), - rollbar_user=dict(), - comment=dict(), - url=dict(default='https://api.rollbar.com/api/1/deploy/'), + user=dict(required=False), + rollbar_user=dict(required=False), + comment=dict(required=False), + url=dict( + required=False, + default='https://api.rollbar.com/api/1/deploy/' + ), validate_certs=dict(default=True, type='bool'), ), supports_check_mode=True diff --git a/plugins/modules/rpm_ostree_pkg.py b/plugins/modules/rpm_ostree_pkg.py index 01462b25f1..652801ca67 100644 --- a/plugins/modules/rpm_ostree_pkg.py +++ b/plugins/modules/rpm_ostree_pkg.py @@ -82,6 +82,16 @@ EXAMPLES = r""" """ RETURN = r""" +rc: + description: Return code of rpm-ostree command. + returned: always + type: int + sample: 0 +changed: + description: State changes. + returned: always + type: bool + sample: true action: description: Action performed. returned: always @@ -91,7 +101,17 @@ packages: description: A list of packages specified. returned: always type: list - sample: ["nfs-utils"] + sample: ['nfs-utils'] +stdout: + description: Stdout of rpm-ostree command. + returned: always + type: str + sample: 'Staging deployment...done\n...' +stderr: + description: Stderr of rpm-ostree command. + returned: always + type: str + sample: '' cmd: description: Full command used for performed action. returned: always diff --git a/plugins/modules/rundeck_job_run.py b/plugins/modules/rundeck_job_run.py index 1c5841b3c5..cb1941ab6a 100644 --- a/plugins/modules/rundeck_job_run.py +++ b/plugins/modules/rundeck_job_run.py @@ -62,7 +62,7 @@ options: type: int description: - Job execution wait timeout in seconds. - - If the timeout is reached, the job is aborted. + - If the timeout is reached, the job will be aborted. - Keep in mind that there is a sleep based on O(wait_execution_delay) after each job status check. default: 120 abort_on_timeout: diff --git a/plugins/modules/runit.py b/plugins/modules/runit.py index 5a575fa2ba..f26f241537 100644 --- a/plugins/modules/runit.py +++ b/plugins/modules/runit.py @@ -30,10 +30,9 @@ options: required: true state: description: - - V(started)/V(stopped) are idempotent actions that do not run commands unless necessary. - - V(restarted) always bounces the service (sv restart) and V(killed) always bounces the service (sv force-stop). - - V(reloaded) always sends a HUP (sv reload). - - V(once) runs a normally downed sv once (sv once), not really an idempotent operation. + - V(started)/V(stopped) are idempotent actions that will not run commands unless necessary. V(restarted) will always + bounce the service (sv restart) and V(killed) will always bounce the service (sv force-stop). V(reloaded) will send + a HUP (sv reload). V(once) will run a normally downed sv once (sv once), not really an idempotent operation. type: str choices: [killed, once, reloaded, restarted, started, stopped] enabled: diff --git a/plugins/modules/say.py b/plugins/modules/say.py index eff582f125..2dc359083d 100644 --- a/plugins/modules/say.py +++ b/plugins/modules/say.py @@ -17,8 +17,7 @@ description: notes: - In 2.5, this module has been renamed from C(osx_say) to M(community.general.say). - If you like this module, you may also be interested in the osx_say callback plugin. - - A list of available voices, with language, can be found by running C(say -v ?) on a OSX host and C(espeak --voices) on - a Linux host. + - A list of available voices, with language, can be found by running C(say -v ?) on a OSX host and C(espeak --voices) on a Linux host. extends_documentation_fragment: - community.general.attributes attributes: @@ -67,7 +66,7 @@ def main(): module = AnsibleModule( argument_spec=dict( msg=dict(required=True), - voice=dict(), + voice=dict(required=False), ), supports_check_mode=True ) diff --git a/plugins/modules/scaleway_compute.py b/plugins/modules/scaleway_compute.py index f3653cd3b6..c61030bede 100644 --- a/plugins/modules/scaleway_compute.py +++ b/plugins/modules/scaleway_compute.py @@ -133,7 +133,7 @@ options: type: str description: - Security group unique identifier. - - If no value provided, the default security group or current security group is used. + - If no value provided, the default security group or current security group will be used. required: false """ diff --git a/plugins/modules/scaleway_container.py b/plugins/modules/scaleway_container.py index 8351660fd6..dc4df1c1d5 100644 --- a/plugins/modules/scaleway_container.py +++ b/plugins/modules/scaleway_container.py @@ -89,7 +89,7 @@ options: secret_environment_variables: description: - Secret environment variables of the container namespace. - - Updating those values does not output a C(changed) state in Ansible. + - Updating those values will not output a C(changed) state in Ansible. - Injected in container at runtime. type: dict default: {} @@ -125,7 +125,7 @@ options: max_concurrency: description: - Maximum number of connections per container. - - This parameter is used to trigger autoscaling. + - This parameter will be used to trigger autoscaling. type: int protocol: diff --git a/plugins/modules/scaleway_container_namespace.py b/plugins/modules/scaleway_container_namespace.py index 781c9ffc25..802a491321 100644 --- a/plugins/modules/scaleway_container_namespace.py +++ b/plugins/modules/scaleway_container_namespace.py @@ -79,7 +79,7 @@ options: secret_environment_variables: description: - Secret environment variables of the container namespace. - - Updating those values does not output a C(changed) state in Ansible. + - Updating those values will not output a C(changed) state in Ansible. - Injected in containers at runtime. type: dict default: {} diff --git a/plugins/modules/scaleway_container_registry.py b/plugins/modules/scaleway_container_registry.py index 4e352c5b9e..132dfe8bb6 100644 --- a/plugins/modules/scaleway_container_registry.py +++ b/plugins/modules/scaleway_container_registry.py @@ -71,7 +71,7 @@ options: type: str description: - Default visibility policy. - - Everyone can pull images from a V(public) registry. + - Everyone will be able to pull images from a V(public) registry. choices: - public - private diff --git a/plugins/modules/scaleway_database_backup.py b/plugins/modules/scaleway_database_backup.py index 48add5dfc6..d952452daf 100644 --- a/plugins/modules/scaleway_database_backup.py +++ b/plugins/modules/scaleway_database_backup.py @@ -354,8 +354,8 @@ def main(): region=dict(required=True, choices=SCALEWAY_REGIONS), id=dict(), name=dict(type='str'), - database_name=dict(), - instance_id=dict(), + database_name=dict(required=False), + instance_id=dict(required=False), expires_at=dict(), wait=dict(type='bool', default=False), wait_timeout=dict(type='int', default=300), diff --git a/plugins/modules/scaleway_function.py b/plugins/modules/scaleway_function.py index 4bc7c42688..e2142dd1f2 100644 --- a/plugins/modules/scaleway_function.py +++ b/plugins/modules/scaleway_function.py @@ -89,7 +89,7 @@ options: secret_environment_variables: description: - Secret environment variables of the function. - - Updating those values does not output a C(changed) state in Ansible. + - Updating those values will not output a C(changed) state in Ansible. - Injected in function at runtime. type: dict default: {} diff --git a/plugins/modules/scaleway_function_namespace.py b/plugins/modules/scaleway_function_namespace.py index e5e00bf681..d43b42bc7f 100644 --- a/plugins/modules/scaleway_function_namespace.py +++ b/plugins/modules/scaleway_function_namespace.py @@ -79,7 +79,7 @@ options: secret_environment_variables: description: - Secret environment variables of the function namespace. - - Updating those values does not output a C(changed) state in Ansible. + - Updating those values will not output a C(changed) state in Ansible. - Injected in functions at runtime. type: dict default: {} diff --git a/plugins/modules/scaleway_image_info.py b/plugins/modules/scaleway_image_info.py index 0b2fe0476d..44474218db 100644 --- a/plugins/modules/scaleway_image_info.py +++ b/plugins/modules/scaleway_image_info.py @@ -57,7 +57,7 @@ scaleway_image_info: type: list elements: dict sample: - [ + "scaleway_image_info": [ { "arch": "x86_64", "creation_date": "2018-07-17T16:18:49.276456+00:00", diff --git a/plugins/modules/scaleway_ip_info.py b/plugins/modules/scaleway_ip_info.py index 0812746619..8b2a78449e 100644 --- a/plugins/modules/scaleway_ip_info.py +++ b/plugins/modules/scaleway_ip_info.py @@ -52,12 +52,12 @@ RETURN = r""" scaleway_ip_info: description: - Response from Scaleway API. - - For more details please refer to U(https://developers.scaleway.com/en/products/instance/api/). + - 'For more details please refer to U(https://developers.scaleway.com/en/products/instance/api/).' returned: success type: list elements: dict sample: - [ + "scaleway_ip_info": [ { "address": "163.172.170.243", "id": "ea081794-a581-8899-8451-386ddaf0a451", diff --git a/plugins/modules/scaleway_organization_info.py b/plugins/modules/scaleway_organization_info.py index a28b290bbc..0aeabb94fd 100644 --- a/plugins/modules/scaleway_organization_info.py +++ b/plugins/modules/scaleway_organization_info.py @@ -44,7 +44,7 @@ scaleway_organization_info: type: list elements: dict sample: - [ + "scaleway_organization_info": [ { "address_city_name": "Paris", "address_country_code": "FR", diff --git a/plugins/modules/scaleway_security_group_info.py b/plugins/modules/scaleway_security_group_info.py index 4cdb295282..04eb2da0d1 100644 --- a/plugins/modules/scaleway_security_group_info.py +++ b/plugins/modules/scaleway_security_group_info.py @@ -56,7 +56,7 @@ scaleway_security_group_info: type: list elements: dict sample: - [ + "scaleway_security_group_info": [ { "description": "test-ams", "enable_default_security": true, diff --git a/plugins/modules/scaleway_server_info.py b/plugins/modules/scaleway_server_info.py index 327715d2db..8f4cbc6a2c 100644 --- a/plugins/modules/scaleway_server_info.py +++ b/plugins/modules/scaleway_server_info.py @@ -57,7 +57,7 @@ scaleway_server_info: type: list elements: dict sample: - [ + "scaleway_server_info": [ { "arch": "x86_64", "boot_type": "local", diff --git a/plugins/modules/scaleway_snapshot_info.py b/plugins/modules/scaleway_snapshot_info.py index ead1826aa4..ae6c3b532f 100644 --- a/plugins/modules/scaleway_snapshot_info.py +++ b/plugins/modules/scaleway_snapshot_info.py @@ -57,7 +57,7 @@ scaleway_snapshot_info: type: list elements: dict sample: - [ + "scaleway_snapshot_info": [ { "base_volume": { "id": "68386fae-4f55-4fbf-aabb-953036a85872", diff --git a/plugins/modules/scaleway_volume_info.py b/plugins/modules/scaleway_volume_info.py index 8a4986a724..c8e2cd1302 100644 --- a/plugins/modules/scaleway_volume_info.py +++ b/plugins/modules/scaleway_volume_info.py @@ -57,7 +57,7 @@ scaleway_volume_info: type: list elements: dict sample: - [ + "scaleway_volume_info": [ { "creation_date": "2018-08-14T20:56:24.949660+00:00", "export_uri": null, diff --git a/plugins/modules/selinux_permissive.py b/plugins/modules/selinux_permissive.py index c6107309ac..b5c0ee4a61 100644 --- a/plugins/modules/selinux_permissive.py +++ b/plugins/modules/selinux_permissive.py @@ -24,7 +24,7 @@ attributes: options: domain: description: - - The domain that is added or removed from the list of permissive domains. + - The domain that will be added or removed from the list of permissive domains. type: str required: true aliases: [name] diff --git a/plugins/modules/selogin.py b/plugins/modules/selogin.py index 408d9221da..8f1b20c230 100644 --- a/plugins/modules/selogin.py +++ b/plugins/modules/selogin.py @@ -34,8 +34,7 @@ options: type: str aliases: [serange] description: - - MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login mapping defaults to the SELinux user - record range. + - MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login mapping defaults to the SELinux user record range. default: s0 state: type: str diff --git a/plugins/modules/sendgrid.py b/plugins/modules/sendgrid.py index c0e4b239bc..1099f579e1 100644 --- a/plugins/modules/sendgrid.py +++ b/plugins/modules/sendgrid.py @@ -17,8 +17,8 @@ description: notes: - This module is non-idempotent because it sends an email through the external API. It is idempotent only in the case that the module fails. - - Like the other notification modules, this one requires an external dependency to work. In this case, you need an active - SendGrid account. + - Like the other notification modules, this one requires an external dependency to work. In this case, you will need an + active SendGrid account. - In order to use O(api_key), O(cc), O(bcc), O(attachments), O(from_name), O(html_body), and O(headers) you must C(pip install sendgrid). requirements: @@ -82,7 +82,7 @@ options: - The name you want to appear in the from field, for example V(John Doe). html_body: description: - - Whether the body is HTML content that should be rendered. + - Whether the body is html content that should be rendered. type: bool default: false headers: @@ -214,19 +214,19 @@ def post_sendgrid_api(module, username, password, from_address, to_addresses, def main(): module = AnsibleModule( argument_spec=dict( - username=dict(), - password=dict(no_log=True), - api_key=dict(no_log=True), - bcc=dict(type='list', elements='str'), - cc=dict(type='list', elements='str'), - headers=dict(type='dict'), + username=dict(required=False), + password=dict(required=False, no_log=True), + api_key=dict(required=False, no_log=True), + bcc=dict(required=False, type='list', elements='str'), + cc=dict(required=False, type='list', elements='str'), + headers=dict(required=False, type='dict'), from_address=dict(required=True), - from_name=dict(), + from_name=dict(required=False), to_addresses=dict(required=True, type='list', elements='str'), subject=dict(required=True), body=dict(required=True), - html_body=dict(default=False, type='bool'), - attachments=dict(type='list', elements='path') + html_body=dict(required=False, default=False, type='bool'), + attachments=dict(required=False, type='list', elements='path') ), supports_check_mode=True, mutually_exclusive=[ diff --git a/plugins/modules/sensu_check.py b/plugins/modules/sensu_check.py index a4b5771528..2cac434923 100644 --- a/plugins/modules/sensu_check.py +++ b/plugins/modules/sensu_check.py @@ -14,7 +14,7 @@ module: sensu_check short_description: Manage Sensu checks description: - Manage the checks that should be run on a machine by I(Sensu). - - Most options do not have a default and are not added to the check definition unless specified. + - Most options do not have a default and will not be added to the check definition unless specified. - All defaults except O(path), O(state), O(backup) and O(metric) are not managed by this module, they are simply specified for your convenience. deprecated: @@ -45,8 +45,8 @@ options: type: str description: - Path to the JSON file of the check to be added/removed. - - It is created if it does not exist (unless O(state=absent)). - - The parent folders need to exist when O(state=present), otherwise an error is thrown. + - Will be created if it does not exist (unless O(state=absent)). + - The parent folders need to exist when O(state=present), otherwise an error will be thrown. default: /etc/sensu/conf.d/checks.json backup: description: @@ -99,8 +99,7 @@ options: type: list elements: str description: - - Other checks this one depends on. - - If dependencies fail handling of this check is disabled. + - Other checks this check depends on, if dependencies fail handling of this check will be disabled. metric: description: - Whether the check is a metric. diff --git a/plugins/modules/sensu_client.py b/plugins/modules/sensu_client.py index f87621bd6d..955a25f44f 100644 --- a/plugins/modules/sensu_client.py +++ b/plugins/modules/sensu_client.py @@ -14,7 +14,7 @@ author: "David Moreau Simard (@dmsimard)" short_description: Manages Sensu client configuration description: - Manages Sensu client configuration. - - For more information, refer to the L(Sensu documentation, https://sensuapp.org/docs/latest/reference/clients.html). + - 'For more information, refer to the L(Sensu documentation, https://sensuapp.org/docs/latest/reference/clients.html).' deprecated: removed_in: 13.0.0 why: Sensu Core and Sensu Enterprise products have been End of Life since 2019/20. @@ -42,8 +42,8 @@ options: type: str description: - An address to help identify and reach the client. This is only informational, usually an IP address or hostname. - - If not specified it defaults to non-loopback IPv4 address as determined by Ruby C(Socket.ip_address_list) (provided - by Sensu). + - If not specified it defaults to non-loopback IPv4 address as determined by Ruby C(Socket.ip_address_list) (provided by + Sensu). subscriptions: type: list elements: str @@ -158,13 +158,7 @@ config: description: Effective client configuration, when state is present. returned: success type: dict - sample: - { - "name": "client", - "subscriptions": [ - "default" - ] - } + sample: {'name': 'client', 'subscriptions': ['default']} file: description: Path to the client configuration file. returned: success diff --git a/plugins/modules/sensu_handler.py b/plugins/modules/sensu_handler.py index 5b5494bf1c..ff4a77a6ff 100644 --- a/plugins/modules/sensu_handler.py +++ b/plugins/modules/sensu_handler.py @@ -14,7 +14,7 @@ author: "David Moreau Simard (@dmsimard)" short_description: Manages Sensu handler configuration description: - Manages Sensu handler configuration. - - For more information, refer to the L(Sensu documentation, https://sensuapp.org/docs/latest/reference/handlers.html). + - 'For more information, refer to the L(Sensu documentation, https://sensuapp.org/docs/latest/reference/handlers.html).' deprecated: removed_in: 13.0.0 why: Sensu Core and Sensu Enterprise products have been End of Life since 2019/20. @@ -57,7 +57,7 @@ options: type: list elements: str description: - - An array of check result severities the handler handles. + - An array of check result severities the handler will handle. - 'NOTE: event resolution bypasses this filtering.' - "Example: [ 'warning', 'critical', 'unknown' ]." mutator: @@ -155,12 +155,7 @@ config: description: Effective handler configuration, when state is present. returned: success type: dict - sample: - { - "name": "irc", - "type": "pipe", - "command": "/usr/local/bin/notify-irc.sh" - } + sample: {'name': 'irc', 'type': 'pipe', 'command': '/usr/local/bin/notify-irc.sh'} file: description: Path to the handler configuration file. returned: success diff --git a/plugins/modules/sensu_silence.py b/plugins/modules/sensu_silence.py index 91e6f63496..b030dc4e69 100644 --- a/plugins/modules/sensu_silence.py +++ b/plugins/modules/sensu_silence.py @@ -38,10 +38,10 @@ options: expire: type: int description: - - If specified, the silence entry is automatically cleared after this number of seconds. + - If specified, the silence entry will be automatically cleared after this number of seconds. expire_on_resolve: description: - - If specified as true, the silence entry is automatically cleared once the condition it is silencing is resolved. + - If specified as true, the silence entry will be automatically cleared once the condition it is silencing is resolved. type: bool reason: type: str @@ -265,14 +265,14 @@ def create( def main(): module = AnsibleModule( argument_spec=dict( - check=dict(), - creator=dict(), - expire=dict(type='int'), - expire_on_resolve=dict(type='bool'), - reason=dict(), + check=dict(required=False), + creator=dict(required=False), + expire=dict(type='int', required=False), + expire_on_resolve=dict(type='bool', required=False), + reason=dict(required=False), state=dict(default='present', choices=['present', 'absent']), subscription=dict(required=True), - url=dict(default='http://127.0.01:4567'), + url=dict(required=False, default='http://127.0.01:4567'), ), supports_check_mode=True ) diff --git a/plugins/modules/serverless.py b/plugins/modules/serverless.py index 8bba307440..937f7dcdea 100644 --- a/plugins/modules/serverless.py +++ b/plugins/modules/serverless.py @@ -51,7 +51,7 @@ options: deploy: description: - Whether or not to deploy artifacts after building them. - - When this option is V(false) all the functions are built, but no stack update is run to send them out. + - When this option is V(false) all the functions will be built, but no stack update will be run to send them out. - This is mostly useful for generating artifacts to be stored/deployed elsewhere. type: bool default: true diff --git a/plugins/modules/slack.py b/plugins/modules/slack.py index e009320d85..f1c375c31b 100644 --- a/plugins/modules/slack.py +++ b/plugins/modules/slack.py @@ -32,24 +32,23 @@ options: domain: type: str description: - - "When using new format 'Webhook token' and WebAPI tokens: this can be V(slack.com) or V(slack-gov.com) and is ignored - otherwise." + - "When using new format 'Webhook token' and WebAPI tokens: this can be V(slack.com) or V(slack-gov.com) and is ignored otherwise." - "When using old format 'Webhook token': Slack (sub)domain for your environment without protocol. (For example V(example.slack.com).) - in Ansible 1.8 and beyond, this is deprecated and may be ignored. See token documentation for information." + in Ansible 1.8 and beyond, this is deprecated and may be ignored. See token documentation for information." token: type: str description: - - Slack integration token. This authenticates you to the Slack service. Make sure to use the correct type of token, + - Slack integration token. This authenticates you to the slack service. Make sure to use the correct type of token, depending on what method you use. - 'Webhook token: Prior to Ansible 1.8, a token looked like V(3Ffe373sfhRE6y42Fg3rvf4GlK). In Ansible 1.8 and above, - Ansible adapts to the new Slack API where tokens look like V(G922VJP24/D921DW937/3Ffe373sfhRE6y42Fg3rvf4GlK). If tokens - are in the new format then Slack ignores any value of domain except V(slack.com) or V(slack-gov.com). If the token - is in the old format the domain is required. Ansible has no control of when Slack is going to remove the old API. - When Slack does that the old format is going to cease working. B(Please keep in mind the tokens are not the API tokens - but are the webhook tokens.) In Slack these are found in the webhook URL which are obtained under the apps and integrations. - The incoming webhooks can be added in that area. In some cases this may be locked by your Slack admin and you must - request access. It is there that the incoming webhooks can be added. The key is on the end of the URL given to you - in that section.' + Ansible adapts to the new slack API where tokens look like V(G922VJP24/D921DW937/3Ffe373sfhRE6y42Fg3rvf4GlK). If tokens + are in the new format then slack will ignore any value of domain except V(slack.com) or V(slack-gov.com). If the token + is in the old format the domain is required. Ansible has no control of when slack will get rid of the old API. When slack + does that the old format will stop working. + ** Please keep in mind the tokens are not the API tokens but are the webhook tokens. In slack these + are found in the webhook URL which are obtained under the apps and integrations. The incoming webhooks can be added + in that area. In some cases this may be locked by your Slack admin and you must request access. It is there that the + incoming webhooks can be added. The key is on the end of the URL given to you in that section.' - "WebAPI token: Slack WebAPI requires a personal, bot or work application token. These tokens start with V(xoxp-), V(xoxb-) or V(xoxa-), for example V(xoxb-1234-56789abcdefghijklmnop). WebAPI token is required if you intend to receive thread_id. See Slack's documentation (U(https://api.slack.com/docs/token-types)) for more information." @@ -59,8 +58,7 @@ options: description: - Message to send. Note that the module does not handle escaping characters. Plain-text angle brackets and ampersands should be converted to HTML entities (for example C(&) to C(&)) before sending. See Slack's documentation - (U(https://api.slack.com/docs/message-formatting)) - for more. + (U(https://api.slack.com/docs/message-formatting)) for more. channel: type: str description: @@ -92,7 +90,7 @@ options: type: str description: - Emoji for the message sender. See Slack documentation for options. - - If O(icon_emoji) is set, O(icon_url) is not used. + - If O(icon_emoji) is set, O(icon_url) will not be used. link_names: type: int description: @@ -110,8 +108,8 @@ options: - 'none' validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed - certificates. + - If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using + self-signed certificates. type: bool default: true color: @@ -141,12 +139,11 @@ options: - Setting for automatically prepending a V(#) symbol on the passed in O(channel). - The V(auto) method prepends a V(#) unless O(channel) starts with one of V(#), V(@), V(C0), V(GF), V(G0), V(CP). These prefixes only cover a small set of the prefixes that should not have a V(#) prepended. Since an exact condition which - O(channel) values must not have the V(#) prefix is not known, the value V(auto) for this option is deprecated in the - future. It is best to explicitly set O(prepend_hash=always) or O(prepend_hash=never) to obtain the needed behavior. - - The B(current default) is V(auto), which has been B(deprecated) since community.general 10.2.0. It is going to change - to V(never) in community.general 12.0.0. To prevent deprecation warnings you can explicitly set O(prepend_hash) to - the value you want. We suggest to only use V(always) or V(never), but not V(auto), when explicitly setting a value. - # when the default changes in community.general 12.0.0, add deprecation for the `auto` value for 14.0.0 + O(channel) values must not have the V(#) prefix is not known, the value V(auto) for this option will be deprecated + in the future. It is best to explicitly set O(prepend_hash=always) or O(prepend_hash=never) to obtain the needed behavior. + - The B(current default) is V(auto), which has been B(deprecated) since community.general 10.2.0. It will change to + V(never) in community.general 12.0.0. To prevent deprecation warnings you can explicitly set O(prepend_hash) to the + value you want. We suggest to only use V(always) or V(never), but not V(auto), when explicitly setting a value. choices: - 'always' - 'never' diff --git a/plugins/modules/smartos_image_info.py b/plugins/modules/smartos_image_info.py index 89c00f5c26..19ad740b72 100644 --- a/plugins/modules/smartos_image_info.py +++ b/plugins/modules/smartos_image_info.py @@ -47,20 +47,12 @@ EXAMPLES = r""" - name: Print information ansible.builtin.debug: - msg: >- - {{ - result.smartos_images[item]['name'] }}-{{ result.smartos_images[item]['version'] }} - has {{ result.smartos_images[item]['clones'] - }} VM(s) + msg: "{{ result.smartos_images[item]['name'] }}-{{ result.smartos_images[item]['version'] }} has {{ result.smartos_images[item]['clones'] }} VM(s)" with_items: "{{ result.smartos_images.keys() | list }}" - name: Print information ansible.builtin.debug: - msg: >- - {{ - smartos_images[item]['name'] }}-{{ smartos_images[item]['version'] }} - has {{ smartos_images[item]['clones'] - }} VM(s) + msg: "{{ smartos_images[item]['name'] }}-{{ smartos_images[item]['version'] }} has {{ smartos_images[item]['clones'] }} VM(s)" with_items: "{{ smartos_images.keys() | list }}" """ diff --git a/plugins/modules/snap.py b/plugins/modules/snap.py index fd424e0dd9..3ffe9642fa 100644 --- a/plugins/modules/snap.py +++ b/plugins/modules/snap.py @@ -37,8 +37,8 @@ options: state: description: - Desired state of the package. - - When O(state=present) the module uses C(snap install) if the snap is not installed, and C(snap refresh) if it is installed - but from a different channel. + - When O(state=present) the module will use C(snap install) if the snap is not installed, and C(snap refresh) if it + is installed but from a different channel. default: present choices: [absent, present, enabled, disabled] type: str @@ -56,19 +56,19 @@ options: description: - Define which release of a snap is installed and tracked for updates. This option can only be specified if there is a single snap in the task. - - If not passed, the C(snap) command defaults to V(stable). - - If the value passed does not contain the C(track), it defaults to C(latest). For example, if V(edge) is passed, the - module assumes the channel to be V(latest/edge). + - If not passed, the C(snap) command will default to V(stable). + - If the value passed does not contain the C(track), it will default to C(latest). For example, if V(edge) is passed, + the module will assume the channel to be V(latest/edge). - See U(https://snapcraft.io/docs/channels) for more details about snap channels. type: str required: false options: description: - - Set options with pattern C(key=value) or C(snap:key=value). If a snap name is given, the option is applied to that - snap only. If the snap name is omitted, the options are applied to all snaps listed in O(name). Options are only applied - to active snaps. - - Options are only applied when C(state) is set to V(present). This is done after the necessary installation or refresh - (upgrade/downgrade) of all the snaps listed in O(name). + - Set options with pattern C(key=value) or C(snap:key=value). If a snap name is given, the option will be applied to + that snap only. If the snap name is omitted, the options will be applied to all snaps listed in O(name). Options will + only be applied to active snaps. + - Options will only be applied when C(state) is set to V(present). This is done after the necessary installation or + refresh (upgrade/downgrade) of all the snaps listed in O(name). - See U(https://snapcraft.io/docs/configuration-in-snaps) for more details about snap configuration options. required: false type: list diff --git a/plugins/modules/snmp_facts.py b/plugins/modules/snmp_facts.py index 17c7bbd032..a87e1d33a1 100644 --- a/plugins/modules/snmp_facts.py +++ b/plugins/modules/snmp_facts.py @@ -15,7 +15,7 @@ author: - Patrick Ogenstad (@ogenstad) short_description: Retrieve facts for a device using SNMP description: - - Retrieve facts for a device using SNMP, the facts are inserted to the C(ansible_facts) key. + - Retrieve facts for a device using SNMP, the facts will be inserted to the C(ansible_facts) key. requirements: - pysnmp extends_documentation_fragment: diff --git a/plugins/modules/solaris_zone.py b/plugins/modules/solaris_zone.py index 431e0cb31d..31e7919c08 100644 --- a/plugins/modules/solaris_zone.py +++ b/plugins/modules/solaris_zone.py @@ -51,7 +51,7 @@ options: required: true path: description: - - The path where the zone is created. This is required when the zone is created, but not used otherwise. + - The path where the zone will be created. This is required when the zone is created, but not used otherwise. type: str sparse: description: @@ -60,7 +60,7 @@ options: default: false root_password: description: - - The password hash for the root account. If not specified, the zone's root account does not have a password. + - The password hash for the root account. If not specified, the zone's root account will not have a password. type: str config: description: diff --git a/plugins/modules/sorcery.py b/plugins/modules/sorcery.py index de50741185..fff3f55e07 100644 --- a/plugins/modules/sorcery.py +++ b/plugins/modules/sorcery.py @@ -34,7 +34,7 @@ options: description: - Name of the spell or grimoire. - Multiple names can be given, separated by commas. - - Special value V(*) in conjunction with states V(latest) or V(rebuild) updates or rebuilds the whole system respectively. + - Special value V(*) in conjunction with states V(latest) or V(rebuild) will update or rebuild the whole system respectively. - The alias O(grimoire) was added in community.general 7.3.0. aliases: ["spell", "grimoire"] type: list @@ -44,7 +44,7 @@ options: description: - Repository location. - If specified, O(name) represents grimoire(s) instead of spell(s). - - Special value V(*) pulls grimoire from the official location. + - Special value V(*) will pull grimoire from the official location. - Only single item in O(name) in conjunction with V(*) can be used. - O(state=absent) must be used with a special value V(*). type: str @@ -697,11 +697,11 @@ def manage_spells(module): def main(): module = AnsibleModule( argument_spec=dict( - name=dict(aliases=['spell', 'grimoire'], type='list', elements='str'), - repository=dict(type='str'), + name=dict(default=None, aliases=['spell', 'grimoire'], type='list', elements='str'), + repository=dict(default=None, type='str'), state=dict(default='present', choices=['present', 'latest', 'absent', 'cast', 'dispelled', 'rebuild']), - depends=dict(), + depends=dict(default=None), update=dict(default=False, type='bool'), update_cache=dict(default=False, aliases=['update_codex'], type='bool'), cache_valid_time=dict(default=0, type='int') diff --git a/plugins/modules/spectrum_device.py b/plugins/modules/spectrum_device.py index 54cddbffb0..8bf4aa41b5 100644 --- a/plugins/modules/spectrum_device.py +++ b/plugins/modules/spectrum_device.py @@ -30,7 +30,7 @@ options: required: true description: - IP address of the device. - - If a hostname is given, it is resolved to the IP address. + - If a hostname is given, it will be resolved to the IP address. community: type: str description: @@ -69,13 +69,13 @@ options: - Oneclick user password. use_proxy: description: - - If V(false), it does not use a proxy, even if one is defined in an environment variable on the target hosts. + - If V(false), it will not use a proxy, even if one is defined in an environment variable on the target hosts. default: true type: bool validate_certs: description: - - If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed - certificates. + - If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using + self-signed certificates. default: true type: bool agentport: @@ -85,8 +85,8 @@ options: - UDP port used for SNMP discovery. default: 161 notes: - - The devices are created inside the I(Universe) container of the specified landscape. - - All the operations are performed only on the specified landscape. + - The devices will be created inside the I(Universe) container of the specified landscape. + - All the operations will be performed only on the specified landscape. """ EXAMPLES = r""" @@ -119,12 +119,7 @@ device: description: Device data when O(state=present). returned: success type: dict - sample: - { - "model_handle": "0x1007ab", - "landscape": "0x100000", - "address": "10.10.5.1" - } + sample: {'model_handle': '0x1007ab', 'landscape': '0x100000', 'address': '10.10.5.1'} """ from socket import gethostbyname, gaierror diff --git a/plugins/modules/spectrum_model_attrs.py b/plugins/modules/spectrum_model_attrs.py index 53cae10b74..9c9fba4deb 100644 --- a/plugins/modules/spectrum_model_attrs.py +++ b/plugins/modules/spectrum_model_attrs.py @@ -47,7 +47,7 @@ options: aliases: [password] use_proxy: description: - - If V(false), it does not use a proxy, even if one is defined in an environment variable on the target hosts. + - If V(false), it will not use a proxy, even if one is defined in an environment variable on the target hosts. default: true required: false type: bool @@ -99,7 +99,7 @@ options: - C(sysName) (C(0x10b5b)); - C(Vendor_Name) (C(0x11570)); - C(Description) (C(0x230017)). - - Hex IDs are the direct identifiers in Spectrum and always work. + - Hex IDs are the direct identifiers in Spectrum and will always work. - 'To lookup hex IDs go to the UI: Locator -> Devices -> By Model Name -> -> Attributes tab.' type: str required: true @@ -123,9 +123,7 @@ EXAMPLES = r""" - name: "isManaged" value: "false" - name: "Notes" - value: >- - MM set on {{ ansible_date_time.iso8601 }} via CO {{ CO }} - by {{ tower_user_name | default(ansible_user_id) }} + value: "MM set on {{ ansible_date_time.iso8601 }} via CO {{ CO }} by {{ tower_user_name | default(ansible_user_id) }}" delegate_to: localhost register: spectrum_model_attrs_status """ diff --git a/plugins/modules/spotinst_aws_elastigroup.py b/plugins/modules/spotinst_aws_elastigroup.py index 759a094626..9aa14afd8d 100644 --- a/plugins/modules/spotinst_aws_elastigroup.py +++ b/plugins/modules/spotinst_aws_elastigroup.py @@ -11,9 +11,9 @@ short_description: Create, update or delete Spotinst AWS Elastigroups author: Spotinst (@talzur) description: - Can create, update, or delete Spotinst AWS Elastigroups Launch configuration is part of the elastigroup configuration, - so no additional modules are necessary for handling the launch configuration. You must have a credentials file in this - location - C($HOME/.spotinst/credentials). The credentials file must contain a row that looks like this C(token = ). + so no additional modules are necessary for handling the launch configuration. You will have to have a credentials file + in this location - C($HOME/.spotinst/credentials). The credentials file must contain a row that looks like this C(token + = ). - Full documentation available at U(https://help.spotinst.com/hc/en-us/articles/115003530285-Ansible-). requirements: - spotinst_sdk >= 1.0.38 @@ -41,8 +41,8 @@ options: token: description: - A Personal API Access Token issued by Spotinst. - - When not specified, the module tries to obtain it, in that order, from environment variable E(SPOTINST_TOKEN), or - from the credentials path. + - 'When not specified, the module will try to obtain it, in that order, from: environment variable E(SPOTINST_TOKEN), + or from the credentials path.' type: str availability_vs_cost: @@ -82,7 +82,8 @@ options: ebs_optimized: description: - - Enable EBS optimization for supported instances which are not enabled by default. Note - additional charges are applied. + - Enable EBS optimization for supported instances which are not enabled by default.; Note - additional charges will + be applied. type: bool ebs_volume_pool: @@ -105,7 +106,7 @@ options: fallback_to_od: description: - - In case of no spots available, Elastigroup launches an On-demand instance instead. + - In case of no spots available, Elastigroup will launch an On-demand instance instead. type: bool health_check_grace_period: @@ -139,15 +140,15 @@ options: id: description: - - The group ID if it already exists and you want to update, or delete it. This does not work unless the O(uniqueness_by) - field is set to ID. When this is set, and the O(uniqueness_by) field is set, the group is either updated or deleted, + - The group ID if it already exists and you want to update, or delete it. This will not work unless the uniqueness_by + field is set to ID. When this is set, and the uniqueness_by field is set, the group will either be updated or deleted, but not created. type: str image_id: description: - - The image ID used to launch the instance.; In case of conflict between Instance type and image type, an error is be - returned. + - The image ID used to launch the instance.; In case of conflict between Instance type and image type, an error will + be returned. required: true type: str @@ -213,13 +214,13 @@ options: on_demand_count: description: - Required if risk is not set. - - Number of on demand instances to launch. All other instances are spot instances.; Either set this parameter or the - O(risk) parameter. + - Number of on demand instances to launch. All other instances will be spot instances.; Either set this parameter or + the risk parameter. type: int on_demand_instance_type: description: - - On-demand instance type that is provisioned. + - On-demand instance type that will be provisioned. type: str opsworks: @@ -277,7 +278,7 @@ options: security_group_ids: description: - One or more security group IDs. - - In case of update it overrides the existing Security Group with the new given array. + - In case of update it will override the existing Security Group with the new given array. required: true type: list elements: str @@ -301,7 +302,7 @@ options: spot_instance_types: description: - - Spot instance type that is provisioned. + - Spot instance type that will be provisioned. required: true type: list elements: str @@ -387,7 +388,7 @@ options: - name description: - If your group names are not unique, you may use this feature to update or delete a specific group. Whenever this property - is set, you must set a group_id in order to update or delete a group, otherwise a group is created. + is set, you must set a group_id in order to update or delete a group, otherwise a group will be created. default: name type: str @@ -398,7 +399,7 @@ options: utilize_reserved_instances: description: - - In case of any available Reserved Instances, Elastigroup utilizes your reservations before purchasing Spot instances. + - In case of any available Reserved Instances, Elastigroup will utilize your reservations before purchasing Spot instances. type: bool wait_for_instances: diff --git a/plugins/modules/ss_3par_cpg.py b/plugins/modules/ss_3par_cpg.py index 0869d67d84..c9c9b4bd90 100644 --- a/plugins/modules/ss_3par_cpg.py +++ b/plugins/modules/ss_3par_cpg.py @@ -38,7 +38,7 @@ options: type: str domain: description: - - Specifies the name of the domain in which the object resides. + - Specifies the name of the domain in which the object will reside. type: str growth_increment: description: @@ -46,12 +46,11 @@ options: type: str growth_limit: description: - - Specifies that the autogrow operation is limited to the specified storage amount that sets the growth limit (in MiB, - GiB or TiB). + - Specifies that the autogrow operation is limited to the specified storage amount that sets the growth limit(in MiB, GiB or TiB). type: str growth_warning: description: - - Specifies that the threshold (in MiB, GiB or TiB) of used logical disk space when exceeded results in a warning alert. + - Specifies that the threshold(in MiB, GiB or TiB) of used logical disk space when exceeded results in a warning alert. type: str high_availability: choices: diff --git a/plugins/modules/ssh_config.py b/plugins/modules/ssh_config.py index 6a83095f37..b4d6ed16bf 100644 --- a/plugins/modules/ssh_config.py +++ b/plugins/modules/ssh_config.py @@ -49,7 +49,7 @@ options: host: description: - The endpoint this configuration is valid for. - - It can be an actual address on the internet or an alias that connects to the value of O(hostname). + - Can be an actual address on the internet or an alias that will connect to the value of O(hostname). required: true type: str hostname: @@ -66,7 +66,7 @@ options: type: str identity_file: description: - - The path to an identity file (SSH private key) that is used when connecting to this host. + - The path to an identity file (SSH private key) that will be used when connecting to this host. - File need to exist and have mode V(0600) to be valid. type: path identities_only: @@ -141,7 +141,7 @@ options: version_added: 10.1.0 other_options: description: - - Allows specifying arbitrary SSH config entry options using a dictionary. + - Provides the option to specify arbitrary SSH config entry options via a dictionary. - The key names must be lower case. Keys with upper case values are rejected. - The values must be strings. Other values are rejected. type: dict @@ -198,27 +198,22 @@ hosts_change_diff: description: A list of host diff changes. returned: on change type: list - sample: - [ - { - "example.com": { - "new": { - "hostname": "github.com", - "identityfile": [ - "/tmp/test_ssh_config/fake_id_rsa" - ], - "port": "2224" - }, - "old": { - "hostname": "github.com", - "identityfile": [ - "/tmp/test_ssh_config/fake_id_rsa" - ], - "port": "2224" - } + sample: [ + { + "example.com": { + "new": { + "hostname": "github.com", + "identityfile": ["/tmp/test_ssh_config/fake_id_rsa"], + "port": "2224" + }, + "old": { + "hostname": "github.com", + "identityfile": ["/tmp/test_ssh_config/fake_id_rsa"], + "port": "2224" } } - ] + } + ] """ import os @@ -390,7 +385,7 @@ class SSHConfig(object): def main(): module = AnsibleModule( argument_spec=dict( - group=dict(type='str'), + group=dict(default=None, type='str'), host=dict(type='str', required=True), hostname=dict(type='str'), host_key_algorithms=dict(type='str', no_log=False), @@ -398,20 +393,24 @@ def main(): identities_only=dict(type='bool'), other_options=dict(type='dict'), port=dict(type='str'), - proxycommand=dict(type='str'), - proxyjump=dict(type='str'), + proxycommand=dict(type='str', default=None), + proxyjump=dict(type='str', default=None), forward_agent=dict(type='bool'), add_keys_to_agent=dict(type='bool'), remote_user=dict(type='str'), - ssh_config_file=dict(type='path'), + ssh_config_file=dict(default=None, type='path'), state=dict(type='str', default='present', choices=['present', 'absent']), - strict_host_key_checking=dict(type='str', choices=['yes', 'no', 'ask', 'accept-new']), - controlmaster=dict(type='str', choices=['yes', 'no', 'ask', 'auto', 'autoask']), - controlpath=dict(type='str'), - controlpersist=dict(type='str'), + strict_host_key_checking=dict( + type='str', + default=None, + choices=['yes', 'no', 'ask', 'accept-new'], + ), + controlmaster=dict(type='str', default=None, choices=['yes', 'no', 'ask', 'auto', 'autoask']), + controlpath=dict(type='str', default=None), + controlpersist=dict(type='str', default=None), dynamicforward=dict(type='str'), - user=dict(type='str'), - user_known_hosts_file=dict(type='str'), + user=dict(default=None, type='str'), + user_known_hosts_file=dict(type='str', default=None), ), supports_check_mode=True, mutually_exclusive=[ diff --git a/plugins/modules/stacki_host.py b/plugins/modules/stacki_host.py index 095e0b7256..bfa4cccff5 100644 --- a/plugins/modules/stacki_host.py +++ b/plugins/modules/stacki_host.py @@ -119,6 +119,25 @@ EXAMPLES = r""" state: absent """ +RETURN = r""" +changed: + description: Response to whether or not the API call completed successfully. + returned: always + type: bool + sample: true + +stdout: + description: The set of responses from the commands. + returned: always + type: list + sample: ['...', '...'] + +stdout_lines: + description: The value of stdout split into a list. + returned: always + type: list + sample: [['...', '...'], ['...'], ['...']] +""" import json diff --git a/plugins/modules/statusio_maintenance.py b/plugins/modules/statusio_maintenance.py index c823a286c5..9928267bde 100644 --- a/plugins/modules/statusio_maintenance.py +++ b/plugins/modules/statusio_maintenance.py @@ -111,7 +111,7 @@ options: minutes: type: int description: - - The duration of the maintenance window (starting from playbook runtime). + - The length of time in UTC that the maintenance will run (starting from playbook runtime). default: 10 start_date: type: str @@ -344,22 +344,30 @@ def main(): api_id=dict(required=True), api_key=dict(required=True, no_log=True), statuspage=dict(required=True), - state=dict(default='present', choices=['present', 'absent']), - url=dict(default='https://api.status.io'), - components=dict(type='list', elements='str', aliases=['component']), - containers=dict(type='list', elements='str', aliases=['container']), - all_infrastructure_affected=dict(type='bool', default=False), - automation=dict(type='bool', default=False), - title=dict(default='A new maintenance window'), - desc=dict(default='Created by Ansible'), - minutes=dict(type='int', default=10), - maintenance_notify_now=dict(type='bool', default=False), - maintenance_notify_72_hr=dict(type='bool', default=False), - maintenance_notify_24_hr=dict(type='bool', default=False), - maintenance_notify_1_hr=dict(type='bool', default=False), - maintenance_id=dict(), - start_date=dict(), - start_time=dict() + state=dict(required=False, default='present', + choices=['present', 'absent']), + url=dict(default='https://api.status.io', required=False), + components=dict(type='list', elements='str', required=False, default=None, + aliases=['component']), + containers=dict(type='list', elements='str', required=False, default=None, + aliases=['container']), + all_infrastructure_affected=dict(type='bool', default=False, + required=False), + automation=dict(type='bool', default=False, required=False), + title=dict(required=False, default='A new maintenance window'), + desc=dict(required=False, default='Created by Ansible'), + minutes=dict(type='int', required=False, default=10), + maintenance_notify_now=dict(type='bool', default=False, + required=False), + maintenance_notify_72_hr=dict(type='bool', default=False, + required=False), + maintenance_notify_24_hr=dict(type='bool', default=False, + required=False), + maintenance_notify_1_hr=dict(type='bool', default=False, + required=False), + maintenance_id=dict(required=False, default=None), + start_date=dict(default=None, required=False), + start_time=dict(default=None, required=False) ), supports_check_mode=True, ) diff --git a/plugins/modules/sudoers.py b/plugins/modules/sudoers.py index f353859a98..ac1ff91ff5 100644 --- a/plugins/modules/sudoers.py +++ b/plugins/modules/sudoers.py @@ -42,7 +42,7 @@ options: required: true description: - The name of the sudoers rule. - - This is used for the filename for the sudoers file managed by this rule. + - This will be used for the filename for the sudoers file managed by this rule. type: str noexec: description: @@ -52,7 +52,7 @@ options: version_added: 8.4.0 nopassword: description: - - Whether a password is not required when command is run with sudo. + - Whether a password is required when command is run with sudo. default: true type: bool setenv: @@ -69,12 +69,12 @@ options: version_added: 6.2.0 runas: description: - - Specify the target user the command(s) runs as. + - Specify the target user the command(s) will run as. type: str version_added: 4.7.0 sudoers_path: description: - - The path which sudoers config files are managed in. + - The path which sudoers config files will be managed in. default: /etc/sudoers.d type: str state: @@ -92,9 +92,9 @@ options: type: str validation: description: - - If V(absent), the sudoers rule is added without validation. - - If V(detect) and C(visudo) is available, then the sudoers rule is validated by C(visudo). - - If V(required), C(visudo) must be available to validate the sudoers rule. + - If V(absent), the sudoers rule will be added without validation. + - If V(detect) and visudo is available, then the sudoers rule will be validated by visudo. + - If V(required), visudo must be available to validate the sudoers rule. type: str default: detect choices: [absent, detect, required] diff --git a/plugins/modules/supervisorctl.py b/plugins/modules/supervisorctl.py index c2ceb1a52b..7df1674fea 100644 --- a/plugins/modules/supervisorctl.py +++ b/plugins/modules/supervisorctl.py @@ -26,8 +26,8 @@ options: type: str description: - The name of the supervisord program or group to manage. - - The name is taken as group name when it ends with a colon V(:). - - If O(name=all), all programs and program groups are managed. + - The name will be taken as group name when it ends with a colon V(:). + - If O(name=all), all programs and program groups will be managed. required: true config: type: path @@ -67,11 +67,12 @@ options: description: - Path to C(supervisorctl) executable. notes: - - When O(state=present), the module calls C(supervisorctl reread) then C(supervisorctl add) if the program/group does not - exist. - - When O(state=restarted), the module calls C(supervisorctl update) then calls C(supervisorctl restart). - - When O(state=absent), the module calls C(supervisorctl reread) then C(supervisorctl remove) to remove the target program/group. - If the program/group is still running, the action fails. If you want to stop the program/group before removing, use O(stop_before_removing=true). + - When O(state=present), the module will call C(supervisorctl reread) then C(supervisorctl add) if the program/group does + not exist. + - When O(state=restarted), the module will call C(supervisorctl update) then call C(supervisorctl restart). + - When O(state=absent), the module will call C(supervisorctl reread) then C(supervisorctl remove) to remove the target program/group. + If the program/group is still running, the action will fail. If you want to stop the program/group before removing, use + O(stop_before_removing=true). requirements: ["supervisorctl"] author: - "Matt Wright (@mattupstate)" diff --git a/plugins/modules/svc.py b/plugins/modules/svc.py index 4a6e21ef5f..42b6bcbeb9 100644 --- a/plugins/modules/svc.py +++ b/plugins/modules/svc.py @@ -30,10 +30,10 @@ options: required: true state: description: - - V(started)/V(stopped) are idempotent actions that do not run commands unless necessary. - - V(restarted) always bounces the svc (svc -t) and V(killed) always bounces the svc (svc -k). - - V(reloaded) sends a sigusr1 (svc -1). - - V(once) runs a normally downed svc once (svc -o), not really an idempotent operation. + - V(started)/V(stopped) are idempotent actions that will not run commands unless necessary. + - V(restarted) will always bounce the svc (svc -t) and V(killed) will always bounce the svc (svc -k). + - V(reloaded) will send a sigusr1 (svc -1). + - V(once) will run a normally downed svc once (svc -o), not really an idempotent operation. type: str choices: [killed, once, reloaded, restarted, started, stopped] downed: diff --git a/plugins/modules/svr4pkg.py b/plugins/modules/svr4pkg.py index 76d65c8f43..34aa599e01 100644 --- a/plugins/modules/svr4pkg.py +++ b/plugins/modules/svr4pkg.py @@ -16,7 +16,7 @@ short_description: Manage Solaris SVR4 packages description: - Manages SVR4 packages on Solaris 10 and 11. - These were the native packages on Solaris <= 10 and are available as a legacy feature in Solaris 11. - - Note that this is a very basic packaging system. It does not enforce dependencies on install or remove. + - Note that this is a very basic packaging system. It will not enforce dependencies on install or remove. author: "Boyd Adamson (@brontitall)" extends_documentation_fragment: - community.general.attributes @@ -192,10 +192,10 @@ def main(): argument_spec=dict( name=dict(required=True), state=dict(required=True, choices=['present', 'absent']), - src=dict(), - proxy=dict(), - response_file=dict(), - zone=dict(default='all', choices=['current', 'all']), + src=dict(default=None), + proxy=dict(default=None), + response_file=dict(default=None), + zone=dict(required=False, default='all', choices=['current', 'all']), category=dict(default=False, type='bool') ), supports_check_mode=True diff --git a/plugins/modules/swdepot.py b/plugins/modules/swdepot.py index 69ed726aa0..628c63f810 100644 --- a/plugins/modules/swdepot.py +++ b/plugins/modules/swdepot.py @@ -16,7 +16,7 @@ DOCUMENTATION = r""" module: swdepot short_description: Manage packages with swdepot package manager (HP-UX) description: - - Installs, upgrades, and removes packages with C(swdepot) package manager (HP-UX). + - Will install, upgrade and remove packages with swdepot package manager (HP-UX). notes: [] author: "Raul Melo (@melodous)" extends_documentation_fragment: @@ -134,7 +134,7 @@ def main(): argument_spec=dict( name=dict(aliases=['pkg'], required=True), state=dict(choices=['present', 'absent', 'latest'], required=True), - depot=dict() + depot=dict(default=None, required=False) ), supports_check_mode=True ) diff --git a/plugins/modules/swupd.py b/plugins/modules/swupd.py index c01904821c..5b5dbbc48a 100644 --- a/plugins/modules/swupd.py +++ b/plugins/modules/swupd.py @@ -96,6 +96,16 @@ EXAMPLES = r""" manifest: 12920 """ +RETURN = r""" +stdout: + description: C(stdout) of C(swupd). + returned: always + type: str +stderr: + description: C(stderr) of C(swupd). + returned: always + type: str +""" import os from ansible.module_utils.basic import AnsibleModule diff --git a/plugins/modules/syslogger.py b/plugins/modules/syslogger.py index 7f7dfabd38..dbe4513d34 100644 --- a/plugins/modules/syslogger.py +++ b/plugins/modules/syslogger.py @@ -167,17 +167,17 @@ def main(): module_args = dict( ident=dict(type='str', default='ansible_syslogger'), msg=dict(type='str', required=True), - priority=dict(type='str', + priority=dict(type='str', required=False, choices=["emerg", "alert", "crit", "err", "warning", "notice", "info", "debug"], default='info'), - facility=dict(type='str', + facility=dict(type='str', required=False, choices=["kern", "user", "mail", "daemon", "auth", "lpr", "news", "uucp", "cron", "syslog", "local0", "local1", "local2", "local3", "local4", "local5", "local6", "local7"], default='daemon'), - log_pid=dict(type='bool', default=False) + log_pid=dict(type='bool', required=False, default=False) ) module = AnsibleModule( diff --git a/plugins/modules/syspatch.py b/plugins/modules/syspatch.py index f46671fa74..3cedc220f7 100644 --- a/plugins/modules/syspatch.py +++ b/plugins/modules/syspatch.py @@ -59,6 +59,20 @@ EXAMPLES = r""" """ RETURN = r""" +rc: + description: The command return code (0 means success). + returned: always + type: int +stdout: + description: C(syspatch) standard output. + returned: always + type: str + sample: "001_rip6cksum" +stderr: + description: C(syspatch) standard error. + returned: always + type: str + sample: "syspatch: need root privileges" reboot_needed: description: Whether or not a reboot is required after an update. returned: always @@ -89,6 +103,7 @@ def syspatch_run(module): cmd = module.get_bin_path('syspatch', True) changed = False reboot_needed = False + warnings = [] # Set safe defaults for run_flag and check_flag run_flag = ['-c'] @@ -130,11 +145,11 @@ def syspatch_run(module): # Kernel update applied reboot_needed = True elif out.lower().find('syspatch updated itself') >= 0: - module.warn('Syspatch was updated. Please run syspatch again.') + warnings.append('Syspatch was updated. Please run syspatch again.') # If no stdout, then warn user if len(out) == 0: - module.warn('syspatch had suggested changes, but stdout was empty.') + warnings.append('syspatch had suggested changes, but stdout was empty.') changed = True else: @@ -146,6 +161,7 @@ def syspatch_run(module): rc=rc, stderr=err, stdout=out, + warnings=warnings ) diff --git a/plugins/modules/sysrc.py b/plugins/modules/sysrc.py index a3e24830a0..dad379d1c0 100644 --- a/plugins/modules/sysrc.py +++ b/plugins/modules/sysrc.py @@ -7,7 +7,6 @@ # SPDX-License-Identifier: GPL-3.0-or-later from __future__ import absolute_import, division, print_function - __metaclass__ = type DOCUMENTATION = r""" @@ -95,122 +94,165 @@ EXAMPLES = r""" jail: testjail """ +RETURN = r""" +changed: + description: Return changed for sysrc actions. + returned: always + type: bool + sample: true +""" -from ansible_collections.community.general.plugins.module_utils.module_helper import StateModuleHelper - -import os +from ansible.module_utils.basic import AnsibleModule import re -class Sysrc(StateModuleHelper): - module = dict( - argument_spec=dict( - name=dict(type='str', required=True), - value=dict(type='str'), - state=dict(type='str', default='present', choices=['absent', 'present', 'value_present', 'value_absent']), - path=dict(type='str', default='/etc/rc.conf'), - delim=dict(type='str', default=' '), - jail=dict(type='str') - ), - supports_check_mode=True - ) - output_params = ('value',) - use_old_vardict = False +class Sysrc(object): + def __init__(self, module, name, value, path, delim, jail): + self.module = module + self.name = name + self.changed = False + self.value = value + self.path = path + self.delim = delim + self.jail = jail + self.sysrc = module.get_bin_path('sysrc', True) - def __init_module__(self): - # OID style names are not supported - if not re.match(r'^\w+$', self.vars.name, re.ASCII): - self.module.fail_json(msg="Name may only contain alpha-numeric and underscore characters") + def has_unknown_variable(self, out, err): + # newer versions of sysrc use stderr instead of stdout + return err.find("unknown variable") > 0 or out.find("unknown variable") > 0 - self.sysrc = self.module.get_bin_path('sysrc', True) + def exists(self): + """ + Tests whether the name is in the file. If parameter value is defined, + then tests whether name=value is in the file. These tests are necessary + because sysrc doesn't use exit codes. Instead, let sysrc read the + file's content and create a dictionary comprising the configuration. + Use this dictionary to preform the tests. + """ + (rc, out, err) = self.run_sysrc('-e', '-a') + conf = dict([i.split('=', 1) for i in out.splitlines()]) + if self.value is None: + return self.name in conf + else: + return self.name in conf and conf[self.name] == '"%s"' % self.value - def _contains(self): - value = self._get() - if value is None: - return False, None + def contains(self): + (rc, out, err) = self.run_sysrc('-n', self.name) + if self.has_unknown_variable(out, err): + return False - value = value.split(self.vars.delim) + return self.value in out.strip().split(self.delim) - return self.vars.value in value, value + def present(self): + if self.exists(): + return - def _get(self): - if not os.path.exists(self.vars.path): - return None + if not self.module.check_mode: + (rc, out, err) = self.run_sysrc("%s=%s" % (self.name, self.value)) - (rc, out, err) = self._sysrc('-v', '-n', self.vars.name) - if "unknown variable" in err or "unknown variable" in out: - # Prior to FreeBSD 11.1 sysrc would write "unknown variable" to stdout and not stderr - # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229806 - return None + self.changed = True - if out.startswith(self.vars.path): - return out.split(':', 1)[1].strip() + def absent(self): + if not self.exists(): + return - return None + # inversed since we still need to mark as changed + if not self.module.check_mode: + (rc, out, err) = self.run_sysrc('-x', self.name) + if self.has_unknown_variable(out, err): + return - def _modify(self, op, changed): - (rc, out, err) = self._sysrc("%s%s=%s%s" % (self.vars.name, op, self.vars.delim, self.vars.value)) - if out.startswith("%s:" % self.vars.name): - return changed(out.split(' -> ')[1].strip().split(self.vars.delim)) + self.changed = True - return False + def value_present(self): + if self.contains(): + return - def _sysrc(self, *args): - cmd = [self.sysrc, '-f', self.vars.path] - if self.vars.jail: - cmd += ['-j', self.vars.jail] + if self.module.check_mode: + self.changed = True + return + + setstring = '%s+=%s%s' % (self.name, self.delim, self.value) + (rc, out, err) = self.run_sysrc(setstring) + if out.find("%s:" % self.name) == 0: + values = out.split(' -> ')[1].strip().split(self.delim) + if self.value in values: + self.changed = True + + def value_absent(self): + if not self.contains(): + return + + if self.module.check_mode: + self.changed = True + return + + setstring = '%s-=%s%s' % (self.name, self.delim, self.value) + (rc, out, err) = self.run_sysrc(setstring) + if out.find("%s:" % self.name) == 0: + values = out.split(' -> ')[1].strip().split(self.delim) + if self.value not in values: + self.changed = True + + def run_sysrc(self, *args): + cmd = [self.sysrc, '-f', self.path] + if self.jail: + cmd += ['-j', self.jail] cmd.extend(args) (rc, out, err) = self.module.run_command(cmd) - if "Permission denied" in err: - self.module.fail_json(msg="Permission denied for %s" % self.vars.path) - return rc, out, err - - def state_absent(self): - if self._get() is None: - return - - if not self.check_mode: - self._sysrc('-x', self.vars.name) - - self.changed = True - - def state_present(self): - value = self._get() - if value == self.vars.value: - return - - if self.vars.value is None: - self.vars.set('value', value) - return - - if not self.check_mode: - self._sysrc("%s=%s" % (self.vars.name, self.vars.value)) - - self.changed = True - - def state_value_absent(self): - (contains, _unused) = self._contains() - if not contains: - return - - self.changed = self.check_mode or self._modify('-', lambda values: self.vars.value not in values) - - def state_value_present(self): - (contains, value) = self._contains() - if contains: - return - - if self.vars.value is None: - self.vars.set('value', value) - return - - self.changed = self.check_mode or self._modify('+', lambda values: self.vars.value in values) + return (rc, out, err) def main(): - Sysrc.execute() + module = AnsibleModule( + argument_spec=dict( + name=dict(type='str', required=True), + value=dict(type='str', default=None), + state=dict(type='str', default='present', choices=['absent', 'present', 'value_present', 'value_absent']), + path=dict(type='str', default='/etc/rc.conf'), + delim=dict(type='str', default=' '), + jail=dict(type='str', default=None), + ), + supports_check_mode=True, + ) + + name = module.params.pop('name') + # OID style names are not supported + if not re.match('^[a-zA-Z0-9_]+$', name): + module.fail_json( + msg="Name may only contain alphanumeric and underscore characters" + ) + + value = module.params.pop('value') + state = module.params.pop('state') + path = module.params.pop('path') + delim = module.params.pop('delim') + jail = module.params.pop('jail') + result = dict( + name=name, + state=state, + value=value, + path=path, + delim=delim, + jail=jail + ) + + rc_value = Sysrc(module, name, value, path, delim, jail) + + if state == 'present': + rc_value.present() + elif state == 'absent': + rc_value.absent() + elif state == 'value_present': + rc_value.value_present() + elif state == 'value_absent': + rc_value.value_absent() + + result['changed'] = rc_value.changed + + module.exit_json(**result) if __name__ == '__main__': diff --git a/plugins/modules/systemd_creds_decrypt.py b/plugins/modules/systemd_creds_decrypt.py index c896737a93..fbe80f2f16 100644 --- a/plugins/modules/systemd_creds_decrypt.py +++ b/plugins/modules/systemd_creds_decrypt.py @@ -100,12 +100,16 @@ def main(): """Decrypt secret using systemd-creds.""" module = AnsibleModule( argument_spec=dict( - name=dict(type="str"), - newline=dict(type="bool", default=False), + name=dict(type="str", required=False), + newline=dict(type="bool", required=False, default=False), secret=dict(type="str", required=True, no_log=True), - timestamp=dict(type="str"), - transcode=dict(type="str", choices=["base64", "unbase64", "hex", "unhex"]), - user=dict(type="str"), + timestamp=dict(type="str", required=False), + transcode=dict( + type="str", + choices=["base64", "unbase64", "hex", "unhex"], + required=False, + ), + user=dict(type="str", required=False), ), supports_check_mode=True, ) diff --git a/plugins/modules/systemd_creds_encrypt.py b/plugins/modules/systemd_creds_encrypt.py index 2c4912427e..6f6e635416 100644 --- a/plugins/modules/systemd_creds_encrypt.py +++ b/plugins/modules/systemd_creds_encrypt.py @@ -97,12 +97,12 @@ def main(): """Encrypt secret using systemd-creds.""" module = AnsibleModule( argument_spec=dict( - name=dict(type="str"), - not_after=dict(type="str"), + name=dict(type="str", required=False), + not_after=dict(type="str", required=False), pretty=dict(type="bool", default=False), secret=dict(type="str", required=True, no_log=True), - timestamp=dict(type="str"), - user=dict(type="str"), + timestamp=dict(type="str", required=False), + user=dict(type="str", required=False), ), supports_check_mode=True, ) diff --git a/plugins/modules/systemd_info.py b/plugins/modules/systemd_info.py index 12f308849c..139365856d 100644 --- a/plugins/modules/systemd_info.py +++ b/plugins/modules/systemd_info.py @@ -14,13 +14,13 @@ short_description: Gather C(systemd) unit info description: - This module gathers info about systemd units (services, targets, sockets, mounts, timers). - Timer units are supported since community.general 10.5.0. - - It runs C(systemctl list-units) (or processes selected units) and collects properties for each unit using C(systemctl - show). - - In case a unit has multiple properties with the same name, only the value of the first one is collected. - - Even if a unit has a RV(units.loadstate) of V(not-found) or V(masked), it is returned, but only with the minimal properties - (RV(units.name), RV(units.loadstate), RV(units.activestate), RV(units.substate)). - - When O(unitname) and O(extra_properties) are used, the module first checks if the unit exists, then check if properties - exist. If not, the module fails. + - It runs C(systemctl list-units) (or processes selected units) and collects properties + for each unit using C(systemctl show). + - In case a unit has multiple properties with the same name, only the value of the first one will be collected. + - Even if a unit has a RV(units.loadstate) of V(not-found) or V(masked), it is returned, + but only with the minimal properties (RV(units.name), RV(units.loadstate), RV(units.activestate), RV(units.substate)). + - When O(unitname) and O(extra_properties) are used, the module first checks if the unit exists, + then check if properties exist. If not, the module fails. - When O(unitname) is used with wildcard expressions, the module checks for units that match the indicated expressions, if units are not present for all the indicated expressions, the module fails. version_added: "10.4.0" @@ -89,7 +89,7 @@ RETURN = r""" units: description: - Dictionary of systemd unit info keyed by unit name. - - Additional fields are returned depending on the value of O(extra_properties). + - Additional fields will be returned depending on the value of O(extra_properties). returned: success type: dict elements: dict @@ -116,8 +116,7 @@ units: substate: description: - The detailed sub state of the unit. - - The most common values are V(running), V(dead), V(exited), V(failed), V(listening), V(active), and V(mounted), but - other values are possible as well. + - The most common values are V(running), V(dead), V(exited), V(failed), V(listening), V(active), and V(mounted), but other values are possible as well. returned: always type: str sample: running diff --git a/plugins/modules/sysupgrade.py b/plugins/modules/sysupgrade.py index d247e9d74c..cb9eb08226 100644 --- a/plugins/modules/sysupgrade.py +++ b/plugins/modules/sysupgrade.py @@ -25,7 +25,7 @@ options: snapshot: description: - Apply the latest snapshot. - - Otherwise release is applied. + - Otherwise release will be applied. default: false type: bool force: @@ -36,13 +36,14 @@ options: keep_files: description: - Keep the files under C(/home/_sysupgrade). - - By default, the files are deleted after the upgrade. + - By default, the files will be deleted after the upgrade. default: false type: bool fetch_only: description: - Fetch and verify files and create C(/bsd.upgrade) but do not reboot. - - Set to V(false) if you want C(sysupgrade) to reboot. This causes the module to fail. See the examples. + - Set to V(false) if you want C(sysupgrade) to reboot. This will cause Ansible to error, as it expects the module to + exit gracefully. See the examples. default: true type: bool installurl: @@ -78,6 +79,21 @@ EXAMPLES = r""" ignore_errors: true """ +RETURN = r""" +rc: + description: The command return code (0 means success). + returned: always + type: int +stdout: + description: Sysupgrade standard output. + returned: always + type: str +stderr: + description: Sysupgrade standard error. + returned: always + type: str + sample: "sysupgrade: need root privileges" +""" from ansible.module_utils.basic import AnsibleModule @@ -86,6 +102,7 @@ def sysupgrade_run(module): sysupgrade_bin = module.get_bin_path('/usr/sbin/sysupgrade', required=True) cmd = [sysupgrade_bin] changed = False + warnings = [] # Setup command flags if module.params['snapshot']: @@ -121,6 +138,7 @@ def sysupgrade_run(module): rc=rc, stderr=err, stdout=out, + warnings=warnings ) diff --git a/plugins/modules/taiga_issue.py b/plugins/modules/taiga_issue.py index d7f8824c95..e614b235ec 100644 --- a/plugins/modules/taiga_issue.py +++ b/plugins/modules/taiga_issue.py @@ -255,18 +255,18 @@ def manage_issue(taiga_host, project_name, issue_subject, issue_priority, def main(): module = AnsibleModule( argument_spec=dict( - taiga_host=dict(type='str', default="https://api.taiga.io"), + taiga_host=dict(type='str', required=False, default="https://api.taiga.io"), project=dict(type='str', required=True), subject=dict(type='str', required=True), issue_type=dict(type='str', required=True), - priority=dict(type='str', default="Normal"), - status=dict(type='str', default="New"), - severity=dict(type='str', default="Normal"), - description=dict(type='str', default=""), - attachment=dict(type='path'), - attachment_description=dict(type='str', default=""), - tags=dict(default=[], type='list', elements='str'), - state=dict(type='str', choices=['present', 'absent'], default='present'), + priority=dict(type='str', required=False, default="Normal"), + status=dict(type='str', required=False, default="New"), + severity=dict(type='str', required=False, default="Normal"), + description=dict(type='str', required=False, default=""), + attachment=dict(type='path', required=False, default=None), + attachment_description=dict(type='str', required=False, default=""), + tags=dict(required=False, default=[], type='list', elements='str'), + state=dict(type='str', required=False, choices=['present', 'absent'], default='present'), ), supports_check_mode=True ) diff --git a/plugins/modules/telegram.py b/plugins/modules/telegram.py index abaa72c83e..6773f48bf5 100644 --- a/plugins/modules/telegram.py +++ b/plugins/modules/telegram.py @@ -21,7 +21,7 @@ description: - Send notifications using telegram bot, to a verified group or user. - Also, the user may try to use any other telegram bot API method, if you specify O(api_method) argument. notes: - - You need a telegram account and create telegram bot to use this module. + - You will require a telegram account and create telegram bot to use this module. extends_documentation_fragment: - community.general.attributes attributes: diff --git a/plugins/modules/terraform.py b/plugins/modules/terraform.py index a5adbcbe7e..dd34ba9a0e 100644 --- a/plugins/modules/terraform.py +++ b/plugins/modules/terraform.py @@ -58,19 +58,19 @@ options: purge_workspace: description: - Only works with state = absent. - - If V(true), the O(workspace) is deleted after the C(terraform destroy) action. - - If O(workspace=default) then it is not deleted. + - If true, the workspace will be deleted after the "terraform destroy" action. + - The 'default' workspace will not be deleted. default: false type: bool plan_file: description: - - The path to an existing Terraform plan file to apply. If this is not specified, Ansible builds a new TF plan and execute - it. Note that this option is required if O(state=planned). + - The path to an existing Terraform plan file to apply. If this is not specified, Ansible will build a new TF plan and + execute it. Note that this option is required if 'state' has the 'planned' value. type: path state_file: description: - The path to an existing Terraform state file to use when building plan. If this is not specified, the default C(terraform.tfstate) - is used. + will be used. - This option is ignored when plan is specified. type: path variables_files: @@ -91,7 +91,7 @@ options: - Ansible dictionaries are mapped to terraform objects. - Ansible lists are mapped to terraform lists. - Ansible booleans are mapped to terraform booleans. - - B(Note) passwords passed as variables are visible in the log output. Make sure to use C(no_log=true) in production!. + - B(Note) passwords passed as variables will be visible in the log output. Make sure to use C(no_log=true) in production!. type: dict complex_vars: description: @@ -104,7 +104,7 @@ options: version_added: 5.7.0 targets: description: - - A list of specific resources to target in this plan/application. The resources selected here are also auto-include + - A list of specific resources to target in this plan/application. The resources selected here will also auto-include any dependencies. type: list elements: str @@ -120,7 +120,7 @@ options: type: int force_init: description: - - To avoid duplicating infra, if a state file cannot be found this forces a C(terraform init). Generally, this should + - To avoid duplicating infra, if a state file cannot be found this will force a C(terraform init). Generally, this should be turned off unless you intend to provision an entirely new Terraform deployment. default: false type: bool @@ -272,6 +272,11 @@ outputs: type: str returned: always description: The value of the output as interpolated by Terraform. +stdout: + type: str + description: Full C(terraform) command stdout, in case you want to display it or examine the event log. + returned: always + sample: '' command: type: str description: Full C(terraform) command built by this module, in case you want to re-run the command outside the module or diff --git a/plugins/modules/timezone.py b/plugins/modules/timezone.py index 6e105c0bad..37eb2f94a6 100644 --- a/plugins/modules/timezone.py +++ b/plugins/modules/timezone.py @@ -57,6 +57,20 @@ author: - Indrajit Raychaudhuri (@indrajitr) """ +RETURN = r""" +diff: + description: The differences about the given arguments. + returned: success + type: complex + contains: + before: + description: The values before change. + type: dict + after: + description: The values after change. + type: dict +""" + EXAMPLES = r""" - name: Set timezone to Asia/Tokyo become: true diff --git a/plugins/modules/twilio.py b/plugins/modules/twilio.py index 4d9dd6ac19..09169075a1 100644 --- a/plugins/modules/twilio.py +++ b/plugins/modules/twilio.py @@ -150,7 +150,7 @@ def main(): msg=dict(required=True), from_number=dict(required=True), to_numbers=dict(required=True, aliases=['to_number'], type='list', elements='str'), - media_url=dict(), + media_url=dict(default=None, required=False), ), supports_check_mode=True ) diff --git a/plugins/modules/typetalk.py b/plugins/modules/typetalk.py index 8728bfb21a..505c1a4abd 100644 --- a/plugins/modules/typetalk.py +++ b/plugins/modules/typetalk.py @@ -14,10 +14,6 @@ module: typetalk short_description: Send a message to typetalk description: - Send a message to typetalk using typetalk API. -deprecated: - removed_in: 13.0.0 - why: The typetalk service will be discontinued on Dec 2025. See U(https://nulab.com/blog/company-news/typetalk-sunsetting/). - alternative: There is none. extends_documentation_fragment: - community.general.attributes attributes: diff --git a/plugins/modules/utm_aaa_group.py b/plugins/modules/utm_aaa_group.py index d1444b5bd7..b29f3d50af 100644 --- a/plugins/modules/utm_aaa_group.py +++ b/plugins/modules/utm_aaa_group.py @@ -28,7 +28,7 @@ attributes: options: name: description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. type: str required: true adirectory_groups: @@ -210,20 +210,20 @@ def main(): module = UTMModule( argument_spec=dict( name=dict(type='str', required=True), - adirectory_groups=dict(type='list', elements='str', default=[]), - adirectory_groups_sids=dict(type='dict', default={}), - backend_match=dict(type='str', default="none", + adirectory_groups=dict(type='list', elements='str', required=False, default=[]), + adirectory_groups_sids=dict(type='dict', required=False, default={}), + backend_match=dict(type='str', required=False, default="none", choices=["none", "adirectory", "edirectory", "radius", "tacacs", "ldap"]), - comment=dict(type='str', default=""), - dynamic=dict(type='str', default="none", choices=["none", "ipsec_dn", "directory_groups"]), - edirectory_groups=dict(type='list', elements='str', default=[]), - ipsec_dn=dict(type='str', default=""), - ldap_attribute=dict(type='str', default=""), - ldap_attribute_value=dict(type='str', default=""), - members=dict(type='list', elements='str', default=[]), - network=dict(type='str', default=""), - radius_groups=dict(type='list', elements='str', default=[]), - tacacs_groups=dict(type='list', elements='str', default=[]), + comment=dict(type='str', required=False, default=""), + dynamic=dict(type='str', required=False, default="none", choices=["none", "ipsec_dn", "directory_groups"]), + edirectory_groups=dict(type='list', elements='str', required=False, default=[]), + ipsec_dn=dict(type='str', required=False, default=""), + ldap_attribute=dict(type='str', required=False, default=""), + ldap_attribute_value=dict(type='str', required=False, default=""), + members=dict(type='list', elements='str', required=False, default=[]), + network=dict(type='str', required=False, default=""), + radius_groups=dict(type='list', elements='str', required=False, default=[]), + tacacs_groups=dict(type='list', elements='str', required=False, default=[]), ) ) try: diff --git a/plugins/modules/utm_aaa_group_info.py b/plugins/modules/utm_aaa_group_info.py index ee0d1c1234..91fe8ce930 100644 --- a/plugins/modules/utm_aaa_group_info.py +++ b/plugins/modules/utm_aaa_group_info.py @@ -29,7 +29,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true extends_documentation_fragment: diff --git a/plugins/modules/utm_ca_host_key_cert.py b/plugins/modules/utm_ca_host_key_cert.py index 1e6fa1c713..b67531c061 100644 --- a/plugins/modules/utm_ca_host_key_cert.py +++ b/plugins/modules/utm_ca_host_key_cert.py @@ -29,7 +29,7 @@ attributes: options: name: description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true type: str ca: @@ -148,9 +148,9 @@ def main(): ca=dict(type='str', required=True), meta=dict(type='str', required=True), certificate=dict(type='str', required=True), - comment=dict(type='str'), - encrypted=dict(type='bool', default=False), - key=dict(type='str', no_log=True), + comment=dict(type='str', required=False), + encrypted=dict(type='bool', required=False, default=False), + key=dict(type='str', required=False, no_log=True), ) ) try: diff --git a/plugins/modules/utm_ca_host_key_cert_info.py b/plugins/modules/utm_ca_host_key_cert_info.py index a0fcb97146..cab6657ab6 100644 --- a/plugins/modules/utm_ca_host_key_cert_info.py +++ b/plugins/modules/utm_ca_host_key_cert_info.py @@ -28,7 +28,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true extends_documentation_fragment: diff --git a/plugins/modules/utm_dns_host.py b/plugins/modules/utm_dns_host.py index e1a63e1f73..2eb404b38c 100644 --- a/plugins/modules/utm_dns_host.py +++ b/plugins/modules/utm_dns_host.py @@ -29,7 +29,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true address: type: str @@ -130,7 +130,7 @@ result: description: Whether the ipv6 address is resolved or not. type: bool timeout: - description: The timeout until a new resolving is attempted. + description: The timeout until a new resolving will be attempted. type: int """ @@ -144,14 +144,14 @@ def main(): module = UTMModule( argument_spec=dict( name=dict(type='str', required=True), - address=dict(type='str', default='0.0.0.0'), - address6=dict(type='str', default='::'), - comment=dict(type='str', default=""), - hostname=dict(type='str'), - interface=dict(type='str', default=""), - resolved=dict(type='bool', default=False), - resolved6=dict(type='bool', default=False), - timeout=dict(type='int', default=0), + address=dict(type='str', required=False, default='0.0.0.0'), + address6=dict(type='str', required=False, default='::'), + comment=dict(type='str', required=False, default=""), + hostname=dict(type='str', required=False), + interface=dict(type='str', required=False, default=""), + resolved=dict(type='bool', required=False, default=False), + resolved6=dict(type='bool', required=False, default=False), + timeout=dict(type='int', required=False, default=0), ) ) try: diff --git a/plugins/modules/utm_network_interface_address.py b/plugins/modules/utm_network_interface_address.py index 7212897655..1e3d2ee5c3 100644 --- a/plugins/modules/utm_network_interface_address.py +++ b/plugins/modules/utm_network_interface_address.py @@ -29,7 +29,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true address: type: str @@ -123,10 +123,10 @@ def main(): argument_spec=dict( name=dict(type='str', required=True), address=dict(type='str', required=True), - comment=dict(type='str', default=""), - address6=dict(type='str'), - resolved=dict(type='bool'), - resolved6=dict(type='bool'), + comment=dict(type='str', required=False, default=""), + address6=dict(type='str', required=False), + resolved=dict(type='bool', required=False), + resolved6=dict(type='bool', required=False), ) ) try: diff --git a/plugins/modules/utm_network_interface_address_info.py b/plugins/modules/utm_network_interface_address_info.py index a5b3ff7b3b..b9c394c848 100644 --- a/plugins/modules/utm_network_interface_address_info.py +++ b/plugins/modules/utm_network_interface_address_info.py @@ -27,7 +27,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true extends_documentation_fragment: diff --git a/plugins/modules/utm_proxy_auth_profile.py b/plugins/modules/utm_proxy_auth_profile.py index 96ae3aa869..207c4ba156 100644 --- a/plugins/modules/utm_proxy_auth_profile.py +++ b/plugins/modules/utm_proxy_auth_profile.py @@ -30,7 +30,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true aaa: type: list @@ -316,29 +316,29 @@ def main(): name=dict(type='str', required=True), aaa=dict(type='list', elements='str', required=True), basic_prompt=dict(type='str', required=True), - backend_mode=dict(type='str', default="None", choices=['Basic', 'None']), - backend_strip_basic_auth=dict(type='bool', default=True), - backend_user_prefix=dict(type='str', default=""), - backend_user_suffix=dict(type='str', default=""), - comment=dict(type='str', default=""), - frontend_cookie=dict(type='str'), - frontend_cookie_secret=dict(type='str', no_log=True), - frontend_form=dict(type='str'), - frontend_form_template=dict(type='str', default=""), - frontend_login=dict(type='str'), - frontend_logout=dict(type='str'), - frontend_mode=dict(type='str', default="Basic", choices=['Basic', 'Form']), - frontend_realm=dict(type='str'), - frontend_session_allow_persistency=dict(type='bool', default=False), + backend_mode=dict(type='str', required=False, default="None", choices=['Basic', 'None']), + backend_strip_basic_auth=dict(type='bool', required=False, default=True), + backend_user_prefix=dict(type='str', required=False, default=""), + backend_user_suffix=dict(type='str', required=False, default=""), + comment=dict(type='str', required=False, default=""), + frontend_cookie=dict(type='str', required=False), + frontend_cookie_secret=dict(type='str', required=False, no_log=True), + frontend_form=dict(type='str', required=False), + frontend_form_template=dict(type='str', required=False, default=""), + frontend_login=dict(type='str', required=False), + frontend_logout=dict(type='str', required=False), + frontend_mode=dict(type='str', required=False, default="Basic", choices=['Basic', 'Form']), + frontend_realm=dict(type='str', required=False), + frontend_session_allow_persistency=dict(type='bool', required=False, default=False), frontend_session_lifetime=dict(type='int', required=True), - frontend_session_lifetime_limited=dict(type='bool', default=True), - frontend_session_lifetime_scope=dict(type='str', default="hours", choices=['days', 'hours', 'minutes']), + frontend_session_lifetime_limited=dict(type='bool', required=False, default=True), + frontend_session_lifetime_scope=dict(type='str', required=False, default="hours", choices=['days', 'hours', 'minutes']), frontend_session_timeout=dict(type='int', required=True), - frontend_session_timeout_enabled=dict(type='bool', default=True), - frontend_session_timeout_scope=dict(type='str', default="minutes", choices=['days', 'hours', 'minutes']), - logout_delegation_urls=dict(type='list', elements='str', default=[]), - logout_mode=dict(type='str', default="None", choices=['None', 'Delegation']), - redirect_to_requested_url=dict(type='bool', default=False) + frontend_session_timeout_enabled=dict(type='bool', required=False, default=True), + frontend_session_timeout_scope=dict(type='str', required=False, default="minutes", choices=['days', 'hours', 'minutes']), + logout_delegation_urls=dict(type='list', elements='str', required=False, default=[]), + logout_mode=dict(type='str', required=False, default="None", choices=['None', 'Delegation']), + redirect_to_requested_url=dict(type='bool', required=False, default=False) ) ) try: diff --git a/plugins/modules/utm_proxy_exception.py b/plugins/modules/utm_proxy_exception.py index 174156394c..96cb592e59 100644 --- a/plugins/modules/utm_proxy_exception.py +++ b/plugins/modules/utm_proxy_exception.py @@ -29,7 +29,7 @@ attributes: options: name: description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true type: str op: @@ -220,20 +220,20 @@ def main(): module = UTMModule( argument_spec=dict( name=dict(type='str', required=True), - op=dict(type='str', default='AND', choices=['AND', 'OR']), - path=dict(type='list', elements='str', default=[]), - skip_custom_threats_filters=dict(type='list', elements='str', default=[]), - skip_threats_filter_categories=dict(type='list', elements='str', default=[]), - skipav=dict(type='bool', default=False), - skipbadclients=dict(type='bool', default=False), - skipcookie=dict(type='bool', default=False), - skipform=dict(type='bool', default=False), - skipform_missingtoken=dict(type='bool', default=False), - skiphtmlrewrite=dict(type='bool', default=False), - skiptft=dict(type='bool', default=False), - skipurl=dict(type='bool', default=False), - source=dict(type='list', elements='str', default=[]), - status=dict(type='bool', default=True), + op=dict(type='str', required=False, default='AND', choices=['AND', 'OR']), + path=dict(type='list', elements='str', required=False, default=[]), + skip_custom_threats_filters=dict(type='list', elements='str', required=False, default=[]), + skip_threats_filter_categories=dict(type='list', elements='str', required=False, default=[]), + skipav=dict(type='bool', required=False, default=False), + skipbadclients=dict(type='bool', required=False, default=False), + skipcookie=dict(type='bool', required=False, default=False), + skipform=dict(type='bool', required=False, default=False), + skipform_missingtoken=dict(type='bool', required=False, default=False), + skiphtmlrewrite=dict(type='bool', required=False, default=False), + skiptft=dict(type='bool', required=False, default=False), + skipurl=dict(type='bool', required=False, default=False), + source=dict(type='list', elements='str', required=False, default=[]), + status=dict(type='bool', required=False, default=True), ) ) try: diff --git a/plugins/modules/utm_proxy_frontend.py b/plugins/modules/utm_proxy_frontend.py index 5330311516..09f0cdd4bc 100644 --- a/plugins/modules/utm_proxy_frontend.py +++ b/plugins/modules/utm_proxy_frontend.py @@ -30,7 +30,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true add_content_type_header: description: @@ -76,12 +76,12 @@ options: default: [] htmlrewrite: description: - - Whether to enable HTML rewrite or not. + - Whether to enable html rewrite or not. type: bool default: false htmlrewrite_cookies: description: - - Whether to enable HTML rewrite cookie or not. + - Whether to enable html rewrite cookie or not. type: bool default: false implicitredirect: @@ -204,7 +204,7 @@ result: description: List of associated proxy exceptions. type: list htmlrewrite: - description: State of HTML rewrite. + description: State of html rewrite. type: bool htmlrewrite_cookies: description: Whether the HTML rewrite cookie is set. @@ -251,26 +251,26 @@ def main(): module = UTMModule( argument_spec=dict( name=dict(type='str', required=True), - add_content_type_header=dict(type='bool', default=False), - address=dict(type='str', default="REF_DefaultInternalAddress"), - allowed_networks=dict(type='list', elements='str', default=["REF_NetworkAny"]), - certificate=dict(type='str', default=""), - comment=dict(type='str', default=""), - disable_compression=dict(type='bool', default=False), - domain=dict(type='list', elements='str'), - exceptions=dict(type='list', elements='str', default=[]), - htmlrewrite=dict(type='bool', default=False), - htmlrewrite_cookies=dict(type='bool', default=False), - implicitredirect=dict(type='bool', default=False), - lbmethod=dict(type='str', default="bybusyness", + add_content_type_header=dict(type='bool', required=False, default=False), + address=dict(type='str', required=False, default="REF_DefaultInternalAddress"), + allowed_networks=dict(type='list', elements='str', required=False, default=["REF_NetworkAny"]), + certificate=dict(type='str', required=False, default=""), + comment=dict(type='str', required=False, default=""), + disable_compression=dict(type='bool', required=False, default=False), + domain=dict(type='list', elements='str', required=False), + exceptions=dict(type='list', elements='str', required=False, default=[]), + htmlrewrite=dict(type='bool', required=False, default=False), + htmlrewrite_cookies=dict(type='bool', required=False, default=False), + implicitredirect=dict(type='bool', required=False, default=False), + lbmethod=dict(type='str', required=False, default="bybusyness", choices=['bybusyness', 'bytraffic', 'byrequests', '']), - locations=dict(type='list', elements='str', default=[]), - port=dict(type='int', default=80), - preservehost=dict(type='bool', default=False), - profile=dict(type='str', default=""), - status=dict(type='bool', default=True), - type=dict(type='str', default="http", choices=['http', 'https']), - xheaders=dict(type='bool', default=False), + locations=dict(type='list', elements='str', required=False, default=[]), + port=dict(type='int', required=False, default=80), + preservehost=dict(type='bool', required=False, default=False), + profile=dict(type='str', required=False, default=""), + status=dict(type='bool', required=False, default=True), + type=dict(type='str', required=False, default="http", choices=['http', 'https']), + xheaders=dict(type='bool', required=False, default=False), ) ) try: diff --git a/plugins/modules/utm_proxy_frontend_info.py b/plugins/modules/utm_proxy_frontend_info.py index 859ee67de1..722e2621a2 100644 --- a/plugins/modules/utm_proxy_frontend_info.py +++ b/plugins/modules/utm_proxy_frontend_info.py @@ -29,7 +29,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true extends_documentation_fragment: @@ -90,7 +90,7 @@ result: description: List of associated proxy exceptions. type: list htmlrewrite: - description: State of HTML rewrite. + description: State of html rewrite. type: bool htmlrewrite_cookies: description: Whether the HTML rewrite cookie is set. diff --git a/plugins/modules/utm_proxy_location.py b/plugins/modules/utm_proxy_location.py index 15b89bb1a2..95ee210e97 100644 --- a/plugins/modules/utm_proxy_location.py +++ b/plugins/modules/utm_proxy_location.py @@ -30,7 +30,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true access_control: description: @@ -198,19 +198,19 @@ def main(): module = UTMModule( argument_spec=dict( name=dict(type='str', required=True), - access_control=dict(type='str', default="0", choices=['0', '1']), - allowed_networks=dict(type='list', elements='str', default=['REF_NetworkAny']), - auth_profile=dict(type='str', default=""), - backend=dict(type='list', elements='str', default=[]), - be_path=dict(type='str', default=""), - comment=dict(type='str', default=""), - denied_networks=dict(type='list', elements='str', default=[]), - hot_standby=dict(type='bool', default=False), - path=dict(type='str', default="/"), - status=dict(type='bool', default=True), - stickysession_id=dict(type='str', default='ROUTEID'), - stickysession_status=dict(type='bool', default=False), - websocket_passthrough=dict(type='bool', default=False), + access_control=dict(type='str', required=False, default="0", choices=['0', '1']), + allowed_networks=dict(type='list', elements='str', required=False, default=['REF_NetworkAny']), + auth_profile=dict(type='str', required=False, default=""), + backend=dict(type='list', elements='str', required=False, default=[]), + be_path=dict(type='str', required=False, default=""), + comment=dict(type='str', required=False, default=""), + denied_networks=dict(type='list', elements='str', required=False, default=[]), + hot_standby=dict(type='bool', required=False, default=False), + path=dict(type='str', required=False, default="/"), + status=dict(type='bool', required=False, default=True), + stickysession_id=dict(type='str', required=False, default='ROUTEID'), + stickysession_status=dict(type='bool', required=False, default=False), + websocket_passthrough=dict(type='bool', required=False, default=False), ) ) try: diff --git a/plugins/modules/utm_proxy_location_info.py b/plugins/modules/utm_proxy_location_info.py index 7a8db919c2..0512d4be15 100644 --- a/plugins/modules/utm_proxy_location_info.py +++ b/plugins/modules/utm_proxy_location_info.py @@ -29,7 +29,7 @@ options: name: type: str description: - - The name of the object that identifies the entry. + - The name of the object. Will be used to identify the entry. required: true extends_documentation_fragment: diff --git a/plugins/modules/vdo.py b/plugins/modules/vdo.py index dbfa44f5b6..a176e038eb 100644 --- a/plugins/modules/vdo.py +++ b/plugins/modules/vdo.py @@ -48,8 +48,8 @@ options: default: present activated: description: - - The C(activate) status for a VDO volume. If this is set to V(false), the VDO volume cannot be started, and it does - not start on system startup. However, on initial creation, a VDO volume with O(activated=false) is set to be running + - The C(activate) status for a VDO volume. If this is set to V(false), the VDO volume cannot be started, and it will + not start on system startup. However, on initial creation, a VDO volume with "activated" set to "off" will be running, until stopped. This is the default behavior of the C(vdo create) command; it provides the user an opportunity to write a base amount of metadata (filesystem, LVM headers, and so on) to the VDO volume prior to stopping the volume, and leaving it deactivated until ready to use. diff --git a/plugins/modules/vertica_configuration.py b/plugins/modules/vertica_configuration.py index d97fbf5ed4..39ed27dc2d 100644 --- a/plugins/modules/vertica_configuration.py +++ b/plugins/modules/vertica_configuration.py @@ -139,12 +139,12 @@ def main(): module = AnsibleModule( argument_spec=dict( parameter=dict(required=True, aliases=['name']), - value=dict(), - db=dict(), + value=dict(default=None), + db=dict(default=None), cluster=dict(default='localhost'), port=dict(default='5433'), login_user=dict(default='dbadmin'), - login_password=dict(no_log=True), + login_password=dict(default=None, no_log=True), ), supports_check_mode=True) if not pyodbc_found: diff --git a/plugins/modules/vertica_info.py b/plugins/modules/vertica_info.py index 340e782f31..29f8669c27 100644 --- a/plugins/modules/vertica_info.py +++ b/plugins/modules/vertica_info.py @@ -227,9 +227,9 @@ def main(): argument_spec=dict( cluster=dict(default='localhost'), port=dict(default='5433'), - db=dict(), + db=dict(default=None), login_user=dict(default='dbadmin'), - login_password=dict(no_log=True), + login_password=dict(default=None, no_log=True), ), supports_check_mode=True) if not pyodbc_found: diff --git a/plugins/modules/vertica_role.py b/plugins/modules/vertica_role.py index 550c612b8d..d814aca273 100644 --- a/plugins/modules/vertica_role.py +++ b/plugins/modules/vertica_role.py @@ -180,7 +180,7 @@ def main(): module = AnsibleModule( argument_spec=dict( role=dict(required=True, aliases=['name']), - assigned_roles=dict(aliases=['assigned_role']), + assigned_roles=dict(default=None, aliases=['assigned_role']), state=dict(default='present', choices=['absent', 'present']), db=dict(), cluster=dict(default='localhost'), diff --git a/plugins/modules/vmadm.py b/plugins/modules/vmadm.py index fc7504fba5..8808eeea11 100644 --- a/plugins/modules/vmadm.py +++ b/plugins/modules/vmadm.py @@ -107,8 +107,7 @@ options: flexible_disk_size: required: false description: - - This sets an upper bound for the amount of space that a bhyve instance may use for its disks and snapshots of those - disks (in MiBs). + - This sets an upper bound for the amount of space that a bhyve instance may use for its disks and snapshots of those disks (in MiBs). type: int version_added: 10.5.0 force: diff --git a/plugins/modules/xbps.py b/plugins/modules/xbps.py index dc9d131bd7..3087e4d79d 100644 --- a/plugins/modules/xbps.py +++ b/plugins/modules/xbps.py @@ -363,7 +363,7 @@ def main(): module = AnsibleModule( argument_spec=dict( - name=dict(aliases=['pkg', 'package'], type='list', elements='str'), + name=dict(default=None, aliases=['pkg', 'package'], type='list', elements='str'), state=dict(default='present', choices=['present', 'installed', 'latest', 'absent', 'removed']), diff --git a/plugins/modules/xcc_redfish_command.py b/plugins/modules/xcc_redfish_command.py index 9dbbe8016f..8e5cbf7d3e 100644 --- a/plugins/modules/xcc_redfish_command.py +++ b/plugins/modules/xcc_redfish_command.py @@ -273,34 +273,33 @@ redfish_facts: description: Resource content. returned: when command == GetResource or command == GetCollectionResource type: dict - sample: - { - "redfish_facts": { - "data": { - "@odata.etag": "\"3179bf00d69f25a8b3c\"", - "@odata.id": "/redfish/v1/Managers/1/NetworkProtocol/Oem/Lenovo/DNS", - "@odata.type": "#LenovoDNS.v1_0_0.LenovoDNS", - "DDNS": [ - { - "DDNSEnable": true, - "DomainName": "", - "DomainNameSource": "DHCP" - } - ], - "DNSEnable": true, - "Description": "This resource is used to represent a DNS resource for a Redfish implementation.", - "IPv4Address1": "10.103.62.178", - "IPv4Address2": "0.0.0.0", - "IPv4Address3": "0.0.0.0", - "IPv6Address1": "::", - "IPv6Address2": "::", - "IPv6Address3": "::", - "Id": "LenovoDNS", - "PreferredAddresstype": "IPv4" - }, - "ret": true - } + sample: '{ + "redfish_facts": { + "data": { + "@odata.etag": "\"3179bf00d69f25a8b3c\"", + "@odata.id": "/redfish/v1/Managers/1/NetworkProtocol/Oem/Lenovo/DNS", + "@odata.type": "#LenovoDNS.v1_0_0.LenovoDNS", + "DDNS": [ + { + "DDNSEnable": true, + "DomainName": "", + "DomainNameSource": "DHCP" + } + ], + "DNSEnable": true, + "Description": "This resource is used to represent a DNS resource for a Redfish implementation.", + "IPv4Address1": "10.103.62.178", + "IPv4Address2": "0.0.0.0", + "IPv4Address3": "0.0.0.0", + "IPv6Address1": "::", + "IPv6Address2": "::", + "IPv6Address3": "::", + "Id": "LenovoDNS", + "PreferredAddresstype": "IPv4" + }, + "ret": true } + }' """ from ansible.module_utils.basic import AnsibleModule diff --git a/plugins/modules/xdg_mime.py b/plugins/modules/xdg_mime.py index cf297187a4..7974420a8d 100644 --- a/plugins/modules/xdg_mime.py +++ b/plugins/modules/xdg_mime.py @@ -31,15 +31,16 @@ attributes: options: mime_types: description: - - One or more MIME types for which a default handler is set. + - One or more MIME types for which a default handler will be set. type: list elements: str required: true handler: description: - Sets the default handler for the specified MIME types. - - The desktop file must be installed in the system. If the desktop file is not installed, the module does not fail, - but the handler is not set either. + - The desktop file must be installed in the system. + If the desktop file is not installed, the module + does not fail, but the handler is not set either. - You must pass a handler in the form V(*.desktop), otherwise the module fails. type: str required: true diff --git a/plugins/modules/xenserver_guest.py b/plugins/modules/xenserver_guest.py index 44f9192b7e..da1f5439d0 100644 --- a/plugins/modules/xenserver_guest.py +++ b/plugins/modules/xenserver_guest.py @@ -394,143 +394,141 @@ instance: description: Metadata about the VM. returned: always type: dict - sample: - { - "cdrom": { - "type": "none" + sample: { + "cdrom": { + "type": "none" + }, + "customization_agent": "native", + "disks": [ + { + "name": "testvm_11-0", + "name_desc": "", + "os_device": "xvda", + "size": 42949672960, + "sr": "Local storage", + "sr_uuid": "0af1245e-bdb0-ba33-1446-57a962ec4075", + "vbd_userdevice": "0" }, - "customization_agent": "native", - "disks": [ - { - "name": "testvm_11-0", - "name_desc": "", - "os_device": "xvda", - "size": 42949672960, - "sr": "Local storage", - "sr_uuid": "0af1245e-bdb0-ba33-1446-57a962ec4075", - "vbd_userdevice": "0" - }, - { - "name": "testvm_11-1", - "name_desc": "", - "os_device": "xvdb", - "size": 42949672960, - "sr": "Local storage", - "sr_uuid": "0af1245e-bdb0-ba33-1446-57a962ec4075", - "vbd_userdevice": "1" - } - ], - "domid": "56", - "folder": "", - "hardware": { - "memory_mb": 8192, - "num_cpu_cores_per_socket": 2, - "num_cpus": 4 - }, - "home_server": "", - "is_template": false, - "name": "testvm_11", - "name_desc": "", - "networks": [ - { - "gateway": "192.168.0.254", - "gateway6": "fc00::fffe", - "ip": "192.168.0.200", - "ip6": [ - "fe80:0000:0000:0000:e9cb:625a:32c5:c291", - "fc00:0000:0000:0000:0000:0000:0000:0001" - ], - "mac": "ba:91:3a:48:20:76", - "mtu": "1500", - "name": "Pool-wide network associated with eth1", - "netmask": "255.255.255.128", - "prefix": "25", - "prefix6": "64", - "vif_device": "0" - } - ], - "other_config": { - "base_template_name": "Windows Server 2016 (64-bit)", - "import_task": "OpaqueRef:e43eb71c-45d6-5351-09ff-96e4fb7d0fa5", - "install-methods": "cdrom", - "instant": "true", - "mac_seed": "f83e8d8a-cfdc-b105-b054-ef5cb416b77e" - }, - "platform": { - "acpi": "1", - "apic": "true", - "cores-per-socket": "2", - "device_id": "0002", - "hpet": "true", - "nx": "true", - "pae": "true", - "timeoffset": "-25200", - "vga": "std", - "videoram": "8", - "viridian": "true", - "viridian_reference_tsc": "true", - "viridian_time_ref_count": "true" - }, - "state": "poweredon", - "uuid": "e3c0b2d5-5f05-424e-479c-d3df8b3e7cda", - "xenstore_data": { - "vm-data": "" + { + "name": "testvm_11-1", + "name_desc": "", + "os_device": "xvdb", + "size": 42949672960, + "sr": "Local storage", + "sr_uuid": "0af1245e-bdb0-ba33-1446-57a962ec4075", + "vbd_userdevice": "1" } + ], + "domid": "56", + "folder": "", + "hardware": { + "memory_mb": 8192, + "num_cpu_cores_per_socket": 2, + "num_cpus": 4 + }, + "home_server": "", + "is_template": false, + "name": "testvm_11", + "name_desc": "", + "networks": [ + { + "gateway": "192.168.0.254", + "gateway6": "fc00::fffe", + "ip": "192.168.0.200", + "ip6": [ + "fe80:0000:0000:0000:e9cb:625a:32c5:c291", + "fc00:0000:0000:0000:0000:0000:0000:0001" + ], + "mac": "ba:91:3a:48:20:76", + "mtu": "1500", + "name": "Pool-wide network associated with eth1", + "netmask": "255.255.255.128", + "prefix": "25", + "prefix6": "64", + "vif_device": "0" + } + ], + "other_config": { + "base_template_name": "Windows Server 2016 (64-bit)", + "import_task": "OpaqueRef:e43eb71c-45d6-5351-09ff-96e4fb7d0fa5", + "install-methods": "cdrom", + "instant": "true", + "mac_seed": "f83e8d8a-cfdc-b105-b054-ef5cb416b77e" + }, + "platform": { + "acpi": "1", + "apic": "true", + "cores-per-socket": "2", + "device_id": "0002", + "hpet": "true", + "nx": "true", + "pae": "true", + "timeoffset": "-25200", + "vga": "std", + "videoram": "8", + "viridian": "true", + "viridian_reference_tsc": "true", + "viridian_time_ref_count": "true" + }, + "state": "poweredon", + "uuid": "e3c0b2d5-5f05-424e-479c-d3df8b3e7cda", + "xenstore_data": { + "vm-data": "" } + } changes: description: Detected or made changes to VM. returned: always type: list - sample: - [ - { - "hardware": [ - "num_cpus" + sample: [ + { + "hardware": [ + "num_cpus" + ] + }, + { + "disks_changed": [ + [], + [ + "size" ] - }, - { - "disks_changed": [ - [], - [ - "size" - ] - ] - }, - { - "disks_new": [ - { - "name": "new-disk", - "name_desc": "", - "position": 2, - "size_gb": "4", - "vbd_userdevice": "2" - } - ] - }, - { - "cdrom": [ - "type", - "iso_name" - ] - }, - { - "networks_changed": [ - [ - "mac" - ] - ] - }, - { - "networks_new": [ - { - "name": "Pool-wide network associated with eth2", - "position": 1, - "vif_device": "1" - } - ] - }, - "need_poweredoff" - ] + ] + }, + { + "disks_new": [ + { + "name": "new-disk", + "name_desc": "", + "position": 2, + "size_gb": "4", + "vbd_userdevice": "2" + } + ] + }, + { + "cdrom": [ + "type", + "iso_name" + ] + }, + { + "networks_changed": [ + [ + "mac" + ], + ] + }, + { + "networks_new": [ + { + "name": "Pool-wide network associated with eth2", + "position": 1, + "vif_device": "1" + } + ] + }, + "need_poweredoff" + ] """ import re diff --git a/plugins/modules/xml.py b/plugins/modules/xml.py index 3a41cd8514..31deb4145d 100644 --- a/plugins/modules/xml.py +++ b/plugins/modules/xml.py @@ -333,15 +333,12 @@ actions: description: A dictionary with the original xpath, namespaces and state. type: dict returned: success - sample: - { - "xpath": "xpath", - "namespaces": [ - "namespace1", - "namespace2" - ], - "state": "present" - } + sample: {xpath: xpath, namespaces: [namespace1, namespace2], state: present} +backup_file: + description: The name of the backup file that was created. + type: str + returned: when O(backup=true) + sample: /path/to/file.xml.1942.2017-08-24@14:16:01~ count: description: The count of xpath matches. type: int @@ -351,6 +348,10 @@ matches: description: The xpath matches found. type: list returned: when parameter O(print_match) is set +msg: + description: A message related to the performed action(s). + type: str + returned: always xmlstring: description: An XML string of the resulting output. type: str diff --git a/plugins/modules/yarn.py b/plugins/modules/yarn.py index 75b624e9d2..553e789e89 100644 --- a/plugins/modules/yarn.py +++ b/plugins/modules/yarn.py @@ -283,12 +283,12 @@ class Yarn(object): def main(): arg_spec = dict( - name=dict(), - path=dict(type='path'), - version=dict(), + name=dict(default=None), + path=dict(default=None, type='path'), + version=dict(default=None), production=dict(default=False, type='bool'), - executable=dict(type='path'), - registry=dict(), + executable=dict(default=None, type='path'), + registry=dict(default=None), state=dict(default='present', choices=['present', 'absent', 'latest']), ignore_scripts=dict(default=False, type='bool'), ) diff --git a/plugins/modules/yum_versionlock.py b/plugins/modules/yum_versionlock.py index 183ffdc6fe..9982700928 100644 --- a/plugins/modules/yum_versionlock.py +++ b/plugins/modules/yum_versionlock.py @@ -80,7 +80,7 @@ packages: returned: success type: list elements: str - sample: ["httpd"] + sample: ['httpd'] state: description: State of package(s). returned: success diff --git a/plugins/modules/zpool.py b/plugins/modules/zpool.py index 3cce255415..0de563078c 100644 --- a/plugins/modules/zpool.py +++ b/plugins/modules/zpool.py @@ -20,8 +20,8 @@ attributes: check_mode: support: partial details: - - In check mode, any C(zpool) subcommand that supports the dry-run flag (C(-n)) will be run with C(-n) and its simulated - output is included in the module's diff results. + - In check mode, any C(zpool) subcommand that supports the dry-run flag (C(-n)) will be run with C(-n) and its + simulated output is included in the module's diff results. diff_mode: support: full author: diff --git a/plugins/modules/zypper.py b/plugins/modules/zypper.py index a9e3bf5257..8ed359d32e 100644 --- a/plugins/modules/zypper.py +++ b/plugins/modules/zypper.py @@ -605,22 +605,22 @@ def main(): module = AnsibleModule( argument_spec=dict( name=dict(required=True, aliases=['pkg'], type='list', elements='str'), - state=dict(default='present', choices=['absent', 'installed', 'latest', 'present', 'removed', 'dist-upgrade']), - type=dict(default='package', choices=['package', 'patch', 'pattern', 'product', 'srcpackage', 'application']), - extra_args_precommand=dict(), - disable_gpg_check=dict(default=False, type='bool'), - disable_recommends=dict(default=True, type='bool'), - force=dict(default=False, type='bool'), - force_resolution=dict(default=False, type='bool'), - update_cache=dict(aliases=['refresh'], default=False, type='bool'), - oldpackage=dict(default=False, type='bool'), - extra_args=dict(), - allow_vendor_change=dict(default=False, type='bool'), - replacefiles=dict(default=False, type='bool'), - clean_deps=dict(default=False, type='bool'), - simple_errors=dict(default=False, type='bool'), - quiet=dict(default=True, type='bool'), - skip_post_errors=dict(default=False, type='bool'), + state=dict(required=False, default='present', choices=['absent', 'installed', 'latest', 'present', 'removed', 'dist-upgrade']), + type=dict(required=False, default='package', choices=['package', 'patch', 'pattern', 'product', 'srcpackage', 'application']), + extra_args_precommand=dict(required=False, default=None), + disable_gpg_check=dict(required=False, default=False, type='bool'), + disable_recommends=dict(required=False, default=True, type='bool'), + force=dict(required=False, default=False, type='bool'), + force_resolution=dict(required=False, default=False, type='bool'), + update_cache=dict(required=False, aliases=['refresh'], default=False, type='bool'), + oldpackage=dict(required=False, default=False, type='bool'), + extra_args=dict(required=False, default=None), + allow_vendor_change=dict(required=False, default=False, type='bool'), + replacefiles=dict(required=False, default=False, type='bool'), + clean_deps=dict(required=False, default=False, type='bool'), + simple_errors=dict(required=False, default=False, type='bool'), + quiet=dict(required=False, default=True, type='bool'), + skip_post_errors=dict(required=False, default=False, type='bool'), ), supports_check_mode=True ) diff --git a/plugins/modules/zypper_repository.py b/plugins/modules/zypper_repository.py index e6beeca9a4..17de63bb6d 100644 --- a/plugins/modules/zypper_repository.py +++ b/plugins/modules/zypper_repository.py @@ -250,7 +250,7 @@ def repo_exists(module, repodata, overwrite_multiple): module.fail_json(msg=errmsg) -def addmodify_repo(module, repodata, old_repos, zypper_version): +def addmodify_repo(module, repodata, old_repos, zypper_version, warnings): "Adds the repo, removes old repos before, that would conflict." repo = repodata['url'] cmd = _get_cmd(module, 'addrepo', '--check') @@ -263,7 +263,7 @@ def addmodify_repo(module, repodata, old_repos, zypper_version): if zypper_version >= LooseVersion('1.12.25'): cmd.extend(['--priority', str(repodata['priority'])]) else: - module.warn("Setting priority only available for zypper >= 1.12.25. Ignoring priority argument.") + warnings.append("Setting priority only available for zypper >= 1.12.25. Ignoring priority argument.") if repodata['enabled'] == '0': cmd.append('--disable') @@ -277,7 +277,7 @@ def addmodify_repo(module, repodata, old_repos, zypper_version): else: cmd.append('--no-gpgcheck') else: - module.warn("Enabling/disabling gpgcheck only available for zypper >= 1.6.2. Using zypper default value.") + warnings.append("Enabling/disabling gpgcheck only available for zypper >= 1.6.2. Using zypper default value.") if repodata['autorefresh'] == '1': cmd.append('--refresh') @@ -326,17 +326,17 @@ def runrefreshrepo(module, auto_import_keys=False, shortname=None): def main(): module = AnsibleModule( argument_spec=dict( - name=dict(), - repo=dict(), + name=dict(required=False), + repo=dict(required=False), state=dict(choices=['present', 'absent'], default='present'), - runrefresh=dict(default=False, type='bool'), - description=dict(), - disable_gpg_check=dict(default=False, type='bool'), - autorefresh=dict(default=True, type='bool', aliases=['refresh']), - priority=dict(type='int'), - enabled=dict(default=True, type='bool'), - overwrite_multiple=dict(default=False, type='bool'), - auto_import_keys=dict(default=False, type='bool'), + runrefresh=dict(required=False, default=False, type='bool'), + description=dict(required=False), + disable_gpg_check=dict(required=False, default=False, type='bool'), + autorefresh=dict(required=False, default=True, type='bool', aliases=['refresh']), + priority=dict(required=False, type='int'), + enabled=dict(required=False, default=True, type='bool'), + overwrite_multiple=dict(required=False, default=False, type='bool'), + auto_import_keys=dict(required=False, default=False, type='bool'), ), supports_check_mode=False, required_one_of=[['state', 'runrefresh']], @@ -350,6 +350,7 @@ def main(): runrefresh = module.params['runrefresh'] zypper_version = get_zypper_version(module) + warnings = [] # collect warning messages for final output repodata = { 'url': repo, @@ -459,7 +460,7 @@ def main(): if runrefresh: runrefreshrepo(module, auto_import_keys, shortname) exit_unchanged() - rc, stdout, stderr = addmodify_repo(module, repodata, old_repos, zypper_version) + rc, stdout, stderr = addmodify_repo(module, repodata, old_repos, zypper_version, warnings) if rc == 0 and (runrefresh or auto_import_keys): runrefreshrepo(module, auto_import_keys, shortname) elif state == 'absent': @@ -468,9 +469,9 @@ def main(): rc, stdout, stderr = remove_repo(module, shortname) if rc == 0: - module.exit_json(changed=True, repodata=repodata, state=state) + module.exit_json(changed=True, repodata=repodata, state=state, warnings=warnings) else: - module.fail_json(msg="Zypper failed with rc %s" % rc, rc=rc, stdout=stdout, stderr=stderr, repodata=repodata, state=state) + module.fail_json(msg="Zypper failed with rc %s" % rc, rc=rc, stdout=stdout, stderr=stderr, repodata=repodata, state=state, warnings=warnings) if __name__ == '__main__': diff --git a/tests/integration/targets/android_sdk/tasks/setup.yml b/tests/integration/targets/android_sdk/tasks/setup.yml index 9965403367..8ded283533 100644 --- a/tests/integration/targets/android_sdk/tasks/setup.yml +++ b/tests/integration/targets/android_sdk/tasks/setup.yml @@ -15,7 +15,6 @@ files: - '{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml' - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml' - - '{{ ansible_distribution }}.yml' - '{{ ansible_os_family }}.yml' paths: - '{{ role_path }}/vars' diff --git a/tests/integration/targets/android_sdk/vars/Fedora.yml b/tests/integration/targets/android_sdk/vars/Fedora.yml deleted file mode 100644 index e48443f0b5..0000000000 --- a/tests/integration/targets/android_sdk/vars/Fedora.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# Copyright (c) Ansible Project -# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) -# SPDX-License-Identifier: GPL-3.0-or-later - -openjdk_pkg: java-21-openjdk-headless diff --git a/tests/integration/targets/android_sdk/vars/RedHat-9.yml b/tests/integration/targets/android_sdk/vars/RedHat-9.yml deleted file mode 100644 index e48443f0b5..0000000000 --- a/tests/integration/targets/android_sdk/vars/RedHat-9.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# Copyright (c) Ansible Project -# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) -# SPDX-License-Identifier: GPL-3.0-or-later - -openjdk_pkg: java-21-openjdk-headless diff --git a/tests/integration/targets/apache2_module/tasks/actualtest.yml b/tests/integration/targets/apache2_module/tasks/actualtest.yml index 88e063fe92..5bf66db9fb 100644 --- a/tests/integration/targets/apache2_module/tasks/actualtest.yml +++ b/tests/integration/targets/apache2_module/tasks/actualtest.yml @@ -186,7 +186,7 @@ - name: ensure configcheck fails task with when run without mpm modules assert: that: - - item is failed + - "{{ item.failed }}" with_items: "{{ remove_with_configcheck.results }}" - name: try to disable all mpm modules without configcheck diff --git a/tests/integration/targets/apk/tasks/main.yml b/tests/integration/targets/apk/tasks/main.yml index b8e0e2efbe..0e1b0ae429 100644 --- a/tests/integration/targets/apk/tasks/main.yml +++ b/tests/integration/targets/apk/tasks/main.yml @@ -158,64 +158,3 @@ that: - results is not changed - (results.packages | default([]) | length) == 0 - - - name: Install package with empty name - community.general.apk: - name: "" - register: result_empty - ignore_errors: true - - - name: Assert failure due to empty package name - ansible.builtin.assert: - that: - - result_empty is failed - - "'Package name(s) cannot be empty or whitespace-only' == result_empty.msg" - - - name: Install package name with only spaces - community.general.apk: - name: [" "] - register: result_spaces - ignore_errors: true - - - name: Assert failure due to whitespace-only package name - ansible.builtin.assert: - that: - - result_spaces is failed - - "'Package name(s) cannot be empty or whitespace-only' == result_spaces.msg" - - - name: Do not accept list with valid and empty string - community.general.apk: - name: ["busybox", ""] - register: result_invalid_mixed - ignore_errors: true - - - name: Assert failure with mixed package list - ansible.builtin.assert: - that: - - result_invalid_mixed is failed - - "'Package name(s) cannot be empty or whitespace-only' == result_invalid_mixed.msg" - - - name: Reject package name list with multiple empty/whitespace-only strings - community.general.apk: - name: ["", " "] - register: result_multiple_empty - ignore_errors: true - - - name: Assert failure due to all package names being empty or whitespace - ansible.builtin.assert: - that: - - result_multiple_empty is failed - - "'Package name(s) cannot be empty or whitespace-only' == result_multiple_empty.msg" - - - name: Reject empty package name with update_cache parameter - community.general.apk: - name: "" - update_cache: true - register: result_empty_package_with_update_cache - ignore_errors: true - - - name: Assert failure due to all package names being empty or whitespace - ansible.builtin.assert: - that: - - result_empty_package_with_update_cache is failed - - "'Package name(s) cannot be empty or whitespace-only' == result_empty_package_with_update_cache.msg" diff --git a/tests/integration/targets/callback_diy/tasks/main.yml b/tests/integration/targets/callback_diy/tasks/main.yml index f1d0c65a5d..9520ac5d55 100644 --- a/tests/integration/targets/callback_diy/tasks/main.yml +++ b/tests/integration/targets/callback_diy/tasks/main.yml @@ -443,63 +443,3 @@ - "" - "PLAY RECAP *********************************************************************" - "testhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 " - - - name: Set on_any_msg - environment: - ANSIBLE_NOCOLOR: 'true' - ANSIBLE_FORCE_COLOR: 'false' - ANSIBLE_STDOUT_CALLBACK: community.general.diy - ANSIBLE_CALLBACK_DIY_ON_ANY_MSG: foo - playbook: !unsafe | - - hosts: testhost - gather_facts: false - tasks: - - name: A loop - debug: - msg: "{{ item }}" - loop: - - 1 - - 2 - - name: Sample task name - debug: - msg: sample debug msg - - name: Skipped task - command: ls / - when: false - expected_output: - - "foo" - - "" - - "PLAY [testhost] ****************************************************************" - - "foo" - - "" - - "TASK [A loop] ******************************************************************" - - "foo" - - "foo" - - "ok: [testhost] => (item=1) => {" - - " \"msg\": 1" - - "}" - - "foo" - - "ok: [testhost] => (item=2) => {" - - " \"msg\": 2" - - "}" - - "foo" - - "foo" - - "" - - "TASK [Sample task name] ********************************************************" - - "foo" - - "foo" - - "ok: [testhost] => {" - - " \"msg\": \"sample debug msg\"" - - "}" - - "foo" - - "" - - "TASK [Skipped task] ************************************************************" - - "foo" - - "foo" - - "skipping: [testhost]" - - "foo" - - "" - - "PLAY RECAP *********************************************************************" - - "testhost : ok=2 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 " - - "" - - "foo" diff --git a/tests/integration/targets/cronvar/tasks/main.yml b/tests/integration/targets/cronvar/tasks/main.yml index 0d3ae30daf..73ec41abca 100644 --- a/tests/integration/targets/cronvar/tasks/main.yml +++ b/tests/integration/targets/cronvar/tasks/main.yml @@ -122,36 +122,3 @@ - custom_varcheck1.stdout == '1' - custom_varcheck2.stdout == '1' - custom_varcheck3.stdout == '0' - - -- name: Add variable with empty string - community.general.cronvar: - name: EMPTY_VAR - value: "" - state: present - -- name: Assert empty var present - ansible.builtin.shell: crontab -l - register: result - changed_when: false - -- name: Assert line is quoted - ansible.builtin.assert: - that: >- - 'EMPTY_VAR=""' in result.stdout - -- name: Attempt to add cron variable to non-existent parent directory - cronvar: - name: NOPARENT_VAR - value: noparentval - cron_file: /nonexistent/foo - user: root - register: invalid_directory_cronvar_result - ignore_errors: true - -- name: Assert that the cronvar task failed due to invalid directory - ansible.builtin.assert: - that: - - invalid_directory_cronvar_result is failed - - >- - "Parent directory '/nonexistent' does not exist for cron_file: '/nonexistent/foo'" == invalid_directory_cronvar_result.msg diff --git a/tests/integration/targets/decompress/tasks/dest.yml b/tests/integration/targets/decompress/tasks/dest.yml index 4afd39e7b3..9a7bbe499f 100644 --- a/tests/integration/targets/decompress/tasks/dest.yml +++ b/tests/integration/targets/decompress/tasks/dest.yml @@ -34,8 +34,7 @@ - name: Test that file exists assert: - that: - - item.stat.exists + that: "{{ item.stat.exists }}" quiet: true loop: "{{ result_files_stat.results }}" loop_control: diff --git a/tests/integration/targets/django_command/aliases b/tests/integration/targets/django_command/aliases index c14251f85e..a742f24fea 100644 --- a/tests/integration/targets/django_command/aliases +++ b/tests/integration/targets/django_command/aliases @@ -20,5 +20,4 @@ skip/rhel9.2 skip/rhel9.3 skip/rhel9.4 skip/rhel9.5 -skip/rhel9.6 skip/rhel10.0 diff --git a/tests/integration/targets/django_manage/aliases b/tests/integration/targets/django_manage/aliases index c14251f85e..a742f24fea 100644 --- a/tests/integration/targets/django_manage/aliases +++ b/tests/integration/targets/django_manage/aliases @@ -20,5 +20,4 @@ skip/rhel9.2 skip/rhel9.3 skip/rhel9.4 skip/rhel9.5 -skip/rhel9.6 skip/rhel10.0 diff --git a/tests/integration/targets/filter_jc/aliases b/tests/integration/targets/filter_jc/aliases index 978a58095d..62fbc2daba 100644 --- a/tests/integration/targets/filter_jc/aliases +++ b/tests/integration/targets/filter_jc/aliases @@ -8,4 +8,3 @@ skip/freebsd13.3 # FIXME - ruyaml compilation fails skip/freebsd14.0 # FIXME - ruyaml compilation fails skip/freebsd14.1 # FIXME - ruyaml compilation fails skip/freebsd14.2 # FIXME - ruyaml compilation fails -skip/freebsd14.3 # FIXME - ruyaml compilation fails diff --git a/tests/integration/targets/filter_json_query/tasks/main.yml b/tests/integration/targets/filter_json_query/tasks/main.yml index 0195ddb5dd..92db6d876a 100644 --- a/tests/integration/targets/filter_json_query/tasks/main.yml +++ b/tests/integration/targets/filter_json_query/tasks/main.yml @@ -11,23 +11,4 @@ - name: Test json_query filter assert: that: - - >- - users | community.general.json_query('[*].hosts[].host') == ['host_a', 'host_b', 'host_c', 'host_d'] - - >- - ports | json_query("[?contains(ports, `22`)]") == [ports[0]] - - >- - ports | json_query("[?contains(rule_desc, `ssh`)]") == [ports[0]] - - >- - my_complex_data | json_query('users[?id==`1`]') == [my_complex_data['users'][0]] - vars: - my_complex_data: - users: - - id: 1 - name: Alice - roles: ["admin", "dev"] - status: active - ports: - - ports: [22] - rule_desc: "ssh" - - ports: [80] - rule_desc: "http" + - "users | community.general.json_query('[*].hosts[].host') == ['host_a', 'host_b', 'host_c', 'host_d']" diff --git a/tests/integration/targets/homectl/aliases b/tests/integration/targets/homectl/aliases index 3621858566..3e4ed8c114 100644 --- a/tests/integration/targets/homectl/aliases +++ b/tests/integration/targets/homectl/aliases @@ -13,5 +13,4 @@ skip/rhel9.2 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/ skip/rhel9.3 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/ skip/rhel9.4 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/ skip/rhel9.5 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/ -skip/rhel9.6 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/ skip/rhel10.0 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/ diff --git a/tests/integration/targets/iso_extract/aliases b/tests/integration/targets/iso_extract/aliases index 00569608e0..2c58f9253e 100644 --- a/tests/integration/targets/iso_extract/aliases +++ b/tests/integration/targets/iso_extract/aliases @@ -13,7 +13,6 @@ skip/rhel9.2 # FIXME skip/rhel9.3 # FIXME skip/rhel9.4 # FIXME skip/rhel9.5 # FIXME -skip/rhel9.6 # FIXME skip/rhel10.0 # FIXME skip/freebsd12.4 # FIXME skip/freebsd13.2 # FIXME @@ -23,4 +22,3 @@ skip/freebsd13.5 # FIXME skip/freebsd14.0 # FIXME skip/freebsd14.1 # FIXME skip/freebsd14.2 # FIXME -skip/freebsd14.3 # FIXME diff --git a/tests/integration/targets/ldap_search/tasks/tests/schema.yml b/tests/integration/targets/ldap_search/tasks/tests/schema.yml index ca26305b82..63dd3fdf68 100644 --- a/tests/integration/targets/ldap_search/tasks/tests/schema.yml +++ b/tests/integration/targets/ldap_search/tasks/tests/schema.yml @@ -22,5 +22,4 @@ that: - output is not failed - output.results | length >= 1 - - >- - 'displayName' in output.results.0.attrs + - "{{ 'displayName' in output.results.0.attrs }}" diff --git a/tests/integration/targets/listen_ports_facts/tasks/main.yml b/tests/integration/targets/listen_ports_facts/tasks/main.yml index 5da5b03784..0e583e7a13 100644 --- a/tests/integration/targets/listen_ports_facts/tasks/main.yml +++ b/tests/integration/targets/listen_ports_facts/tasks/main.yml @@ -110,32 +110,3 @@ loop: "{{ [tcp_listen, udp_listen]|flatten }}" when: item.name == 'nc' ignore_errors: true - - -- when: ansible_os_family == "Debian" - block: - - name: Remove netstat and ss dependencies to simulate missing executables - ansible.builtin.package: - name: - - net-tools - - iproute2 - state: absent - ignore_errors: true - - - name: Trigger listen_ports_facts with missing tools - community.general.listen_ports_facts: - register: listen_ports_failure_result - ignore_errors: true - - - name: Assert graceful failure when dependencies are missing - ansible.builtin.assert: - that: - - listen_ports_failure_result is failed - - "'Unable to find any of the supported commands' in listen_ports_failure_result.msg" - - - name: Reinstall netstat and ss dependencies after test - ansible.builtin.package: - name: - - net-tools - - iproute2 - state: present diff --git a/tests/integration/targets/lvg/aliases b/tests/integration/targets/lvg/aliases index eb76529397..cbe489d88b 100644 --- a/tests/integration/targets/lvg/aliases +++ b/tests/integration/targets/lvg/aliases @@ -11,4 +11,3 @@ skip/freebsd skip/osx skip/macos skip/alpine3.21 # TODO try to fix -skip/alpine3.22 # TODO try to fix diff --git a/tests/integration/targets/odbc/aliases b/tests/integration/targets/odbc/aliases index ee15fde5bb..3802d30f87 100644 --- a/tests/integration/targets/odbc/aliases +++ b/tests/integration/targets/odbc/aliases @@ -13,6 +13,5 @@ skip/rhel9.2 skip/rhel9.3 skip/rhel9.4 skip/rhel9.5 -skip/rhel9.6 skip/rhel10.0 skip/freebsd diff --git a/tests/integration/targets/pkgng/tasks/freebsd.yml b/tests/integration/targets/pkgng/tasks/freebsd.yml index b51ad836bd..2dcd7b02a8 100644 --- a/tests/integration/targets/pkgng/tasks/freebsd.yml +++ b/tests/integration/targets/pkgng/tasks/freebsd.yml @@ -534,14 +534,12 @@ # # NOTE: FreeBSD 14.2 fails as well (someone with FreeBSD knowledge has to take a look) # - # NOTE: FreeBSD 14.3 fails as well (someone with FreeBSD knowledge has to take a look) - # # See also # https://github.com/ansible-collections/community.general/issues/5795 when: >- (ansible_distribution_version is version('12.01', '>=') and ansible_distribution_version is version('12.3', '<')) or (ansible_distribution_version is version('13.6', '>=') and ansible_distribution_version is version('14.0', '<')) - or ansible_distribution_version is version('14.4', '>=') + or ansible_distribution_version is version('14.3', '>=') block: - name: Setup testjail include_tasks: setup-testjail.yml diff --git a/tests/integration/targets/setup_java_keytool/tasks/main.yml b/tests/integration/targets/setup_java_keytool/tasks/main.yml index 56ba7a9581..9f156425d8 100644 --- a/tests/integration/targets/setup_java_keytool/tasks/main.yml +++ b/tests/integration/targets/setup_java_keytool/tasks/main.yml @@ -22,7 +22,6 @@ files: - '{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml' - '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml' - - '{{ ansible_distribution }}.yml' - '{{ ansible_os_family }}.yml' paths: - '{{ role_path }}/vars' diff --git a/tests/integration/targets/setup_java_keytool/vars/Fedora.yml b/tests/integration/targets/setup_java_keytool/vars/Fedora.yml deleted file mode 100644 index 5f77ea9bba..0000000000 --- a/tests/integration/targets/setup_java_keytool/vars/Fedora.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -# Copyright (c) Ansible Project -# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) -# SPDX-License-Identifier: GPL-3.0-or-later - -keytool_package_names: - - java-21-openjdk-headless diff --git a/tests/integration/targets/setup_snap/tasks/D-RedHat-9.3.yml b/tests/integration/targets/setup_snap/tasks/D-RedHat-9.3.yml deleted file mode 120000 index 0b06951496..0000000000 --- a/tests/integration/targets/setup_snap/tasks/D-RedHat-9.3.yml +++ /dev/null @@ -1 +0,0 @@ -nothing.yml \ No newline at end of file diff --git a/tests/integration/targets/setup_snap/tasks/D-RedHat-9.3.yml b/tests/integration/targets/setup_snap/tasks/D-RedHat-9.3.yml new file mode 100644 index 0000000000..5bbfaff128 --- /dev/null +++ b/tests/integration/targets/setup_snap/tasks/D-RedHat-9.3.yml @@ -0,0 +1,6 @@ +--- +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +# Do nothing diff --git a/tests/integration/targets/setup_snap/tasks/D-RedHat-9.5.yml b/tests/integration/targets/setup_snap/tasks/D-RedHat-9.5.yml deleted file mode 120000 index 0b06951496..0000000000 --- a/tests/integration/targets/setup_snap/tasks/D-RedHat-9.5.yml +++ /dev/null @@ -1 +0,0 @@ -nothing.yml \ No newline at end of file diff --git a/tests/integration/targets/setup_snap/tasks/D-RedHat-9.5.yml b/tests/integration/targets/setup_snap/tasks/D-RedHat-9.5.yml new file mode 100644 index 0000000000..5bbfaff128 --- /dev/null +++ b/tests/integration/targets/setup_snap/tasks/D-RedHat-9.5.yml @@ -0,0 +1,6 @@ +--- +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +# Do nothing diff --git a/tests/integration/targets/setup_snap/tasks/D-RedHat-9.6.yml b/tests/integration/targets/setup_snap/tasks/D-RedHat-9.6.yml deleted file mode 120000 index 0b06951496..0000000000 --- a/tests/integration/targets/setup_snap/tasks/D-RedHat-9.6.yml +++ /dev/null @@ -1 +0,0 @@ -nothing.yml \ No newline at end of file diff --git a/tests/integration/targets/sysrc/files/10394.conf b/tests/integration/targets/sysrc/files/10394.conf deleted file mode 100644 index fe0bc5b145..0000000000 --- a/tests/integration/targets/sysrc/files/10394.conf +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) Ansible Project -# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) -# SPDX-License-Identifier: GPL-3.0-or-later -k1="v1" -jail_list=" - foo - bar" \ No newline at end of file diff --git a/tests/integration/targets/sysrc/tasks/main.yml b/tests/integration/targets/sysrc/tasks/main.yml index f1135d488f..549a1b8387 100644 --- a/tests/integration/targets/sysrc/tasks/main.yml +++ b/tests/integration/targets/sysrc/tasks/main.yml @@ -369,79 +369,14 @@ - "value_2 == sysrc_equals_sign_2.value" - "value_2 == conf.spamd_flags" - ## - ## sysrc - #10004 state=absent when using default settings will report `changed=true` - ## - - name: Test that a key from /etc/defaults/rc.conf is not used to mark changed - sysrc: - name: dumpdev - state: absent - path: /tmp/10004.conf - register: sysrc_10004_absent - failed_when: sysrc_10004_absent.changed - - - name: Test that a delimited key from /etc/defaults/rc.conf is not used to mark changed - sysrc: - name: rc_conf_files - state: value_absent - path: /tmp/10004.conf - register: sysrc_10004_value_absent - failed_when: sysrc_10004_value_absent.changed - - - name: Test that a key from /etc/defaults/rc.conf is not used to mark changed without a path - sysrc: - name: static_routes - state: absent - register: sysrc_absent_default - failed_when: sysrc_absent_default.changed - - ## - ## sysrc - #10394 Ensure that files with multi-line values work - ## - - name: Copy 10394.conf - copy: - src: 10394.conf - dest: /tmp/10394.conf - - - name: Change value for k1 - sysrc: - name: k1 - value: v2 - path: /tmp/10394.conf - register: sysrc_10394_changed - - - name: Get file content - shell: "cat /tmp/10394.conf" - register: sysrc_10394_content - - - name: Ensure sysrc changed k1 from v1 to v2 - assert: - that: - - sysrc_10394_changed.changed - - > - 'k1="v2"' in sysrc_10394_content.stdout_lines - - ## - ## sysrc - additional tests - ## - - name: Ensure failure on OID style name since sysrc does not support them - sysrc: - name: not.valid.var - value: test - register: sysrc_name_check - failed_when: - - sysrc_name_check is not failed - - > - 'Name may only contain alpha-numeric and underscore characters' != sysrc_name_check.msg - always: - name: Restore /etc/rc.conf copy: - content: "{{ cached_etc_rcconf_content.stdout }}" + content: "{{ cached_etc_rcconf_content }}" dest: /etc/rc.conf - name: Restore /boot/loader.conf copy: - content: "{{ cached_boot_loaderconf_content.stdout }}" + content: "{{ cached_boot_loaderconf_content }}" dest: /boot/loader.conf diff --git a/tests/integration/targets/ufw/aliases b/tests/integration/targets/ufw/aliases index 07227edc3f..0d89cc8fea 100644 --- a/tests/integration/targets/ufw/aliases +++ b/tests/integration/targets/ufw/aliases @@ -15,7 +15,6 @@ skip/rhel9.2 # FIXME skip/rhel9.3 # FIXME skip/rhel9.4 # FIXME skip/rhel9.5 # FIXME -skip/rhel9.6 # FIXME skip/rhel10.0 # FIXME skip/docker needs/root diff --git a/tests/integration/targets/zpool/aliases b/tests/integration/targets/zpool/aliases index 083656f786..80743b7cb5 100644 --- a/tests/integration/targets/zpool/aliases +++ b/tests/integration/targets/zpool/aliases @@ -12,4 +12,3 @@ skip/osx skip/macos skip/rhel skip/docker -skip/alpine # TODO: figure out what goes wrong diff --git a/tests/unit/plugins/connection/test_wsl.py b/tests/unit/plugins/connection/test_wsl.py index c28d1fbec9..8b0d6cdd5b 100644 --- a/tests/unit/plugins/connection/test_wsl.py +++ b/tests/unit/plugins/connection/test_wsl.py @@ -12,6 +12,7 @@ from ansible_collections.community.general.plugins.connection.wsl import authent from ansible_collections.community.general.plugins.module_utils._filelock import FileLock, LockTimeout from ansible.errors import AnsibleError, AnsibleAuthenticationFailure, AnsibleConnectionFailure from ansible.module_utils.common.text.converters import to_bytes +from ansible.module_utils.compat.paramiko import paramiko from ansible.playbook.play_context import PlayContext from ansible.plugins.loader import connection_loader from io import StringIO @@ -19,9 +20,6 @@ from pathlib import Path from ansible_collections.community.internal_test_tools.tests.unit.compat.mock import patch, MagicMock, mock_open -paramiko = pytest.importorskip('paramiko') - - @pytest.fixture def connection(): play_context = PlayContext() diff --git a/tests/unit/plugins/modules/test_github_repo.py b/tests/unit/plugins/modules/test_github_repo.py index 9a76fc4b69..846f766723 100644 --- a/tests/unit/plugins/modules/test_github_repo.py +++ b/tests/unit/plugins/modules/test_github_repo.py @@ -7,15 +7,11 @@ __metaclass__ = type import re import json -import pytest from httmock import with_httmock, urlmatch, response from ansible_collections.community.internal_test_tools.tests.unit.compat import unittest from ansible_collections.community.general.plugins.modules import github_repo -pytest.importorskip('github') - - @urlmatch(netloc=r'.*') def debug_mock(url, request): print(request.original.__dict__) diff --git a/tests/unit/plugins/modules/test_lxca_cmms.py b/tests/unit/plugins/modules/test_lxca_cmms.py index 3c79148022..888a6c8d52 100644 --- a/tests/unit/plugins/modules/test_lxca_cmms.py +++ b/tests/unit/plugins/modules/test_lxca_cmms.py @@ -61,8 +61,8 @@ class TestMyModule(): command_options=dict(default='cmms', choices=['cmms', 'cmms_by_uuid', 'cmms_by_chassis_uuid']), auth_url=dict(required=True), - uuid=dict(), - chassis=dict(), + uuid=dict(default=None), + chassis=dict(default=None), ) _setup_conn.return_value = "Fake connection" _execute_module.return_value = [] diff --git a/tests/unit/plugins/modules/test_lxca_nodes.py b/tests/unit/plugins/modules/test_lxca_nodes.py index 1f8ab84368..98c8a551d4 100644 --- a/tests/unit/plugins/modules/test_lxca_nodes.py +++ b/tests/unit/plugins/modules/test_lxca_nodes.py @@ -63,8 +63,8 @@ class TestMyModule(): 'nodes_status_managed', 'nodes_status_unmanaged']), auth_url=dict(required=True), - uuid=dict(), - chassis=dict(), + uuid=dict(default=None), + chassis=dict(default=None), ) _setup_conn.return_value = "Fake connection" _execute_module.return_value = [] diff --git a/tests/unit/requirements.txt b/tests/unit/requirements.txt index 765c70af0a..fdcf99cbb4 100644 --- a/tests/unit/requirements.txt +++ b/tests/unit/requirements.txt @@ -52,8 +52,7 @@ python-nomad < 2.0.0 ; python_version <= '3.6' python-nomad >= 2.0.0 ; python_version >= '3.7' # requirement for jenkins_build, jenkins_node, jenkins_plugin modules -python-jenkins < 1.8.0 ; python_version < '3.8' -python-jenkins >= 0.4.12 ; python_version >= '3.8' +python-jenkins >= 0.4.12 # requirement for json_patch, json_patch_recipe and json_patch plugins jsonpatch