Compare commits

...

87 Commits

Author SHA1 Message Date
Felix Fontein
25a17e7b6e Release 10.7.4. 2025-09-08 18:57:25 +02:00
Felix Fontein
dc92cda736 Prepare 10.7.4. 2025-09-04 07:10:29 +02:00
patchback[bot]
ee895080fb [PR #10638/07ce0041 backport][stable-10] CI: Add Debian 13 Trixie (#10780)
CI: Add Debian 13 Trixie (#10638)

* Add Debian 13 Trixie to CI.

* Add adjustments.

* Disable one apache2_module test for Debian 13.

* Disable ejabberd_user test on Debian 13.

* Fix paramiko install.

* Skip cloud_init_data_facts on Debian 13.

* Fix postgresql setup.

* Fix timezone tests.

(cherry picked from commit 07ce00417d)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-31 16:49:56 +02:00
patchback[bot]
5436a0c602 [PR #10770/3cc4f28f backport][stable-10] minor fixes in doc guides (#10776)
minor fixes in doc guides (#10770)

(cherry picked from commit 3cc4f28fd7)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-08-31 12:10:44 +02:00
patchback[bot]
6b59a3c1f6 [PR #10752/f6003f61 backport][stable-10] selective: don't hard code ansible_loop_var 'item' (#10763)
selective: don't hard code ansible_loop_var 'item' (#10752)

* selective: don't hard code ansible_loop_var 'item'

* Add changelog fragment

* Update changelog message



---------


(cherry picked from commit f6003f61cc)

Co-authored-by: Hoang Nguyen <folliekazetani@protonmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-29 07:06:42 +02:00
patchback[bot]
02fa9106c6 [PR #10751/d6ad9beb backport][stable-10] kdeconfig: add support for kwriteconfig6 (#10761)
kdeconfig: add support for kwriteconfig6 (#10751)

* kdeconfig: add support for kwriteconfig6

Rationale:
With a minimal install of KDE Plasma 6, the kdeconfig module would systematically fail with the following error: `kwriteconfig is not installed.`
In this configuration, kwriteconfig6 is the only version of kwriteconfig installed, and the kdeconfig module did not not find it.

Fixes #10746

* Add changelog fragment

* Update changelogs/fragments/10751-kdeconfig-support-kwriteconfig6.yml



---------


(cherry picked from commit d6ad9beb58)

Co-authored-by: Thibault Geoffroy <33561374+nebularnoise@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-29 07:00:00 +02:00
patchback[bot]
94699318e2 [PR #10743/469e557b backport][stable-10] monit: handle arbitrary error status (#10759)
monit: handle arbitrary error status (#10743)

* handle arbitrary error status

* add changelog fragment

* mock module in test

* Update changelogs/fragments/10743-monit-handle-unknown-status.yml



---------


(cherry picked from commit 469e557b95)

Co-authored-by: Simon Kelly <skelly@dimagi.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-28 22:18:02 +02:00
patchback[bot]
0dab7c8f3b [PR #10755/9d0866bf backport][stable-10] Add ignores necessary for ansible-core 2.20 (#10756)
* Add ignores necessary for ansible-core 2.20 (#10755)

Add ignores necessary for ansible-core 2.20 if Python 2.7 is still supported by the collection.

(cherry picked from commit 9d0866bfb8)

* Add missing ignore.

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-28 21:56:44 +02:00
patchback[bot]
e29c1fe51f [PR #10732/5ee02297 backport][stable-10] ssh_config tests: remove paramiko version restriction (#10734)
ssh_config tests: remove paramiko version restriction (#10732)

Remove paramiko version restriction for ssh_config tests.

(cherry picked from commit 5ee02297b0)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-25 07:26:00 +02:00
patchback[bot]
196f9b1bac [PR #10728/82b37bdb backport][stable-10] pacman: re-enable yay test (#10730)
pacman: re-enable yay test (#10728)

Re-enable yay test.

(cherry picked from commit 82b37bdb56)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-25 06:57:37 +02:00
patchback[bot]
4f6f4b343f [PR #10706/5eab0f24 backport][stable-10] CI: Remove no longer necessary constraints (#10722)
CI: Remove no longer necessary constraints (#10706)

Remove no longer necessary constraints.

(cherry picked from commit 5eab0f2419)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-23 19:24:19 +02:00
patchback[bot]
6d75ac4fb3 [PR #10701/3b9acafc backport][stable-10] update requirements for Python versions currently used (#10702)
update requirements for Python versions currently used (#10701)

(cherry picked from commit 3b9acafc72)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-08-19 07:14:03 +02:00
patchback[bot]
eca2094831 [PR #10695/6827680c backport][stable-10] build(deps): bump actions/checkout from 4 to 5 in the ci group (#10697)
build(deps): bump actions/checkout from 4 to 5 in the ci group (#10695)

Bumps the ci group with 1 update: [actions/checkout](https://github.com/actions/checkout).

Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
...



(cherry picked from commit 6827680cda)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-18 18:27:59 +02:00
Felix Fontein
8a6fb28296 [stable-10] ansible-core 2.20: avoid deprecated functionality (#10687) (#10694)
ansible-core 2.20: avoid deprecated functionality (#10687)

Avoid deprecated functionality.

(cherry picked from commit 47e8a3c193)
2025-08-18 05:18:40 +00:00
patchback[bot]
6d94f0acbe [PR #10688/ceba0cbe backport][stable-10] pids: avoid type error if name is empty (#10691)
pids: avoid type error if name is empty (#10688)

Avoid type error if name is empty.

(cherry picked from commit ceba0cbedb)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-18 06:41:22 +02:00
patchback[bot]
ce05de750e [PR #10617/c84f16c5 backport][stable-10] scaleway_lb: fix RETURN docs (#10685)
scaleway_lb: fix RETURN docs (#10617)

* scaleway_lb: fix RETURN docs

* remove outer dict from sample content

(cherry picked from commit c84f16c5e9)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-08-17 17:28:37 +02:00
patchback[bot]
31f1b9a7c7 [PR #10423/735a066d backport][stable-10] apache2_module: updated cgi action conditions (#10681)
apache2_module: updated cgi action conditions (#10423)

* apache2_module: updated cgi action conditions

Only the activation of the cgi module in threaded mode should be a
restriction due to apache2 limitations, not the deactivation.
Especially when the cgi module isn't enabled yet at all. Fixes #9140

* bug(fix): apache2_module fails to disable cgi module

* Update changelog fragment.

---------


(cherry picked from commit 735a066d92)

Co-authored-by: Daniel Hoffend <dh@dotlan.net>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-17 13:12:52 +02:00
patchback[bot]
46790b3dcb [PR #10674/dfc2a54d backport][stable-10] pacman: temporary disable yay test (#10677)
pacman: temporary disable yay test (#10674)

Temporary disable pacman yay test.

(cherry picked from commit dfc2a54d16)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-15 21:03:32 +02:00
patchback[bot]
41aa6bc450 [PR #10668/d84d2397 backport][stable-10] ipa_*: adjust common connection notes to modules (#10670)
ipa_*: adjust common connection notes to modules (#10668)

(cherry picked from commit d84d2397b9)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-08-15 20:14:12 +02:00
patchback[bot]
15b0eb155b [PR #10657/3c0d6074 backport][stable-10] jc filter: remove skips for FreeBSD (#10658)
jc filter: remove skips for FreeBSD (#10657)

(cherry picked from commit 3c0d60740c)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-08-12 09:58:14 +02:00
patchback[bot]
169b65b43e [PR #10653/eb5708a1 backport][stable-10] CI: Make sure to install Java in Debian Bullseye (#10655)
CI: Make sure to install Java in Debian Bullseye (#10653)

Make sure to install Java in Debian Bullseye.

(cherry picked from commit eb5708a125)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-12 01:21:32 +02:00
Felix Fontein
f71f8e608d The next release will be 10.7.4. 2025-08-11 22:25:36 +02:00
Felix Fontein
fb6f4760ae Release 10.7.3. 2025-08-11 21:36:00 +02:00
patchback[bot]
ae041e56c6 [PR #10649/bc90635e backport][stable-10] pipx examples and tests: fix terminology (#10650)
pipx examples and tests: fix terminology (#10649)

Fix terminology.

(cherry picked from commit bc90635e66)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-11 21:17:21 +02:00
patchback[bot]
b3fecf0b6f [PR #10615/993e3a73 backport][stable-10] ipa_*: add common connection notes to modules (#10640)
ipa_*: add common connection notes to modules (#10615)

* ipa_*: add common connection notes to modules

* Update plugins/doc_fragments/ipa.py



* Update plugins/doc_fragments/ipa.py



---------


(cherry picked from commit 993e3a736e)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-11 07:18:04 +02:00
patchback[bot]
59e8eca4c8 [PR #10618/4e8a6c03 backport][stable-10] infinity: improve RV descriptions (#10623)
infinity: improve RV descriptions (#10618)

(cherry picked from commit 4e8a6c03dd)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-08-10 13:48:12 +02:00
patchback[bot]
e95a3b5215 [PR #10570/c7e18306 backport][stable-10] CI: python-jenkins 1.8.3 fails to import on Python 2.7 (#10571)
CI: python-jenkins 1.8.3 fails to import on Python 2.7 (#10570)

python-jenkins 1.8.3 fails to import on Python 2.7.

(cherry picked from commit c7e18306fb)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-03 14:13:20 +02:00
patchback[bot]
235a851350 [PR #10566/14f706c5 backport][stable-10] merge_variables lookup: avoid deprecated Templar.set_temporary_context (#10568)
merge_variables lookup: avoid deprecated Templar.set_temporary_context (#10566)

Avoid deprecated Templar.set_temporary_context.

(cherry picked from commit 14f706c5dd)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-03 13:08:48 +02:00
patchback[bot]
5584998e0e [PR #10550/ac4aca20 backport][stable-10] diy callback: add test for on_any_msg (#10551)
diy callback: add test for on_any_msg (#10550)

Add test for on_any_msg.

(cherry picked from commit ac4aca2004)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-02 17:30:47 +02:00
patchback[bot]
8b259f8bc1 [PR #10539/3de073fb backport][stable-10] json_query: extend list of type aliases for compatibility with ansible-core 2.19 (#10559)
json_query: extend list of type aliases for compatibility with ansible-core 2.19 (#10539)

* Extend list of type aliases for json_query.

* Improve tests.



---------


(cherry picked from commit 3de073fb6f)

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
2025-08-02 17:30:26 +02:00
patchback[bot]
24789f86fa [PR #10532/abfe1e61 backport][stable-10] apk: fix empty/whitespace-only package name check (#10555)
apk: fix empty/whitespace-only package name check (#10532)

* Fix empty/whitespace-only package name check.

* Adjust test.

(cherry picked from commit abfe1e6180)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-02 17:30:19 +02:00
patchback[bot]
ddbfbcb47e [PR #10455/bd84f654 backport][stable-10] Improve capabilities module by detecting /sbin/getcap error message and stop early with a meaningful error message (#10562)
Improve capabilities module by detecting /sbin/getcap error message and stop early with a meaningful error message (#10455)

* modules/capabilities.py: fail & propagate if getcap command error

* Fix comment spacing (pep8)

* Add changelogs fragment for PR 10455

* Update changelogs/fragments/10455-capabilities-improve-error-detection.yml



---------



(cherry picked from commit bd84f65456)

Co-authored-by: hakril <github@hakril.net>
Co-authored-by: clement rouault <clement.rouault@exatrack.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-02 17:30:10 +02:00
Felix Fontein
69563766ec [stable-10] Disable pipelining for doas and machinectl on ansible-core 2.19+ (#10537) (#10561)
Disable pipelining for doas and machinectl on ansible-core 2.19+ (#10537)

Disable pipelining for doas and machinectl.

(cherry picked from commit 9a29622584)
2025-08-02 17:29:52 +02:00
Felix Fontein
4c7f64b121 [stable-10] Backport fixes from community.proxmox (#10553)
* Import paramiko directly.

8f90ab075c

* Remove deprecated disable_lookups parameter.

c0fc31241b
2025-08-02 17:29:42 +02:00
patchback[bot]
1e397ace75 [PR #10543/7298f25f backport][stable-10] Fix no longer valid constructs in tests (#10546)
Fix no longer valid constructs in tests (#10543)

Fix no longer valid constructs in tests.

(cherry picked from commit 7298f25fe0)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-02 09:04:34 +02:00
patchback[bot]
71349d7e1d [PR #10531/d0b0aff5 backport][stable-10] wsl connection: import paramiko directly (#10533)
wsl connection: import paramiko directly (#10531)

Import paramiko directly.

(cherry picked from commit d0b0aff5bc)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-08-01 11:18:47 +02:00
patchback[bot]
19de563a1d [PR #10506/84b5d38c backport][stable-10] Change description of nopasswd parameter for sudoers to be more clear (#10518)
Change description of nopasswd parameter for sudoers to be more clear (#10506)

Update sudoers.py

Made the description of nopasswd more clear

(cherry picked from commit 84b5d38c51)

Co-authored-by: freyja <github.com.tidy739@passinbox.com>
2025-07-30 06:54:00 +02:00
Felix Fontein
e550a0f58f [stable-10] CI: Add Python 3.14 unit tests (#10511) (#10517)
* CI: Add Python 3.14 unit tests (#10511)

* Add Python 3.14 unit tests.

* Skip test if github cannot be imported.

It currently cannot be imported because nacl isn't compatible with Python 3.14 yet,
and importing github indirectly tries to import nacl, which fails as it uses a
type from typing that got removed in 3.14.

* Skip test if paramiko cannot be imported.

(cherry picked from commit 6ce9f805a8)

* Skip proxmox connection test if paramiko cannot be imported.
2025-07-30 06:53:42 +02:00
patchback[bot]
eaa1f7c841 [PR #10508/69bcb88e backport][stable-10] Update Python versions for CI (#10509)
Update Python versions for CI (#10508)

* Update Python versions for CI.

* Disable Python 3.14 temporarily.

(cherry picked from commit 69bcb88efe)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-29 17:38:34 +02:00
patchback[bot]
7a653bff94 [PR #10485/15d3ea12 backport][stable-10] remove common return values from docs (#10502)
remove common return values from docs (#10485)

* remove common return values from docs

* pacman: add note about version added of RV

(cherry picked from commit 15d3ea123d)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-07-28 18:59:39 +02:00
patchback[bot]
c8360e7d1a [PR #10445/1f8b5eea backport][stable-10] cronvar: Handle empty value string properly (#10495)
cronvar: Handle empty value string properly (#10445)

* Fix empty  value issue  in cronvar

* Update changelog

* Update plugins/modules/cronvar.py



* Update changelogs/fragments/10445-cronvar-reject-empty-values.yml



* Update tests/integration/targets/cronvar/tasks/main.yml



* Update tests/integration/targets/cronvar/tasks/main.yml



* Accept empty strings on cronvar

* Update plugins/modules/cronvar.py



* Update main.yml



---------


(cherry picked from commit 1f8b5eea4c)

Co-authored-by: Giorgos Drosos <56369797+gdrosos@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-28 06:47:10 +02:00
patchback[bot]
94d33854b3 [PR #10491/de0618b8 backport][stable-10] irc: fix wrap_socket() call when validate_certs=true and use_tls=true (#10498)
irc: fix wrap_socket() call when validate_certs=true and use_tls=true (#10491)

Fix wrap_socket() call when validate_certs=true and use_tls=true.

(cherry picked from commit de0618b843)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-28 06:46:56 +02:00
Felix Fontein
3d088b68ec Normalize changelog configs.
(cherry picked from commit a692888478)
2025-07-27 16:37:03 +02:00
patchback[bot]
7b8fa38878 [PR #10466/7b05484d backport][stable-10] doc style adjustments: modules [rtuvx]* (#10488)
doc style adjustments: modules [rtuvx]* (#10466)

* doc style adjustments: modules r*

* doc style adjustments: modules t*

* doc style adjustments: modules u*

* doc style adjustments: modules v*

* doc style adjustments: modules x*

* Update plugins/modules/redis_data.py



---------


(cherry picked from commit 7b05484d8f)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-27 16:27:18 +02:00
Felix Fontein
6bf1eead47 Prepare 10.7.3. 2025-07-27 12:15:21 +02:00
patchback[bot]
478100011b [PR #10463/d288555f backport][stable-10] doc style adjustments: modules p* (#10467)
doc style adjustments: modules p* (#10463)

* doc style adjustments: modules p*

* Update plugins/modules/pacemaker_resource.py

* Update plugins/modules/pagerduty_alert.py

* Update plugins/modules/pear.py

* Update plugins/modules/portage.py

* reformat

* adjustment from review

* Update plugins/modules/pkg5_publisher.py



---------


(cherry picked from commit d288555fd9)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Peter Oliver <github.com@mavit.org.uk>
2025-07-27 12:13:49 +02:00
patchback[bot]
7ac342e237 [PR #10459/ee783066 backport][stable-10] Fix ansible-core 2.19 deprecations (#10470)
Fix ansible-core 2.19 deprecations (#10459)

Do not return warnings.

(cherry picked from commit ee7830667a)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-27 12:13:38 +02:00
patchback[bot]
e2573de08d [PR #10461/cc13f42b backport][stable-10] Fix cronvar crash when parent dir of cron_file is missing (#10473)
Fix cronvar crash when parent dir of cron_file is missing (#10461)

* Fix cronvar crash on non existent directories

* Update changelog

* Fix small variable bug

* Fix trailing witespace

* Fix CI issues

* Update changelogs/fragments/10461-cronvar-non-existent-dir-crash-fix.yml



* Update plugins/modules/cronvar.py



---------


(cherry picked from commit cc13f42be4)

Co-authored-by: Giorgos Drosos <56369797+gdrosos@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-27 12:13:23 +02:00
patchback[bot]
4412bdba9b [PR #10458/fe59c6d2 backport][stable-10] listen_ports_facts: Avoid crash when required commands are missing (#10475)
listen_ports_facts: Avoid crash when required commands are missing (#10458)

* Fix listen-port-facts crash

* Update changelog

* Update tests/integration/targets/listen_ports_facts/tasks/main.yml



* Fix sanity tests

* Update changelogs/fragments/10458-listen_port_facts-prevent-type-error.yml



---------


(cherry picked from commit fe59c6d29e)

Co-authored-by: Giorgos Drosos <56369797+gdrosos@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-27 12:13:07 +02:00
patchback[bot]
374270d242 [PR #10442/3ad57ffa backport][stable-10] Ensure apk handles empty name strings properly (#10477)
Ensure apk handles empty name strings properly (#10442)

* Ensure apk handles empty name strings

* Update changelog

* Update tests/integration/targets/apk/tasks/main.yml



* Update changelogs/fragments/10442-apk-fix-empty-names.yml



* Remove redundant conditional

* Remove redundant ignore errors

* Reject apk with update cache for empty package names

---------


(cherry picked from commit 3ad57ffa67)

Co-authored-by: Giorgos Drosos <56369797+gdrosos@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-27 12:12:58 +02:00
patchback[bot]
4c1077b2a0 [PR #10462/b458ee85 backport][stable-10] CI: Bump Alpine 3.21 to 3.22, Fedora 41 to 42, and FreeBSD 14.2 to 14.3 (#10464)
CI: Bump Alpine 3.21 to 3.22, Fedora 41 to 42, and FreeBSD 14.2 to 14.3 (#10462)

* Bump Alpine 3.21 to 3.22, Fedora 41 to 42, RHEL 9.5 to 9.6, and FreeBSD 14.2 to 14.3.

Add old versions to stable-2.19 if not present yet.

* Add some expected skips.

* Add more restrictions.

* Another try for Android tests.

* Another try.

* Another try.

(cherry picked from commit b458ee85ce)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-26 14:59:32 +02:00
patchback[bot]
a4f4a25b16 [PR #10446/01f3248a backport][stable-10] CI: Replace FreeBSD 13.3 with 13.5 (#10448)
CI: Replace FreeBSD 13.3 with 13.5 (#10446)

Replace FreeBSD 13.3 with 13.5.

(cherry picked from commit 01f3248a12)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-24 22:13:38 +02:00
patchback[bot]
17f5a5b575 [PR #10433/69d479f0 backport][stable-10] doc style adjustments: modules [lm]* (#10437)
doc style adjustments: modules [lm]* (#10433)

* doc style adjustments: modules l*

* doc style adjustments: modules m*

* Apply suggestions from code review



* Update plugins/modules/logstash_plugin.py



---------


(cherry picked from commit 69d479f06c)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-21 22:35:21 +02:00
Vladimir Botka
0be6e61b31 [stable-10] sysrc: Use shlex (#10400)
* Fix #10394 Use configparser.

* Fix #10394 configparser is in Python3 only.

* Fix #10394 return condition.

* Fix #10394 Use ConfigParser with Python2.

* Fix #10394 import configparser from ansible.module_utils.six.moves

* Add changelog fragment.

* Update changelogs/fragments/10400-sysrc.yml

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

* Fix #10394 use shlex instead of configparser.

* Update fragment.

* Update changelogs/fragments/10400-sysrc.yml

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

* Update plugins/modules/sysrc.py

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

* Apply suggestions from code review.

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

* Copy tests from #10417.

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-07-21 22:07:30 +02:00
patchback[bot]
36978d71e1 [PR #10428/bc4d06ef backport][stable-10] Fix dnf_versionlock examples (#10430)
Fix dnf_versionlock examples (#10428)

Fix dnf_versionlock examples.

(cherry picked from commit bc4d06ef34)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-18 23:23:47 +02:00
Felix Fontein
3cc62e3827 The next release will be 10.7.3. 2025-07-14 16:28:21 +02:00
Felix Fontein
e5f290e885 Release 10.7.2. 2025-07-14 15:39:20 +02:00
patchback[bot]
003f9e498e [PR #10409/a36ad54b backport][stable-10] doc style adjustments: modules i* (#10410)
doc style adjustments: modules i* (#10409)

(cherry picked from commit a36ad54b53)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-07-14 15:34:36 +02:00
patchback[bot]
700bb27d51 [PR #10399/4801b0fc backport][stable-10] manageiq_provider: fix docs markup (#10406)
manageiq_provider: fix docs markup (#10399)

* Fix docs markup.

* Add one more.



* Update plugins/modules/manageiq_provider.py



* More fixes.

---------



(cherry picked from commit 4801b0fc00)

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-07-14 07:47:50 +02:00
patchback[bot]
07c68cb7f1 [PR #10397/5e2ffb84 backport][stable-10] doc style adjustments: modules [cd]* (#10404)
doc style adjustments: modules [cd]* (#10397)

* doc style adjustments: modules c*

* doc style adjustments: modules d*

* Update plugins/modules/consul_agent_check.py



---------


(cherry picked from commit 5e2ffb845f)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-14 07:23:05 +02:00
patchback[bot]
e9f0fcac0d [PR #10398/717ef511 backport][stable-10] doc style adjustments: modules [efgh]* (#10402)
doc style adjustments: modules [efgh]* (#10398)

* doc style adjustments: modules e*

* doc style adjustments: modules f*

* doc style adjustments: modules g*

* doc style adjustments: modules h*

* Update plugins/modules/easy_install.py



---------


(cherry picked from commit 717ef51137)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-13 15:50:28 +00:00
patchback[bot]
a2e198d8a7 [PR #10333/731f0be3 backport][stable-10] Configure LUKS encrypted volume using crypttab (#10389)
Configure LUKS encrypted volume using crypttab (#10333)

(cherry picked from commit 731f0be3f4)

Co-authored-by: Aditya Putta <puttaa@yahoo.com>
2025-07-12 12:50:11 +02:00
patchback[bot]
9ccb6e029d [PR #10385/baf1cdec backport][stable-10] Enable hg integration test (#10391)
Enable hg integration test (#10385)

Fixes: #10044


(cherry picked from commit baf1cdec09)

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
2025-07-12 12:43:02 +02:00
patchback[bot]
adf0f41b4b [PR #10380/20e9ef87 backport][stable-10] community.general.easy_install : use of the virtualenv_command parameter (#10387)
community.general.easy_install :  use of the virtualenv_command parameter (#10380)

* community.general.easy_install :  use of the virtualenv_command parameter

* Apply suggestions from code review

---------


(cherry picked from commit 20e9ef877f)

Co-authored-by: Aditya Putta <puttaa@yahoo.com>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
2025-07-12 12:33:12 +02:00
patchback[bot]
63a8f1e89f [PR #10363/1a7aafc0 backport][stable-10] lvg examples: use YAML lists (#10381)
lvg examples: use YAML lists (#10363)

Use YAML lists.

(cherry picked from commit 1a7aafc037)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-11 07:26:07 +02:00
patchback[bot]
76de353377 [PR #10374/a0200d11 backport][stable-10] Disable lmdb_kv integration tests (#10377)
Disable lmdb_kv integration tests (#10374)

Disable lmdb_kv integration tests.

(cherry picked from commit a0200d1130)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-10 22:07:31 +02:00
patchback[bot]
960ed5acfd [PR #10345/096fa388 backport][stable-10] logstash: Remove reference to Python 2 library (#10373)
logstash: Remove reference to Python 2 library (#10345)

* logstash: Remove reference to Python 2 library



* Review requests



* Apply suggestions from code review



---------



(cherry picked from commit 096fa388ac)

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-09 06:31:19 +02:00
patchback[bot]
f636201450 [PR #10339/e5b37c3f backport][stable-10] github_release - support multiple type of tokens (#10372)
github_release - support multiple type of tokens (#10339)

* Support multiple type of tokens

* Add missing spaces around operator.

* Add changelog fragments.

* fix logic, missing NOT

* Update changelogs/fragments/10339-github_app_access_token.yml



---------


(cherry picked from commit e5b37c3ffd)

Co-authored-by: Bruno Lavoie <bl@brunol.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-08 22:30:00 +02:00
Felix Fontein
fb01bf6ff7 Prepare 10.7.2. 2025-07-08 21:11:22 +02:00
patchback[bot]
8569e7eb58 [PR #10359/16d6e4a8 backport][stable-10] dependent lookup: avoid deprecated ansible-core 2.19 functionality (#10365)
dependent lookup: avoid deprecated ansible-core 2.19 functionality (#10359)

* Avoid deprecated ansible-core 2.19 functionality.

* Adjust unit tests.

(cherry picked from commit 16d6e4a8e5)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-08 06:52:54 +02:00
patchback[bot]
c100ecda2c [PR #10349/4195cbb3 backport][stable-10] incus_connection: Improve error handling (#10361)
incus_connection: Improve error handling (#10349)

Related to #10344

This tweaks the error handling logic to work with more versions of Incus
as well as catching some of the project and instance access errors.

The full context (instance name, project name and remote name) is now
included so that the user can easily diagnose access problems.


(cherry picked from commit 4195cbb364)

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
Co-authored-by: Stéphane Graber <stgraber@stgraber.org>
2025-07-07 21:06:09 +02:00
patchback[bot]
f33f50cf2c [PR #10334/79509a53 backport][stable-10] flatpak: add docs example for install using custom executable path (#10358)
flatpak: add docs example for install using custom executable path (#10334)

(cherry picked from commit 79509a533d)

Co-authored-by: Aditya Putta <puttaa@yahoo.com>
2025-07-06 13:34:42 +02:00
patchback[bot]
452d6f2fa7 [PR #10336/dd135920 backport][stable-10] lvg: add docs example for preserving existing PVs in a volume group using remove_extra_pvs: false (#10355)
lvg: add docs example for preserving existing PVs in a volume group using `remove_extra_pvs: false` (#10336)

(cherry picked from commit dd13592034)

Co-authored-by: Aditya Putta <puttaa@yahoo.com>
2025-07-06 13:34:27 +02:00
patchback[bot]
f3828ba9ca [PR #10335/2ec3d022 backport][stable-10] jenkins_build: docs example for trigger with custom polling interval (#10354)
jenkins_build: docs example for trigger with custom polling interval (#10335)

(cherry picked from commit 2ec3d02215)

Co-authored-by: Aditya Putta <puttaa@yahoo.com>
2025-07-06 13:34:18 +02:00
patchback[bot]
b4eb8e5e22 [PR #10337/5ef1cad6 backport][stable-10] Using add_keys_to_agent in ssh_config module (#10351)
Using add_keys_to_agent in ssh_config module (#10337)

* Using add_keys_to_agent in ssh_config module

* removed white space

* Apply suggestion

---------


(cherry picked from commit 5ef1cad64f)

Co-authored-by: Aditya Putta <puttaa@yahoo.com>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
2025-07-06 13:34:05 +02:00
Felix Fontein
8c02531c56 Adjust README.
(cherry picked from commit 4323058809)
2025-07-01 22:37:19 +02:00
patchback[bot]
41171a02b7 [PR #10319/dd3c253b backport][stable-10] CI: Add stable-2.19 (#10320)
CI: Add stable-2.19 (#10319)

* Add ignore-2.20.txt.

* Add stable-2.19 to CI.

(cherry picked from commit dd3c253b78)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-07-01 21:31:29 +02:00
patchback[bot]
84a6f610f7 [PR #10313/cc2e0679 backport][stable-10] htpasswd: doc adjustment (#10316)
htpasswd: doc adjustment (#10313)

(cherry picked from commit cc2e067907)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-06-30 20:33:01 +02:00
patchback[bot]
2f623b7398 [PR #10304/7d06be1c backport][stable-10] fix typo in ipa_dnsrecord module examples (#10307)
fix typo in ipa_dnsrecord module examples (#10304)

[FIX] Typo in ipa_dnsrecord example

Simple comma instead of a period, easy mistake.

(cherry picked from commit 7d06be1c20)

Co-authored-by: alice seaborn <seaborn@lavabit.com>
2025-06-26 22:10:58 +02:00
patchback[bot]
4e73ae1a86 [PR #10297/af8c586e backport][stable-10] Docs: use :anscollection: (#10300)
Docs: use :anscollection: (#10297)

Use :anscollection:.
(cherry picked from commit af8c586e29)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-06-25 22:03:51 +02:00
patchback[bot]
392f5b4702 [PR #10282/d4f2b2fb backport][stable-10] sl_vm: update docs about requirements (#10283)
sl_vm: update docs about requirements (#10282)

* sl_vm: update docs about requirements

* Update plugins/modules/sl_vm.py

(cherry picked from commit d4f2b2fb55)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-06-19 21:33:48 +02:00
patchback[bot]
d5d8e1d188 [PR #10271/40fb0f0c backport][stable-10] Inventory plugins: remove deprecated disable_lookups parameter (which was set to its default anyway) (#10277)
Inventory plugins: remove deprecated disable_lookups parameter (which was set to its default anyway) (#10271)

* Remove default value for keyword argument that is deprecated since ansible-core 2.19.

* Add changelog fragment.

(cherry picked from commit 40fb0f0c75)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-06-18 21:52:53 +02:00
patchback[bot]
fbd0a80439 [PR #10272/5b14129c backport][stable-10] sysrc jail tests: FreeBSD 14.1 stopped working (#10274)
sysrc jail tests: FreeBSD 14.1 stopped working (#10272)

FreeBSD 14.1 stopped working.

(cherry picked from commit 5b14129c8f)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-06-18 21:52:39 +02:00
patchback[bot]
c55df29ec9 [PR #10264/74ed0fc4 backport][stable-10] import mocks from community.internal_test_tools (#10265)
import mocks from community.internal_test_tools (#10264)

(cherry picked from commit 74ed0fc438)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-06-17 21:24:11 +02:00
patchback[bot]
2405857338 [PR #10261/38ab1fbb backport][stable-10] Extra docs: normalize code block language (#10262)
Extra docs: normalize code block language (#10261)

Extra docs: normalize code block language.

(cherry picked from commit 38ab1fbb88)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-06-17 07:03:07 +02:00
Felix Fontein
1c6b9507bc Update CI schedule.
(cherry picked from commit 49d84e7b97)
2025-06-16 20:12:13 +02:00
Felix Fontein
9363356941 The next expected release will be 10.7.2. 2025-06-16 20:10:50 +02:00
347 changed files with 2582 additions and 1911 deletions

View File

@@ -29,14 +29,14 @@ schedules:
always: true
branches:
include:
- stable-11
- stable-10
- stable-9
- cron: 0 11 * * 0
displayName: Weekly (old stable branches)
always: true
branches:
include:
- stable-8
- stable-9
variables:
- name: checkoutPath
@@ -51,7 +51,7 @@ variables:
resources:
containers:
- container: default
image: quay.io/ansible/azure-pipelines-test-container:6.0.0
image: quay.io/ansible/azure-pipelines-test-container:7.0.0
pool: Standard
@@ -70,6 +70,19 @@ stages:
- test: 2
- test: 3
- test: 4
- stage: Sanity_2_19
displayName: Sanity 2.19
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Test {0}
testFormat: 2.19/sanity/{0}
targets:
- test: 1
- test: 2
- test: 3
- test: 4
- stage: Sanity_2_18
displayName: Sanity 2.18
dependsOn: []
@@ -119,12 +132,24 @@ 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: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: 2.19/units/{0}/1
targets:
- test: 3.8
- test: "3.11"
- test: "3.13"
- stage: Units_2_18
displayName: Units 2.18
dependsOn: []
@@ -135,6 +160,7 @@ 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
@@ -146,6 +172,7 @@ stages:
testFormat: 2.17/units/{0}/1
targets:
- test: 3.7
- test: "3.10"
- test: "3.12"
- stage: Units_2_16
displayName: Units 2.16
@@ -169,10 +196,10 @@ stages:
parameters:
testFormat: devel/{0}
targets:
- name: Alpine 3.21
test: alpine/3.21
# - name: Fedora 41
# test: fedora/41
- name: Alpine 3.22
test: alpine/3.22
# - name: Fedora 42
# test: fedora/42
- name: Ubuntu 22.04
test: ubuntu/22.04
- name: Ubuntu 24.04
@@ -191,16 +218,34 @@ stages:
test: macos/15.3
- name: RHEL 10.0
test: rhel/10.0
- name: RHEL 9.5
test: rhel/9.5
- name: FreeBSD 14.2
test: freebsd/14.2
- name: RHEL 9.6
test: rhel/9.6
- name: FreeBSD 14.3
test: freebsd/14.3
- name: FreeBSD 13.5
test: freebsd/13.5
groups:
- 1
- 2
- 3
- stage: Remote_2_19
displayName: Remote 2.19
dependsOn: []
jobs:
- template: templates/matrix.yml
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
- 3
- stage: Remote_2_18
displayName: Remote 2.18
dependsOn: []
@@ -227,8 +272,8 @@ stages:
parameters:
testFormat: 2.17/{0}
targets:
- name: FreeBSD 13.3
test: freebsd/13.3
- name: FreeBSD 13.5
test: freebsd/13.5
- name: RHEL 9.3
test: rhel/9.3
groups:
@@ -267,10 +312,10 @@ stages:
parameters:
testFormat: devel/linux/{0}
targets:
- name: Fedora 41
test: fedora41
- name: Alpine 3.21
test: alpine321
- name: Fedora 42
test: fedora42
- name: Alpine 3.22
test: alpine322
- name: Ubuntu 22.04
test: ubuntu2204
- name: Ubuntu 24.04
@@ -279,6 +324,22 @@ stages:
- 1
- 2
- 3
- stage: Docker_2_19
displayName: Docker 2.19
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: 2.19/linux/{0}
targets:
- name: Fedora 41
test: fedora41
- name: Alpine 3.21
test: alpine321
groups:
- 1
- 2
- 3
- stage: Docker_2_18
displayName: Docker 2.18
dependsOn: []
@@ -345,10 +406,12 @@ stages:
parameters:
testFormat: devel/linux-community/{0}
targets:
- name: Debian Bullseye
- name: Debian 11 Bullseye
test: debian-bullseye/3.9
- name: Debian Bookworm
- name: Debian 12 Bookworm
test: debian-bookworm/3.11
- name: Debian 13 Trixie
test: debian-13-trixie/3.13
- name: ArchLinux
test: archlinux/3.13
groups:
@@ -367,8 +430,19 @@ stages:
# nameFormat: Python {0}
# testFormat: devel/generic/{0}/1
# targets:
# - test: '3.8'
# - test: '3.11'
# - test: '3.9'
# - test: '3.12'
# - test: '3.14'
# - stage: Generic_2_19
# displayName: Generic 2.19
# dependsOn: []
# jobs:
# - template: templates/matrix.yml
# parameters:
# nameFormat: Python {0}
# testFormat: 2.19/generic/{0}/1
# targets:
# - test: '3.9'
# - test: '3.13'
# - stage: Generic_2_18
# displayName: Generic 2.18
@@ -409,25 +483,30 @@ stages:
condition: succeededOrFailed()
dependsOn:
- Sanity_devel
- Sanity_2_19
- Sanity_2_18
- Sanity_2_17
- Sanity_2_16
- Units_devel
- Units_2_19
- Units_2_18
- Units_2_17
- Units_2_16
- Remote_devel_extra_vms
- Remote_devel
- Remote_2_19
- Remote_2_18
- Remote_2_17
- Remote_2_16
- Docker_devel
- Docker_2_19
- Docker_2_18
- Docker_2_17
- Docker_2_16
- Docker_community_devel
# Right now all generic tests are disabled. Uncomment when at least one of them is re-enabled.
# - Generic_devel
# - Generic_2_19
# - Generic_2_18
# - Generic_2_17
# - Generic_2_16

View File

@@ -24,7 +24,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
persist-credentials: false

View File

@@ -21,7 +21,7 @@ jobs:
name: "Run extra sanity tests"
steps:
- name: Check out collection
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
persist-credentials: false
- name: Run nox

View File

@@ -2,81 +2,90 @@
**Topics**
- <a href="#v10-7-1">v10\.7\.1</a>
- <a href="#v10-7-4">v10\.7\.4</a>
- <a href="#release-summary">Release Summary</a>
- <a href="#bugfixes">Bugfixes</a>
- <a href="#v10-7-3">v10\.7\.3</a>
- <a href="#release-summary-1">Release Summary</a>
- <a href="#bugfixes-1">Bugfixes</a>
- <a href="#v10-7-2">v10\.7\.2</a>
- <a href="#release-summary-2">Release Summary</a>
- <a href="#bugfixes-2">Bugfixes</a>
- <a href="#v10-7-1">v10\.7\.1</a>
- <a href="#release-summary-3">Release Summary</a>
- <a href="#minor-changes">Minor Changes</a>
- <a href="#deprecated-features">Deprecated Features</a>
- <a href="#bugfixes">Bugfixes</a>
- <a href="#bugfixes-3">Bugfixes</a>
- <a href="#v10-7-0">v10\.7\.0</a>
- <a href="#release-summary-1">Release Summary</a>
- <a href="#release-summary-4">Release Summary</a>
- <a href="#minor-changes-1">Minor Changes</a>
- <a href="#deprecated-features-1">Deprecated Features</a>
- <a href="#bugfixes-1">Bugfixes</a>
- <a href="#bugfixes-4">Bugfixes</a>
- <a href="#new-plugins">New Plugins</a>
- <a href="#callback">Callback</a>
- <a href="#filter">Filter</a>
- <a href="#new-modules">New Modules</a>
- <a href="#v10-6-0">v10\.6\.0</a>
- <a href="#release-summary-2">Release Summary</a>
- <a href="#release-summary-5">Release Summary</a>
- <a href="#minor-changes-2">Minor Changes</a>
- <a href="#deprecated-features-2">Deprecated Features</a>
- <a href="#bugfixes-2">Bugfixes</a>
- <a href="#bugfixes-5">Bugfixes</a>
- <a href="#known-issues">Known Issues</a>
- <a href="#new-plugins-1">New Plugins</a>
- <a href="#connection">Connection</a>
- <a href="#v10-5-0">v10\.5\.0</a>
- <a href="#release-summary-3">Release Summary</a>
- <a href="#release-summary-6">Release Summary</a>
- <a href="#minor-changes-3">Minor Changes</a>
- <a href="#bugfixes-3">Bugfixes</a>
- <a href="#bugfixes-6">Bugfixes</a>
- <a href="#new-modules-1">New Modules</a>
- <a href="#v10-4-0">v10\.4\.0</a>
- <a href="#release-summary-4">Release Summary</a>
- <a href="#release-summary-7">Release Summary</a>
- <a href="#minor-changes-4">Minor Changes</a>
- <a href="#deprecated-features-3">Deprecated Features</a>
- <a href="#bugfixes-4">Bugfixes</a>
- <a href="#bugfixes-7">Bugfixes</a>
- <a href="#new-modules-2">New Modules</a>
- <a href="#v10-3-1">v10\.3\.1</a>
- <a href="#release-summary-5">Release Summary</a>
- <a href="#release-summary-8">Release Summary</a>
- <a href="#minor-changes-5">Minor Changes</a>
- <a href="#bugfixes-5">Bugfixes</a>
- <a href="#bugfixes-8">Bugfixes</a>
- <a href="#v10-3-0">v10\.3\.0</a>
- <a href="#release-summary-6">Release Summary</a>
- <a href="#release-summary-9">Release Summary</a>
- <a href="#minor-changes-6">Minor Changes</a>
- <a href="#deprecated-features-4">Deprecated Features</a>
- <a href="#security-fixes">Security Fixes</a>
- <a href="#bugfixes-6">Bugfixes</a>
- <a href="#bugfixes-9">Bugfixes</a>
- <a href="#new-plugins-2">New Plugins</a>
- <a href="#connection-1">Connection</a>
- <a href="#filter-1">Filter</a>
- <a href="#lookup">Lookup</a>
- <a href="#new-modules-3">New Modules</a>
- <a href="#v10-2-0">v10\.2\.0</a>
- <a href="#release-summary-7">Release Summary</a>
- <a href="#release-summary-10">Release Summary</a>
- <a href="#minor-changes-7">Minor Changes</a>
- <a href="#deprecated-features-5">Deprecated Features</a>
- <a href="#security-fixes-1">Security Fixes</a>
- <a href="#bugfixes-7">Bugfixes</a>
- <a href="#bugfixes-10">Bugfixes</a>
- <a href="#new-plugins-3">New Plugins</a>
- <a href="#inventory">Inventory</a>
- <a href="#new-modules-4">New Modules</a>
- <a href="#v10-1-0">v10\.1\.0</a>
- <a href="#release-summary-8">Release Summary</a>
- <a href="#release-summary-11">Release Summary</a>
- <a href="#minor-changes-8">Minor Changes</a>
- <a href="#deprecated-features-6">Deprecated Features</a>
- <a href="#bugfixes-8">Bugfixes</a>
- <a href="#bugfixes-11">Bugfixes</a>
- <a href="#new-plugins-4">New Plugins</a>
- <a href="#filter-2">Filter</a>
- <a href="#new-modules-5">New Modules</a>
- <a href="#v10-0-1">v10\.0\.1</a>
- <a href="#release-summary-9">Release Summary</a>
- <a href="#bugfixes-9">Bugfixes</a>
- <a href="#release-summary-12">Release Summary</a>
- <a href="#bugfixes-12">Bugfixes</a>
- <a href="#v10-0-0">v10\.0\.0</a>
- <a href="#release-summary-10">Release Summary</a>
- <a href="#release-summary-13">Release Summary</a>
- <a href="#minor-changes-9">Minor Changes</a>
- <a href="#breaking-changes--porting-guide">Breaking Changes / Porting Guide</a>
- <a href="#deprecated-features-7">Deprecated Features</a>
- <a href="#removed-features-previously-deprecated">Removed Features \(previously deprecated\)</a>
- <a href="#bugfixes-10">Bugfixes</a>
- <a href="#bugfixes-13">Bugfixes</a>
- <a href="#known-issues-1">Known Issues</a>
- <a href="#new-plugins-5">New Plugins</a>
- <a href="#filter-3">Filter</a>
@@ -84,10 +93,78 @@
- <a href="#new-modules-6">New Modules</a>
This changelog describes changes after version 9\.0\.0\.
<a id="v10-7-4"></a>
## v10\.7\.4
<a id="release-summary"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes"></a>
### Bugfixes
* Avoid deprecated functionality in ansible\-core 2\.20 \([https\://github\.com/ansible\-collections/community\.general/pull/10687](https\://github\.com/ansible\-collections/community\.general/pull/10687)\)\.
* apache2\_module \- check the <code>cgi</code> module restrictions only during activation \([https\://github\.com/ansible\-collections/community\.general/pull/10423](https\://github\.com/ansible\-collections/community\.general/pull/10423)\)\.
* kdeconfig \- <code>kwriteconfig</code> executable could not be discovered automatically on systems with only <code>kwriteconfig6</code> installed\. <code>kwriteconfig6</code> can now be discovered by Ansible \([https\://github\.com/ansible\-collections/community\.general/issues/10746](https\://github\.com/ansible\-collections/community\.general/issues/10746)\, [https\://github\.com/ansible\-collections/community\.general/pull/10751](https\://github\.com/ansible\-collections/community\.general/pull/10751)\)\.
* monit \- fix crash caused by an unknown status value returned from the monit service \([https\://github\.com/ansible\-collections/community\.general/issues/10742](https\://github\.com/ansible\-collections/community\.general/issues/10742)\, [https\://github\.com/ansible\-collections/community\.general/pull/10743](https\://github\.com/ansible\-collections/community\.general/pull/10743)\)\.
* pids \- prevent error when an empty string is provided for <code>name</code> \([https\://github\.com/ansible\-collections/community\.general/issues/10672](https\://github\.com/ansible\-collections/community\.general/issues/10672)\, [https\://github\.com/ansible\-collections/community\.general/pull/10688](https\://github\.com/ansible\-collections/community\.general/pull/10688)\)\.
* selective callback plugin \- specify <code>ansible\_loop\_var</code> instead of the explicit value <code>item</code> when printing task result \([https\://github\.com/ansible\-collections/community\.general/pull/10752](https\://github\.com/ansible\-collections/community\.general/pull/10752)\)\.
<a id="v10-7-3"></a>
## v10\.7\.3
<a id="release-summary-1"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes-1"></a>
### Bugfixes
* apache2\_module \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
* apk \- fix check for empty/whitespace\-only package names \([https\://github\.com/ansible\-collections/community\.general/pull/10532](https\://github\.com/ansible\-collections/community\.general/pull/10532)\)\.
* apk \- handle empty name strings properly \([https\://github\.com/ansible\-collections/community\.general/issues/10441](https\://github\.com/ansible\-collections/community\.general/issues/10441)\, [https\://github\.com/ansible\-collections/community\.general/pull/10442](https\://github\.com/ansible\-collections/community\.general/pull/10442)\)\.
* 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/issues/5649)\, [https\://github\.com/ansible\-collections/community\.general/pull/10455](https\://github\.com/ansible\-collections/community\.general/pull/10455)\)\.
* cronvar \- fix crash on missing <code>cron\_file</code> parent directories \([https\://github\.com/ansible\-collections/community\.general/issues/10460](https\://github\.com/ansible\-collections/community\.general/issues/10460)\, [https\://github\.com/ansible\-collections/community\.general/pull/10461](https\://github\.com/ansible\-collections/community\.general/pull/10461)\)\.
* cronvar \- handle empty strings on <code>value</code> properly \([https\://github\.com/ansible\-collections/community\.general/issues/10439](https\://github\.com/ansible\-collections/community\.general/issues/10439)\, [https\://github\.com/ansible\-collections/community\.general/pull/10445](https\://github\.com/ansible\-collections/community\.general/pull/10445)\)\.
* 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/issues/9977)\, [https\://github\.com/ansible\-collections/community\.general/pull/10537](https\://github\.com/ansible\-collections/community\.general/pull/10537)\)\.
* htpasswd \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
* irc \- pass hostname to <code>wrap\_socket\(\)</code> if <code>use\_tls\=true</code> and <code>validate\_certs\=true</code> \([https\://github\.com/ansible\-collections/community\.general/issues/10472](https\://github\.com/ansible\-collections/community\.general/issues/10472)\, [https\://github\.com/ansible\-collections/community\.general/pull/10491](https\://github\.com/ansible\-collections/community\.general/pull/10491)\)\.
* 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](https\://github\.com/ansible\-collections/community\.general/pull/10539)\)\.
* 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/issues/10457)\, [https\://github\.com/ansible\-collections/community\.general/pull/10458](https\://github\.com/ansible\-collections/community\.general/pull/10458)\)\.
* 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](https\://github\.com/ansible\-collections/community\.general/pull/10537)\)\.
* merge\_variables lookup plugin \- avoid deprecated functionality from ansible\-core 2\.19 \([https\://github\.com/ansible\-collections/community\.general/pull/10566](https\://github\.com/ansible\-collections/community\.general/pull/10566)\)\.
* proxmox inventory plugin \- avoid using deprecated option when templating options \([https\://github\.com/ansible\-collections/community\.proxmox/pull/108](https\://github\.com/ansible\-collections/community\.proxmox/pull/108)\, [https\://github\.com/ansible\-collections/community\.general/pull/10553](https\://github\.com/ansible\-collections/community\.general/pull/10553)\)\.
* proxmox\_pct\_remote connection plugin \- avoid deprecated ansible\-core paramiko import helper\, import paramiko directly instead \([https\://github\.com/ansible\-collections/community\.proxmox/issues/146](https\://github\.com/ansible\-collections/community\.proxmox/issues/146)\, [https\://github\.com/ansible\-collections/community\.proxmox/pull/151](https\://github\.com/ansible\-collections/community\.proxmox/pull/151)\, [https\://github\.com/ansible\-collections/community\.general/pull/10553](https\://github\.com/ansible\-collections/community\.general/pull/10553)\)\.
* syspatch \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
* sysrc \- use <code>shlex</code> to improve parsing of <code>sysrc \-e \-a</code> output \([https\://github\.com/ansible\-collections/community\.general/issues/10394](https\://github\.com/ansible\-collections/community\.general/issues/10394)\, [https\://github\.com/ansible\-collections/community\.general/pull/10400](https\://github\.com/ansible\-collections/community\.general/pull/10400)\)\.
* sysupgrade \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
* 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/issues/10515)\, [https\://github\.com/ansible\-collections/community\.general/pull/10531](https\://github\.com/ansible\-collections/community\.general/pull/10531)\)\.
* zypper\_repository \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
<a id="v10-7-2"></a>
## v10\.7\.2
<a id="release-summary-2"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes-2"></a>
### 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 <code>ghs\_</code> 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)\)\.
<a id="v10-7-1"></a>
## v10\.7\.1
<a id="release-summary"></a>
<a id="release-summary-3"></a>
### Release Summary
Regular bugfix release\.
@@ -103,7 +180,7 @@ Regular bugfix release\.
* 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)\)\.
<a id="bugfixes"></a>
<a id="bugfixes-3"></a>
### Bugfixes
* 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)\)\.
@@ -117,7 +194,7 @@ Regular bugfix release\.
<a id="v10-7-0"></a>
## v10\.7\.0
<a id="release-summary-1"></a>
<a id="release-summary-4"></a>
### Release Summary
Bugfix and feature release\.
@@ -141,7 +218,7 @@ From now on\, there will only be bugfix 10\.7\.x releases for the community\.gen
* The proxmox content \(modules and plugins\) is being moved to the [new collection community\.proxmox](https\://github\.com/ansible\-collections/community\.proxmox)\. In community\.general 11\.0\.0\, these modules and plugins will be replaced by deprecated redirections to community\.proxmox\. You need to explicitly install community\.proxmox\, for example with <code>ansible\-galaxy collection install community\.proxmox</code>\. 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/10109](https\://github\.com/ansible\-collections/community\.general/pull/10109)\)\.
* pipx module\_utils \- function <code>make\_process\_list\(\)</code> 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)\)\.
<a id="bugfixes-1"></a>
<a id="bugfixes-4"></a>
### Bugfixes
* cobbler\_system \- fix bug with Cobbler \>\= 3\.4\.0 caused by giving more than 2 positional arguments to <code>CobblerXMLRPCInterface\.get\_system\_handle\(\)</code> \([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)\)\.
@@ -173,7 +250,7 @@ From now on\, there will only be bugfix 10\.7\.x releases for the community\.gen
<a id="v10-6-0"></a>
## v10\.6\.0
<a id="release-summary-2"></a>
<a id="release-summary-5"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -217,7 +294,7 @@ Regular bugfix and feature release\.
* 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)\)\.
* 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)\)\.
<a id="bugfixes-2"></a>
<a id="bugfixes-5"></a>
### Bugfixes
* 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)\)\.
@@ -250,7 +327,7 @@ Regular bugfix and feature release\.
<a id="v10-5-0"></a>
## v10\.5\.0
<a id="release-summary-3"></a>
<a id="release-summary-6"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -272,7 +349,7 @@ Regular bugfix and feature release\.
* 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)\)\.
* vmadm \- add new options <code>flexible\_disk\_size</code> and <code>owner\_uuid</code> \([https\://github\.com/ansible\-collections/community\.general/pull/9892](https\://github\.com/ansible\-collections/community\.general/pull/9892)\)\.
<a id="bugfixes-3"></a>
<a id="bugfixes-6"></a>
### Bugfixes
* 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)\)\.
@@ -292,7 +369,7 @@ Regular bugfix and feature release\.
<a id="v10-4-0"></a>
## v10\.4\.0
<a id="release-summary-4"></a>
<a id="release-summary-7"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -322,7 +399,7 @@ Regular bugfix and feature release\.
* 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)\)\.
<a id="bugfixes-4"></a>
<a id="bugfixes-7"></a>
### 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)\)\.
@@ -350,7 +427,7 @@ Regular bugfix and feature release\.
<a id="v10-3-1"></a>
## v10\.3\.1
<a id="release-summary-5"></a>
<a id="release-summary-8"></a>
### Release Summary
Bugfix release\.
@@ -360,7 +437,7 @@ Bugfix release\.
* 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)\)\.
<a id="bugfixes-5"></a>
<a id="bugfixes-8"></a>
### Bugfixes
* cloudflare\_dns \- fix crash when deleting a DNS record or when updating a record with <code>solo\=true</code> \([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)\)\.
@@ -374,7 +451,7 @@ Bugfix release\.
<a id="v10-3-0"></a>
## v10\.3\.0
<a id="release-summary-6"></a>
<a id="release-summary-9"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -513,7 +590,7 @@ Regular bugfix and feature release\.
* keycloak\_client \- Sanitize <code>saml\.encryption\.private\.key</code> 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)\)\.
<a id="bugfixes-6"></a>
<a id="bugfixes-9"></a>
### Bugfixes
* 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)\)\.
@@ -557,7 +634,7 @@ Regular bugfix and feature release\.
<a id="v10-2-0"></a>
## v10\.2\.0
<a id="release-summary-7"></a>
<a id="release-summary-10"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -716,7 +793,7 @@ Regular bugfix and feature release\.
* keycloak\_authentication \- API calls did not properly set the <code>priority</code> 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)\)\.
<a id="bugfixes-7"></a>
<a id="bugfixes-10"></a>
### Bugfixes
* dig lookup plugin \- correctly handle <code>NoNameserver</code> 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)\)\.
@@ -747,7 +824,7 @@ Regular bugfix and feature release\.
<a id="v10-1-0"></a>
## v10\.1\.0
<a id="release-summary-8"></a>
<a id="release-summary-11"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -779,7 +856,7 @@ Regular bugfix and feature release\.
* opkg \- deprecate value <code>\"\"</code> for parameter <code>force</code> \([https\://github\.com/ansible\-collections/community\.general/pull/9172](https\://github\.com/ansible\-collections/community\.general/pull/9172)\)\.
* redfish\_utils module utils \- deprecate method <code>RedfishUtils\.\_init\_session\(\)</code> \([https\://github\.com/ansible\-collections/community\.general/pull/9190](https\://github\.com/ansible\-collections/community\.general/pull/9190)\)\.
<a id="bugfixes-8"></a>
<a id="bugfixes-11"></a>
### Bugfixes
* 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)\)\.
@@ -808,12 +885,12 @@ Regular bugfix and feature release\.
<a id="v10-0-1"></a>
## v10\.0\.1
<a id="release-summary-9"></a>
<a id="release-summary-12"></a>
### Release Summary
Bugfix release for inclusion in Ansible 11\.0\.0rc1\.
<a id="bugfixes-9"></a>
<a id="bugfixes-12"></a>
### Bugfixes
* 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)\)\.
@@ -823,7 +900,7 @@ Bugfix release for inclusion in Ansible 11\.0\.0rc1\.
<a id="v10-0-0"></a>
## v10\.0\.0
<a id="release-summary-10"></a>
<a id="release-summary-13"></a>
### Release Summary
This is release 10\.0\.0 of <code>community\.general</code>\, released on 2024\-11\-04\.
@@ -1058,7 +1135,7 @@ This is release 10\.0\.0 of <code>community\.general</code>\, released on 2024\-
* proxmox\_kvm \- removed the <code>proxmox\_default\_behavior</code> option\. Explicitly specify the old default values if you were using <code>proxmox\_default\_behavior\=compatibility</code>\, otherwise simply remove it \([https\://github\.com/ansible\-collections/community\.general/pull/8918](https\://github\.com/ansible\-collections/community\.general/pull/8918)\)\.
* redhat\_subscriptions \- removed the <code>pool</code> option\. Use <code>pool\_ids</code> instead \([https\://github\.com/ansible\-collections/community\.general/pull/8918](https\://github\.com/ansible\-collections/community\.general/pull/8918)\)\.
<a id="bugfixes-10"></a>
<a id="bugfixes-13"></a>
### Bugfixes
* bitwarden lookup plugin \- fix <code>KeyError</code> in <code>search\_field</code> \([https\://github\.com/ansible\-collections/community\.general/issues/8549](https\://github\.com/ansible\-collections/community\.general/issues/8549)\, [https\://github\.com/ansible\-collections/community\.general/pull/8557](https\://github\.com/ansible\-collections/community\.general/pull/8557)\)\.

View File

@@ -6,6 +6,74 @@ Community General Release Notes
This changelog describes changes after version 9.0.0.
v10.7.4
=======
Release Summary
---------------
Regular bugfix release.
Bugfixes
--------
- Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.general/pull/10687).
- apache2_module - check the ``cgi`` module restrictions only during activation (https://github.com/ansible-collections/community.general/pull/10423).
- kdeconfig - ``kwriteconfig`` executable could not be discovered automatically on systems with only ``kwriteconfig6`` installed. ``kwriteconfig6`` can now be discovered by Ansible (https://github.com/ansible-collections/community.general/issues/10746, https://github.com/ansible-collections/community.general/pull/10751).
- monit - fix crash caused by an unknown status value returned from the monit service (https://github.com/ansible-collections/community.general/issues/10742, https://github.com/ansible-collections/community.general/pull/10743).
- pids - prevent error when an empty string is provided for ``name`` (https://github.com/ansible-collections/community.general/issues/10672, https://github.com/ansible-collections/community.general/pull/10688).
- selective callback plugin - specify ``ansible_loop_var`` instead of the explicit value ``item`` when printing task result (https://github.com/ansible-collections/community.general/pull/10752).
v10.7.3
=======
Release Summary
---------------
Regular bugfix release.
Bugfixes
--------
- apache2_module - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
- apk - fix check for empty/whitespace-only package names (https://github.com/ansible-collections/community.general/pull/10532).
- apk - handle empty name strings properly (https://github.com/ansible-collections/community.general/issues/10441, https://github.com/ansible-collections/community.general/pull/10442).
- 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).
- 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).
- 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).
- 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).
- htpasswd - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
- 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).
- 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).
- 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).
- 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).
- merge_variables lookup plugin - avoid deprecated functionality from ansible-core 2.19 (https://github.com/ansible-collections/community.general/pull/10566).
- proxmox inventory plugin - avoid using deprecated option when templating options (https://github.com/ansible-collections/community.proxmox/pull/108, https://github.com/ansible-collections/community.general/pull/10553).
- proxmox_pct_remote connection plugin - avoid deprecated ansible-core paramiko import helper, import paramiko directly instead (https://github.com/ansible-collections/community.proxmox/issues/146, https://github.com/ansible-collections/community.proxmox/pull/151, https://github.com/ansible-collections/community.general/pull/10553).
- syspatch - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
- sysrc - use ``shlex`` to improve parsing of ``sysrc -e -a`` output (https://github.com/ansible-collections/community.general/issues/10394, https://github.com/ansible-collections/community.general/pull/10400).
- sysupgrade - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
- 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).
- zypper_repository - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
v10.7.2
=======
Release Summary
---------------
Regular bugfix release.
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).
v10.7.1
=======

View File

@@ -39,7 +39,7 @@ For more information about communication, see the [Ansible communication guide](
## Tested with Ansible
Tested with the current ansible-core 2.15, ansible-core 2.16, ansible-core 2.17, ansible-core 2.18 releases and the current development version of ansible-core. Ansible-core versions before 2.15.0 are not supported. This includes all ansible-base 2.10 and Ansible 2.9 releases.
Tested with the current ansible-core 2.15, ansible-core 2.16, ansible-core 2.17, ansible-core 2.18, ansible-core 2.19 releases and the current development version of ansible-core. Ansible-core versions before 2.15.0 are not supported. This includes all ansible-base 2.10 and Ansible 2.9 releases.
## External requirements

View File

@@ -1931,3 +1931,119 @@ releases:
- 10242-yaml.yml
- 9692-update-more-than-10-keycloak-sub-groups.yml
release_date: '2025-06-16'
10.7.2:
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).
release_summary: Regular bugfix release.
fragments:
- 10.7.2.yml
- 10271--disable_lookups.yml
- 10339-github_app_access_token.yml
- 10349-incus_connection-error-handling.yml
- 10359-dependent.yml
- logstash.yml
release_date: '2025-07-14'
10.7.3:
changes:
bugfixes:
- apache2_module - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
- apk - fix check for empty/whitespace-only package names (https://github.com/ansible-collections/community.general/pull/10532).
- apk - handle empty name strings properly (https://github.com/ansible-collections/community.general/issues/10441,
https://github.com/ansible-collections/community.general/pull/10442).
- 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).
- 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).
- 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).
- 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).
- htpasswd - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
- 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).
- 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).
- 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).
- 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).
- merge_variables lookup plugin - avoid deprecated functionality from ansible-core
2.19 (https://github.com/ansible-collections/community.general/pull/10566).
- proxmox inventory plugin - avoid using deprecated option when templating
options (https://github.com/ansible-collections/community.proxmox/pull/108,
https://github.com/ansible-collections/community.general/pull/10553).
- proxmox_pct_remote connection plugin - avoid deprecated ansible-core paramiko
import helper, import paramiko directly instead (https://github.com/ansible-collections/community.proxmox/issues/146,
https://github.com/ansible-collections/community.proxmox/pull/151, https://github.com/ansible-collections/community.general/pull/10553).
- syspatch - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
- sysrc - use ``shlex`` to improve parsing of ``sysrc -e -a`` output (https://github.com/ansible-collections/community.general/issues/10394,
https://github.com/ansible-collections/community.general/pull/10400).
- sysupgrade - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
- 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).
- zypper_repository - avoid ansible-core 2.19 deprecation (https://github.com/ansible-collections/community.general/pull/10459).
release_summary: Regular bugfix release.
fragments:
- 10.7.3.yml
- 10400-sysrc.yml
- 10442-apk-fix-empty-names.yml
- 10445-cronvar-reject-empty-values.yml
- 10455-capabilities-improve-error-detection.yml
- 10458-listen_port_facts-prevent-type-error.yml
- 10459-deprecations.yml
- 10461-cronvar-non-existent-dir-crash-fix.yml
- 10491-irc.yml
- 10531-wsl-paramiko.yml
- 10532-apk.yml
- 10539-json_query.yml
- 10566-merge_variables.yml
- 108--disable_lookups.yml
- 151-connection-paramiko.yml
- become-pipelining.yml
release_date: '2025-08-11'
10.7.4:
changes:
bugfixes:
- Avoid deprecated functionality in ansible-core 2.20 (https://github.com/ansible-collections/community.general/pull/10687).
- apache2_module - check the ``cgi`` module restrictions only during activation
(https://github.com/ansible-collections/community.general/pull/10423).
- kdeconfig - ``kwriteconfig`` executable could not be discovered automatically
on systems with only ``kwriteconfig6`` installed. ``kwriteconfig6`` can
now be discovered by Ansible (https://github.com/ansible-collections/community.general/issues/10746,
https://github.com/ansible-collections/community.general/pull/10751).
- monit - fix crash caused by an unknown status value returned from the monit
service (https://github.com/ansible-collections/community.general/issues/10742,
https://github.com/ansible-collections/community.general/pull/10743).
- pids - prevent error when an empty string is provided for ``name`` (https://github.com/ansible-collections/community.general/issues/10672,
https://github.com/ansible-collections/community.general/pull/10688).
- selective callback plugin - specify ``ansible_loop_var`` instead of the
explicit value ``item`` when printing task result (https://github.com/ansible-collections/community.general/pull/10752).
release_summary: Regular bugfix release.
fragments:
- 10.7.4.yml
- 10423-apache_module-condition.yml
- 10687-deprecations.yml
- 10688-pids.yml
- 10743-monit-handle-unknown-status.yml
- 10751-kdeconfig-support-kwriteconfig6.yml
- 10752-selective-hardcoded-loop-var.yml
release_date: '2025-09-08'

View File

@@ -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,3 +40,4 @@ use_fqcn: true
add_plugin_period: true
changelog_nice_yaml: true
changelog_sort: version
vcs: auto

View File

@@ -8,7 +8,7 @@
community.general Filter Guide
==============================
The :ref:`community.general collection <plugins_in_community.general>` offers several useful filter plugins.
The :anscollection:`community.general collection <community.general#collection>` offers several useful filter plugins.
.. toctree::
:maxdepth: 2

View File

@@ -22,6 +22,7 @@ The same example from the Developer Guide would become:
from ansible_collections.community.general.plugins.module_utils import deps
with deps.declare("foo"):
import foo

View File

@@ -75,6 +75,7 @@ section above, but there are more elements that will take part in it.
from ansible_collections.community.general.plugins.module_utils.module_helper import ModuleHelper
class MyTest(ModuleHelper):
# behavior for module paramaters ONLY, see below for further information
output_params = ()
@@ -272,9 +273,9 @@ With that, MH will automatically generate the diff output for variables that hav
class MyTest(ModuleHelper):
diff_params = ('value', )
def __run__(self):
# example from community.general.gio_mime
self.vars.set_meta("handler", initial_value=gio_mime_get(self.runner, self.vars.mime_type), diff=True, change=True)
def __run__(self):
# example from community.general.gio_mime
self.vars.set_meta("handler", initial_value=gio_mime_get(self.runner, self.vars.mime_type), diff=True, change=True)
.. important::

View File

@@ -51,7 +51,7 @@ And by the time the module is about to exit:
That makes the return value of the module:
.. code-block:: javascript
.. code-block:: json
{
"abc": 123,

View File

@@ -8,7 +8,7 @@
community.general Test (Plugin) Guide
=====================================
The :ref:`community.general collection <plugins_in_community.general>` offers currently one test plugin.
The :anscollection:`community.general collection <community.general#collection>` offers currently one test plugin.
.. contents:: Topics

View File

@@ -5,7 +5,7 @@
namespace: community
name: general
version: 10.7.1
version: 10.7.4
readme: README.md
authors:
- Ansible (https://github.com/ansible)

View File

@@ -83,6 +83,9 @@ 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
@@ -99,6 +102,10 @@ 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 '''

View File

@@ -75,6 +75,8 @@ notes:
of 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 work if it
is used in context with the root user, because then no further prompt will be shown by 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"""
@@ -92,7 +94,7 @@ EXAMPLES = r"""
from re import compile as re_compile
from ansible.plugins.become import BecomeBase
from ansible.module_utils._text import to_bytes
from ansible.module_utils.common.text.converters import to_bytes
ansi_color_codes = re_compile(to_bytes(r'\x1B\[[0-9;]+m'))
@@ -107,6 +109,10 @@ 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)

View File

@@ -80,7 +80,7 @@ EXAMPLES = r"""
from re import compile as re_compile
from ansible.plugins.become import BecomeBase
from ansible.module_utils._text import to_bytes
from ansible.module_utils.common.text.converters import to_bytes
ansi_color_codes = re_compile(to_bytes(r"\x1B\[[0-9;]+m"))

View File

@@ -54,7 +54,7 @@ from multiprocessing import Lock
from itertools import chain
from ansible.errors import AnsibleError
from ansible.module_utils.common._collections_compat import MutableSet
from collections.abc import MutableSet
from ansible.plugins.cache import BaseCacheModule
from ansible.utils.display import Display

View File

@@ -28,7 +28,7 @@ except ImportError:
pass
from ansible.module_utils.six import binary_type, text_type
from ansible.module_utils.common._collections_compat import MutableMapping, MutableSequence
from collections.abc import MutableMapping, MutableSequence
from ansible.plugins.callback.default import CallbackModule as CallbackModule_default
from ansible.utils.color import colorize, hostcolor
from ansible.utils.display import Display

View File

@@ -34,7 +34,7 @@ import json
from ansible.utils.path import makedirs_safe
from ansible.module_utils.common.text.converters import to_bytes
from ansible.module_utils.common._collections_compat import MutableMapping
from collections.abc import MutableMapping
from ansible.parsing.ajson import AnsibleJSONEncoder
from ansible.plugins.callback import CallbackBase

View File

@@ -127,9 +127,7 @@ class CallbackModule(CallbackBase):
if not HAS_LOGSTASH:
self.disabled = True
self._display.warning("The required python-logstash/python3-logstash is not installed. "
"pip install python-logstash for Python 2"
"pip install python3-logstash for Python 3")
self._display.warning("The required python3-logstash is not installed.")
self.start_time = now()

View File

@@ -208,7 +208,7 @@ class CallbackModule(CallbackBase):
stderr = [r.get('exception', None), r.get('module_stderr', None)]
stderr = "\n".join([e for e in stderr if e]).strip()
self._print_host_or_item(r['item'],
self._print_host_or_item(r[r['ansible_loop_var']],
r.get('changed', False),
to_text(r.get('msg', '')),
r.get('diff', None),

View File

@@ -80,7 +80,7 @@ from subprocess import call, Popen, PIPE
from ansible.errors import AnsibleError, AnsibleConnectionFailure, AnsibleFileNotFound
from ansible.module_utils.common.process import get_bin_path
from ansible.module_utils._text import to_bytes, to_text
from ansible.module_utils.common.text.converters import to_bytes, to_text
from ansible.plugins.connection import ConnectionBase
@@ -155,11 +155,35 @@ class Connection(ConnectionBase):
stdout = to_text(stdout)
stderr = to_text(stderr)
if stderr == "Error: Instance is not running.\n":
raise AnsibleConnectionFailure(f"instance not running: {self._instance()}")
if stderr.startswith("Error: ") and stderr.rstrip().endswith(
": Instance is not running"
):
raise AnsibleConnectionFailure(
f"instance not running: {self._instance()} (remote={self.get_option('remote')}, project={self.get_option('project')})"
)
if stderr == "Error: Instance not found\n":
raise AnsibleConnectionFailure(f"instance not found: {self._instance()}")
if stderr.startswith("Error: ") and stderr.rstrip().endswith(
": Instance not found"
):
raise AnsibleConnectionFailure(
f"instance not found: {self._instance()} (remote={self.get_option('remote')}, project={self.get_option('project')})"
)
if (
stderr.startswith("Error: ")
and ": User does not have permission " in stderr
):
raise AnsibleConnectionFailure(
f"instance access denied: {self._instance()} (remote={self.get_option('remote')}, project={self.get_option('project')})"
)
if (
stderr.startswith("Error: ")
and ": User does not have entitlement " in stderr
):
raise AnsibleConnectionFailure(
f"instance access denied: {self._instance()} (remote={self.get_option('remote')}, project={self.get_option('project')})"
)
return process.returncode, stdout, stderr

View File

@@ -398,6 +398,7 @@ import os
import pathlib
import socket
import tempfile
import traceback
import typing as t
from ansible.errors import (
@@ -406,14 +407,20 @@ 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.plugins.connection import ConnectionBase
from ansible.utils.display import Display
from ansible.utils.path import makedirs_safe
from binascii import hexlify
try:
import paramiko
PARAMIKO_IMPORT_ERR = None
except ImportError:
paramiko = None
PARAMIKO_IMPORT_ERR = traceback.format_exc()
display = Display()
@@ -513,7 +520,7 @@ class Connection(ConnectionBase):
def _connect(self) -> Connection:
""" activates the connection object """
if paramiko is None:
if PARAMIKO_IMPORT_ERR is not None:
raise AnsibleError(f'paramiko is not installed: {to_native(PARAMIKO_IMPORT_ERR)}')
port = self.get_option('port')

View File

@@ -315,6 +315,7 @@ import pathlib
import shlex
import socket
import tempfile
import traceback
import typing as t
from ansible.errors import (
@@ -323,9 +324,8 @@ 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,8 +333,15 @@ 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:
if t.TYPE_CHECKING and PARAMIKO_IMPORT_ERR is None:
from paramiko import MissingHostKeyPolicy
from paramiko.client import SSHClient
from paramiko.pkey import PKey
@@ -437,7 +444,7 @@ class Connection(ConnectionBase):
def _connect(self) -> Connection:
""" activates the connection object """
if paramiko is None:
if PARAMIKO_IMPORT_ERR is not None:
raise AnsibleError(f'paramiko is not installed: {to_native(PARAMIKO_IMPORT_ERR)}')
port = self.get_option('port')

View File

@@ -74,3 +74,12 @@ options:
type: int
default: 10
"""
CONNECTION_NOTES = r"""
options: {}
notes:
- This module uses JSON-RPC over HTTP(S) to communicate with the FreeIPA server.
If you need to enroll the managed node into FreeIPA realm, you might want to consider using the collection
L(freeipa.ansible_freeipa, https://galaxy.ansible.com/ui/repo/published/freeipa/ansible_freeipa/), but shell access to one
node from the realm is required to manage the deployment.
"""

View File

@@ -36,7 +36,7 @@ _value:
"""
from ansible.errors import AnsibleFilterError
from ansible.module_utils.common._collections_compat import Sequence
from collections.abc import Sequence
from collections import Counter

View File

@@ -54,7 +54,7 @@ _value:
"""
from ansible.errors import AnsibleFilterError
from ansible.module_utils.common._collections_compat import Mapping, Sequence
from collections.abc import Mapping, Sequence
def groupby_as_dict(sequence, attribute):

View File

@@ -124,10 +124,17 @@ def json_query(data, expr):
'json_query filter')
# Hack to handle Ansible Unsafe text, AnsibleMapping and AnsibleSequence
# 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', )
# 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',
)
try:
return jmespath.search(expr, data)
except jmespath.exceptions.JMESPathError as e:

View File

@@ -197,7 +197,7 @@ _value:
from ansible.errors import AnsibleFilterError
from ansible.module_utils.six import string_types
from ansible.module_utils.common._collections_compat import Mapping, Sequence
from collections.abc import Mapping, Sequence
from ansible.utils.vars import merge_hash
from collections import defaultdict

View File

@@ -51,7 +51,7 @@ _value:
from ansible.errors import AnsibleFilterError
from ansible.module_utils.common._collections_compat import Mapping
from collections.abc import Mapping
from ansible.module_utils.six.moves import StringIO
from ansible.module_utils.six.moves.configparser import ConfigParser

View File

@@ -119,7 +119,7 @@ except ImportError:
HAS_PRETTYTABLE = False
from ansible.errors import AnsibleFilterError
from ansible.module_utils._text import to_text
from ansible.module_utils.common.text.converters import to_text
from ansible.module_utils.six import string_types

View File

@@ -291,11 +291,11 @@ class InventoryModule(BaseInventoryPlugin, Constructable):
self.group_by_hostgroups = self.get_option('group_by_hostgroups')
if self.templar.is_template(self.icinga2_url):
self.icinga2_url = self.templar.template(variable=self.icinga2_url, disable_lookups=False)
self.icinga2_url = self.templar.template(variable=self.icinga2_url)
if self.templar.is_template(self.icinga2_user):
self.icinga2_user = self.templar.template(variable=self.icinga2_user, disable_lookups=False)
self.icinga2_user = self.templar.template(variable=self.icinga2_user)
if self.templar.is_template(self.icinga2_password):
self.icinga2_password = self.templar.template(variable=self.icinga2_password, disable_lookups=False)
self.icinga2_password = self.templar.template(variable=self.icinga2_password)
self.icinga2_url = f"{self.icinga2_url.rstrip('/')}/v1"

View File

@@ -150,7 +150,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
access_token = self.get_option('access_token')
if self.templar.is_template(access_token):
access_token = self.templar.template(variable=access_token, disable_lookups=False)
access_token = self.templar.template(variable=access_token)
if access_token is None:
raise AnsibleError((

View File

@@ -687,7 +687,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):
for o in ('url', 'user', 'password', 'token_id', 'token_secret'):
v = self.get_option(o)
if self.templar.is_template(v):
v = self.templar.template(v, disable_lookups=False)
v = self.templar.template(v)
setattr(self, f'proxmox_{o}', v)
# some more cleanup and validation

View File

@@ -77,7 +77,7 @@ from subprocess import Popen, PIPE
from ansible.errors import AnsibleParserError
from ansible.module_utils.common.text.converters import to_bytes, to_text
from ansible.module_utils.common._collections_compat import MutableMapping
from collections.abc import MutableMapping
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable
from ansible.module_utils.common.process import get_bin_path

View File

@@ -121,7 +121,7 @@ _list:
"""
from ansible.errors import AnsibleLookupError
from ansible.module_utils.common._collections_compat import Mapping, Sequence
from collections.abc import Mapping, Sequence
from ansible.module_utils.six import string_types
from ansible.plugins.lookup import LookupBase
from ansible.release import __version__ as ansible_version
@@ -207,7 +207,10 @@ class LookupModule(LookupBase):
result = []
if len(terms) > 0:
templar = Templar(loader=self._templar._loader)
if HAS_DATATAGGING:
templar = self._templar.copy_with_new_env(available_variables={})
else:
templar = Templar(loader=self._templar._loader)
data = []
vars_so_far = set()
for index, term in enumerate(terms):

View File

@@ -194,8 +194,8 @@ class LookupModule(LookupBase):
result = initial_value
for var_name in var_merge_names:
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
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
var_type = _verify_and_get_type(var_value)
if prev_var_type is None:

View File

@@ -31,7 +31,7 @@ except ImportError:
from ansible.module_utils import six
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.common._collections_compat import Mapping
from ansible.module_utils.six.moves.collections_abc import Mapping
def transform_list_to_dict(list_):

View File

@@ -165,16 +165,6 @@ 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

View File

@@ -112,16 +112,6 @@ 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

View File

@@ -113,22 +113,6 @@ 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
@@ -164,12 +148,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.warnings.append(
module.warn(
"No MPM module loaded! apache2 reload AND other module actions"
" will fail if no MPM module is loaded immediately."
)
else:
module.warnings.append(error_msg)
module.warn(error_msg)
return False
else:
module.fail_json(msg=error_msg)
@@ -224,9 +208,7 @@ def _set_state(module, state):
if _module_is_enabled(module) != want_enabled:
if module.check_mode:
module.exit_json(changed=True,
result=success_msg,
warnings=module.warnings)
module.exit_json(changed=True, result=success_msg)
a2mod_binary_path = module.get_bin_path(a2mod_binary)
if a2mod_binary_path is None:
@@ -241,9 +223,7 @@ 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,
warnings=module.warnings)
module.exit_json(changed=True, result=success_msg)
else:
msg = (
'Failed to set module {name} to {state}:\n'
@@ -261,9 +241,7 @@ def _set_state(module, state):
stdout=stdout,
stderr=stderr)
else:
module.exit_json(changed=False,
result=success_msg,
warnings=module.warnings)
module.exit_json(changed=False, result=success_msg)
def main():
@@ -279,11 +257,9 @@ 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.")
if name == 'cgi' and module.params['state'] == 'present' and _run_threaded(module):
module.fail_json(msg="Your MPM seems to be threaded, therefore enabling cgi module is not allowed.")
if not module.params['identifier']:
module.params['identifier'] = create_apache_identifier(module.params['name'])

View File

@@ -351,6 +351,9 @@ 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, )

View File

@@ -14,7 +14,7 @@ module: campfire
short_description: Send a message to Campfire
description:
- Send a message to Campfire.
- Messages with newlines will result in a "Paste" message being sent.
- Messages with newlines result in a "Paste" message being sent.
extends_documentation_fragment:
- community.general.attributes
attributes:

View File

@@ -40,10 +40,10 @@ options:
choices: [absent, present]
default: present
notes:
- The capabilities system will automatically transform operators and flags into the effective set, so for example, C(cap_foo=ep)
will probably become C(cap_foo+ep).
- This module does not attempt to determine the final operator and flags to compare, so you will want to ensure that your
capabilities argument matches the final capabilities.
- The capabilities system automatically transforms operators and flags into the effective set, so for example, C(cap_foo=ep)
probably becomes C(cap_foo+ep).
- This module does not attempt to determine the final operator and flags to compare, so you want to ensure that your capabilities
argument matches the final capabilities.
author:
- Nate Coraor (@natefoo)
"""
@@ -123,6 +123,8 @@ 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

View File

@@ -28,7 +28,7 @@ options:
executable:
description:
- Path to the C(cargo) installed in the system.
- If not specified, the module will look C(cargo) in E(PATH).
- If not specified, the module looks for C(cargo) in E(PATH).
type: path
version_added: 7.5.0
name:
@@ -39,11 +39,11 @@ options:
required: true
path:
description: The base path where to install the Rust packages. Cargo automatically appends V(/bin). In other words, V(/usr/local)
will become V(/usr/local/bin).
becomes V(/usr/local/bin).
type: path
version:
description: The version to install. If O(name) contains multiple values, the module will try to install all of them in
this version.
description: The version to install. If O(name) contains multiple values, the module tries to install all of them in this
version.
type: str
required: false
locked:

View File

@@ -89,14 +89,6 @@ EXAMPLES = r"""
api_secret: "{{ api_secret }}"
"""
RETURN = r"""
changed:
description: Whether the API accepted the message.
returned: always
type: bool
sample: true
"""
import json

View File

@@ -50,38 +50,41 @@ cloud_init_data_facts:
description: Facts of result and status.
returned: success
type: dict
sample: '{
"status": {
sample:
{
"status": {
"v1": {
"datasource": "DataSourceCloudStack",
"errors": []
},
"result": {
"v1": {
"datasource": "DataSourceCloudStack",
"init": {
"errors": [],
"finished": 1522066377.0185432,
"start": 1522066375.2648022
},
"init-local": {
"errors": [],
"finished": 1522066373.70919,
"start": 1522066373.4726632
},
"modules-config": {
"errors": [],
"finished": 1522066380.9097016,
"start": 1522066379.0011985
},
"modules-final": {
"errors": [],
"finished": 1522066383.56594,
"start": 1522066382.3449218
},
"stage": null
"datasource": "DataSourceCloudStack",
"errors": []
}
}'
},
"result": {
"v1": {
"datasource": "DataSourceCloudStack",
"init": {
"errors": [],
"finished": 1522066377.0185432,
"start": 1522066375.2648022
},
"init-local": {
"errors": [],
"finished": 1522066373.70919,
"start": 1522066373.4726632
},
"modules-config": {
"errors": [],
"finished": 1522066380.9097016,
"start": 1522066379.0011985
},
"modules-final": {
"errors": [],
"finished": 1522066383.56594,
"start": 1522066382.3449218
},
"stage": null
}
}
}
"""
import os

View File

@@ -127,7 +127,7 @@ options:
description:
- Whether the record should be the only one for that record type and record name.
- Only use with O(state=present).
- This will delete all other records with the same record name and type.
- This deletes all other records with the same record name and type.
type: bool
state:
description:
@@ -157,6 +157,7 @@ options:
- The type of DNS record to create. Required if O(state=present).
- Support for V(SPF) has been removed from community.general 9.0.0 since that record type is no longer supported by
CloudFlare.
- Support for V(PTR) has been added in community.general 11.1.0.
type: str
choices: [A, AAAA, CNAME, DS, MX, NS, SRV, SSHFP, TLSA, CAA, TXT]
value:
@@ -369,10 +370,7 @@ record:
description: Extra Cloudflare-specific information about the record.
returned: success
type: dict
sample:
{
"auto_added": false
}
sample: {"auto_added": false}
modified_on:
description: Record modification date.
returned: success
@@ -403,7 +401,7 @@ record:
returned: success
type: list
elements: str
sample: ['production', 'app']
sample: ["production", "app"]
version_added: 10.1.0
tags_modified_on:
description: When the record tags were last modified. Omitted if there are no tags.

View File

@@ -42,12 +42,12 @@ options:
type: str
use_ssl:
description:
- If V(false), an HTTP connection will be used instead of the default HTTPS connection.
- If V(false), an HTTP connection is used instead of the default HTTPS connection.
type: bool
default: true
validate_certs:
description:
- If V(false), SSL certificates will not be validated.
- If V(false), SSL certificates are not validated.
- This should only set to V(false) when used on personally controlled sites using self-signed certificates.
type: bool
default: true

View File

@@ -42,12 +42,12 @@ options:
type: str
use_ssl:
description:
- If V(false), an HTTP connection will be used instead of the default HTTPS connection.
- If V(false), an HTTP connection is used instead of the default HTTPS connection.
type: bool
default: true
validate_certs:
description:
- If V(false), SSL certificates will not be validated.
- If V(false), SSL certificates are not validated.
- This should only set to V(false) when used on personally controlled sites using self-signed certificates.
type: bool
default: true

View File

@@ -17,7 +17,7 @@ author:
short_description: Dependency Manager for PHP
description:
- Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs
and it will install them in your project for you.
and it installs them in your project for you.
extends_documentation_fragment:
- community.general.attributes
attributes:
@@ -45,7 +45,7 @@ options:
type: path
description:
- Directory of your project (see C(--working-dir)). This is required when the command is not run globally.
- Will be ignored if O(global_command=true).
- This is ignored if O(global_command=true).
global_command:
description:
- Runs the specified command globally.

View File

@@ -21,8 +21,8 @@ description:
name and ID respectively by appending V(service:) Node level checks require a O(check_name) and optionally a O(check_id).
- Currently, there is no complete way to retrieve the script, interval or TTL metadata for a registered check. Without this
metadata it is not possible to tell if the data supplied with ansible represents a change to a check. As a result this
does not attempt to determine changes and will always report a changed occurred. An API method is planned to supply this
metadata so at that stage change management will be added.
does not attempt to determine changes and it always reports a changed occurred. An API method is planned to supply this
metadata so at that stage change management is to be added.
- See U(http://consul.io) for more details.
requirements:
- python-consul
@@ -83,25 +83,25 @@ options:
service_address:
type: str
description:
- The address to advertise that the service will be listening on. This value will be passed as the C(address) parameter
to Consul's C(/v1/agent/service/register) API method, so refer to the Consul API documentation for further details.
- The address to advertise that the service is listening on. This value is passed as the C(address) parameter to Consul's
C(/v1/agent/service/register) API method, so refer to the Consul API documentation for further details.
tags:
type: list
elements: str
description:
- Tags that will be attached to the service registration.
- Tags that are attached to the service registration.
script:
type: str
description:
- The script/command that will be run periodically to check the health of the service.
- The script/command that is run periodically to check the health of the service.
- Requires O(interval) to be provided.
- Mutually exclusive with O(ttl), O(tcp) and O(http).
interval:
type: str
description:
- The interval at which the service check will be run. This is a number with a V(s) or V(m) suffix to signify the units
of seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s) will be used by default, for example
V(10) will be V(10s).
- The interval at which the service check is run. This is a number with a V(s) or V(m) suffix to signify the units of
seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s) is used by default, for example V(10)
is V(10s).
- Required if one of the parameters O(script), O(http), or O(tcp) is specified.
check_id:
type: str
@@ -122,25 +122,25 @@ options:
ttl:
type: str
description:
- Checks can be registered with a TTL instead of a O(script) and O(interval) this means that the service will check
in with the agent before the TTL expires. If it does not the check will be considered failed. Required if registering
a check and the script an interval are missing Similar to the interval this is a number with a V(s) or V(m) suffix
to signify the units of seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s) will be used
by default, for example V(10) will be V(10s).
- Checks can be registered with a TTL instead of a O(script) and O(interval) this means that the service checks in with
the agent before the TTL expires. If it does not the check is considered failed. Required if registering a check and
the script an interval are missing Similar to the interval this is a number with a V(s) or V(m) suffix to signify
the units of seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s) is used by default, for
example V(10) is equivalent to V(10s).
- Mutually exclusive with O(script), O(tcp) and O(http).
tcp:
type: str
description:
- Checks can be registered with a TCP port. This means that Consul will check if the connection attempt to that port
is successful (that is, the port is currently accepting connections). The format is V(host:port), for example V(localhost:80).
- Checks can be registered with a TCP port. This means that Consul checks if the connection attempt to that port is
successful (that is, the port is currently accepting connections). The format is V(host:port), for example V(localhost:80).
- Requires O(interval) to be provided.
- Mutually exclusive with O(script), O(ttl) and O(http).
version_added: '1.3.0'
http:
type: str
description:
- Checks can be registered with an HTTP endpoint. This means that Consul will check that the http endpoint returns a
successful HTTP status.
- Checks can be registered with an HTTP endpoint. This means that Consul checks that the http endpoint returns a successful
HTTP status.
- Requires O(interval) to be provided.
- Mutually exclusive with O(script), O(ttl) and O(tcp).
timeout:
@@ -148,7 +148,7 @@ options:
description:
- A custom HTTP check timeout. The Consul default is 10 seconds. Similar to the interval this is a number with a V(s)
or V(m) suffix to signify the units of seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s)
will be used by default, for example V(10) will be V(10s).
is used by default, for example V(10) is equivalent to V(10s).
token:
type: str
description:

View File

@@ -50,7 +50,7 @@ RETURN = r"""
result:
description:
- The bootstrap result as returned by the Consul HTTP API.
- B(Note:) If O(bootstrap_secret) has been specified the C(SecretID) and C(ID) will not contain the secret but C(VALUE_SPECIFIED_IN_NO_LOG_PARAMETER).
- B(Note:) If O(bootstrap_secret) has been specified the C(SecretID) and C(ID) do not contain the secret but C(VALUE_SPECIFIED_IN_NO_LOG_PARAMETER).
If you pass O(bootstrap_secret), make sure your playbook/role does not depend on this return value!
returned: changed
type: dict

View File

@@ -17,9 +17,9 @@ description:
- Allows the addition, modification and deletion of checks in a Consul cluster using the agent. For more details on using
and configuring Checks, see U(https://developer.hashicorp.com/consul/api-docs/agent/check).
- Currently, there is no complete way to retrieve the script, interval or TTL metadata for a registered check. Without this
metadata it is not possible to tell if the data supplied with ansible represents a change to a check. As a result this
does not attempt to determine changes and will always report a changed occurred. An API method is planned to supply this
metadata so at that stage change management will be added.
metadata it is not possible to tell if the data supplied with ansible represents a change to a check. As a result, the
module does not attempt to determine changes and it always reports a changed occurred. An API method is planned to supply
this metadata so at that stage change management is to be added.
author:
- Michael Ilg (@Ilgmi)
extends_documentation_fragment:
@@ -36,8 +36,8 @@ attributes:
diff_mode:
support: partial
details:
- In check mode the diff will show the object as it is defined in the module options and not the object structure of
the Consul API.
- In check mode the diff shows the object as it is defined in the module options and not the object structure of the
Consul API.
options:
state:
description:
@@ -52,13 +52,13 @@ options:
id:
description:
- Specifies a unique ID for this check on the node. This defaults to the O(name) parameter, but it may be necessary
to provide an ID for uniqueness. This value will return in the response as "CheckId".
to provide an ID for uniqueness. This value is returned in the response as V(CheckId).
type: str
interval:
description:
- The interval at which the service check will be run. This is a number with a V(s) or V(m) suffix to signify the units
of seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s) will be used by default, for example
V(10) will be V(10s).
- The interval at which the service check is run. This is a number with a V(s) or V(m) suffix to signify the units of
seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s) is used by default, for example V(10)
is equivalent to V(10s).
- Required if one of the parameters O(args), O(http), or O(tcp) is specified.
type: str
notes:
@@ -74,11 +74,11 @@ options:
elements: str
ttl:
description:
- Checks can be registered with a TTL instead of a O(args) and O(interval) this means that the service will check in
with the agent before the TTL expires. If it does not the check will be considered failed. Required if registering
a check and the script an interval are missing Similar to the interval this is a number with a V(s) or V(m) suffix
to signify the units of seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s) will be used
by default, for example V(10) will be V(10s).
- Checks can be registered with a TTL instead of a O(args) and O(interval) this means that the service checks in with
the agent before the TTL expires. If it does not the check is considered failed. Required if registering a check and
the script an interval are missing Similar to the interval this is a number with a V(s) or V(m) suffix to signify
the units of seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s) is used by default, for
example V(10) is equivalent to V(10s).
- Mutually exclusive with O(args), O(tcp) and O(http).
type: str
tcp:
@@ -91,8 +91,8 @@ options:
version_added: '1.3.0'
http:
description:
- Checks can be registered with an HTTP endpoint. This means that Consul will check that the http endpoint returns a
successful HTTP status.
- Checks can be registered with an HTTP endpoint. This means that Consul checks that the HTTP endpoint returns a successful
HTTP status.
- Requires O(interval) to be provided.
- Mutually exclusive with O(args), O(ttl) and O(tcp).
type: str
@@ -100,7 +100,7 @@ options:
description:
- A custom HTTP check timeout. The Consul default is 10 seconds. Similar to the interval this is a number with a V(s)
or V(m) suffix to signify the units of seconds or minutes, for example V(15s) or V(1m). If no suffix is supplied V(s)
will be used by default, for example V(10) will be V(10s).
is used by default, for example V(10) is equivalent to V(10s).
type: str
service_id:
description:

View File

@@ -31,7 +31,7 @@ attributes:
diff_mode:
support: partial
details:
- In check mode the diff will miss operational attributes.
- In check mode the diff misses operational attributes.
options:
state:
description:
@@ -50,13 +50,13 @@ options:
type: str
tags:
description:
- Tags that will be attached to the service registration.
- Tags that are attached to the service registration.
type: list
elements: str
address:
description:
- The address to advertise that the service will be listening on. This value will be passed as the C(address) parameter
to Consul's C(/v1/agent/service/register) API method, so refer to the Consul API documentation for further details.
- The address to advertise that the service listens on. This value is passed as the C(address) parameter to Consul's
C(/v1/agent/service/register) API method, so refer to the Consul API documentation for further details.
type: str
meta:
description:

View File

@@ -29,7 +29,7 @@ attributes:
diff_mode:
support: partial
details:
- In check mode the diff will miss operational attributes.
- In check mode the diff misses operational attributes.
options:
state:
description:
@@ -71,7 +71,7 @@ options:
config:
description:
- The raw configuration to use for the chosen auth method.
- Contents will vary depending upon the type chosen.
- Contents vary depending upon the O(type) chosen.
- Required when the auth method is created.
type: dict
"""

View File

@@ -29,7 +29,7 @@ attributes:
diff_mode:
support: partial
details:
- In check mode the diff will miss operational attributes.
- In check mode the diff misses operational attributes.
options:
state:
description:

View File

@@ -36,12 +36,12 @@ options:
state:
description:
- The action to take with the supplied key and value. If the state is V(present) and O(value) is set, the key contents
will be set to the value supplied and C(changed) will be set to V(true) only if the value was different to the current
contents. If the state is V(present) and O(value) is not set, the existing value associated to the key will be returned.
The state V(absent) will remove the key/value pair, again C(changed) will be set to V(true) only if the key actually
existed prior to the removal. An attempt can be made to obtain or free the lock associated with a key/value pair with
the states V(acquire) or V(release) respectively. A valid session must be supplied to make the attempt C(changed)
will be V(true) if the attempt is successful, V(false) otherwise.
is set to the value supplied and C(changed) is set to V(true) only if the value was different to the current contents.
If the state is V(present) and O(value) is not set, the existing value associated to the key is returned. The state
V(absent) is used to remove the key/value pair, again C(changed) is set to V(true) only if the key actually existed
prior to the removal. An attempt can be made to obtain or free the lock associated with a key/value pair with the
states V(acquire) or V(release) respectively. A valid session must be supplied to make the attempt C(changed) is V(true)
if the attempt is successful, V(false) otherwise.
type: str
choices: [absent, acquire, present, release]
default: present
@@ -73,9 +73,8 @@ options:
type: str
cas:
description:
- Used when acquiring a lock with a session. If the O(cas) is V(0), then Consul will only put the key if it does not
already exist. If the O(cas) value is non-zero, then the key is only set if the index matches the ModifyIndex of that
key.
- Used when acquiring a lock with a session. If the O(cas) is V(0), then Consul only puts the key if it does not already
exist. If the O(cas) value is non-zero, then the key is only set if the index matches the ModifyIndex of that key.
type: str
flags:
description:
@@ -103,8 +102,7 @@ options:
default: true
datacenter:
description:
- The name of the datacenter to query. If unspecified, the query will default to the datacenter of the Consul agent
on O(host).
- The name of the datacenter to query. If unspecified, the query defaults to the datacenter of the Consul agent on O(host).
type: str
version_added: 10.0.0
"""

View File

@@ -31,7 +31,7 @@ attributes:
support: partial
version_added: 8.3.0
details:
- In check mode the diff will miss operational attributes.
- In check mode the diff misses operational attributes.
action_group:
version_added: 8.3.0
options:

View File

@@ -29,7 +29,7 @@ attributes:
diff_mode:
support: partial
details:
- In check mode the diff will miss operational attributes.
- In check mode the diff misses operational attributes.
version_added: 8.3.0
action_group:
version_added: 8.3.0
@@ -48,15 +48,15 @@ options:
description:
description:
- Description of the role.
- If not specified, the assigned description will not be changed.
- If not specified, the assigned description is not changed.
type: str
policies:
type: list
elements: dict
description:
- List of policies to attach to the role. Each policy is a dict.
- If the parameter is left blank, any policies currently assigned will not be changed.
- Any empty array (V([])) will clear any policies previously set.
- If the parameter is left blank, any policies currently assigned are not changed.
- Any empty array (V([])) clears any policies previously set.
suboptions:
name:
description:
@@ -90,8 +90,8 @@ options:
elements: dict
description:
- List of service identities to attach to the role.
- If not specified, any service identities currently assigned will not be changed.
- If the parameter is an empty array (V([])), any node identities assigned will be unassigned.
- If not specified, any service identities currently assigned are not changed.
- If the parameter is an empty array (V([])), any node identities assigned are unassigned.
suboptions:
service_name:
description:
@@ -106,9 +106,9 @@ options:
- name
datacenters:
description:
- The datacenters the policies will be effective.
- This will result in effective policy only being valid in this datacenter.
- If an empty array (V([])) is specified, the policies will valid in all datacenters.
- The datacenters where the policies are effective.
- This results in effective policy only being valid in this datacenter.
- If an empty array (V([])) is specified, the policies are valid in all datacenters.
- Including those which do not yet exist but may in the future.
type: list
elements: str
@@ -117,8 +117,8 @@ options:
elements: dict
description:
- List of node identities to attach to the role.
- If not specified, any node identities currently assigned will not be changed.
- If the parameter is an empty array (V([])), any node identities assigned will be unassigned.
- If not specified, any node identities currently assigned are not changed.
- If the parameter is an empty array (V([])), any node identities assigned are unassigned.
suboptions:
node_name:
description:
@@ -134,7 +134,7 @@ options:
datacenter:
description:
- The nodes datacenter.
- This will result in effective policy only being valid in this datacenter.
- This results in effective policy only being valid in this datacenter.
type: str
required: true
"""

View File

@@ -57,7 +57,7 @@ options:
default: 15
node:
description:
- The name of the node that with which the session will be associated. By default this is the name of the agent.
- The name of the node that with which the session is associated. By default this is the name of the agent.
type: str
datacenter:
description:
@@ -65,8 +65,8 @@ options:
type: str
checks:
description:
- Checks that will be used to verify the session health. If all the checks fail, the session will be invalidated and
any locks associated with the session will be release and can be acquired once the associated lock delay has expired.
- Checks that are used to verify the session health. If all the checks fail, the session is invalidated and any locks
associated with the session are released and can be acquired once the associated lock delay has expired.
type: list
elements: str
behavior:

View File

@@ -29,7 +29,7 @@ attributes:
diff_mode:
support: partial
details:
- In check mode the diff will miss operational attributes.
- In check mode the diff misses operational attributes.
action_group:
version_added: 8.3.0
options:
@@ -41,11 +41,11 @@ options:
type: str
accessor_id:
description:
- Specifies a UUID to use as the token's Accessor ID. If not specified a UUID will be generated for this field.
- Specifies a UUID to use as the token's Accessor ID. If not specified a UUID is generated for this field.
type: str
secret_id:
description:
- Specifies a UUID to use as the token's Secret ID. If not specified a UUID will be generated for this field.
- Specifies a UUID to use as the token's Secret ID. If not specified a UUID is generated for this field.
type: str
description:
description:
@@ -56,8 +56,8 @@ options:
elements: dict
description:
- List of policies to attach to the token. Each policy is a dict.
- If the parameter is left blank, any policies currently assigned will not be changed.
- Any empty array (V([])) will clear any policies previously set.
- If the parameter is left blank, any policies currently assigned are not changed.
- Any empty array (V([])) clears any policies previously set.
suboptions:
name:
description:
@@ -74,8 +74,8 @@ options:
elements: dict
description:
- List of roles to attach to the token. Each role is a dict.
- If the parameter is left blank, any roles currently assigned will not be changed.
- Any empty array (V([])) will clear any roles previously set.
- If the parameter is left blank, any roles currently assigned are not changed.
- Any empty array (V([])) clears any roles previously set.
suboptions:
name:
description:
@@ -108,8 +108,8 @@ options:
elements: dict
description:
- List of service identities to attach to the token.
- If not specified, any service identities currently assigned will not be changed.
- If the parameter is an empty array (V([])), any node identities assigned will be unassigned.
- If not specified, any service identities currently assigned are not changed.
- If the parameter is an empty array (V([])), any node identities assigned are unassigned.
suboptions:
service_name:
description:
@@ -120,8 +120,8 @@ options:
required: true
datacenters:
description:
- The datacenters the token will be effective.
- If an empty array (V([])) is specified, the token will valid in all datacenters.
- The datacenters where the token is effective.
- If an empty array (V([])) is specified, the token is valid in all datacenters.
- Including those which do not yet exist but may in the future.
type: list
elements: str
@@ -130,8 +130,8 @@ options:
elements: dict
description:
- List of node identities to attach to the token.
- If not specified, any node identities currently assigned will not be changed.
- If the parameter is an empty array (V([])), any node identities assigned will be unassigned.
- If not specified, any node identities currently assigned are not changed.
- If the parameter is an empty array (V([])), any node identities assigned are unassigned.
suboptions:
node_name:
description:
@@ -143,7 +143,7 @@ options:
datacenter:
description:
- The nodes datacenter.
- This will result in effective token only being valid in this datacenter.
- This results in effective token only being valid in this datacenter.
type: str
required: true
local:
@@ -152,7 +152,7 @@ options:
type: bool
expiration_ttl:
description:
- This is a convenience field and if set will initialize the C(expiration_time). Can be specified in the form of V(60s)
- This is a convenience field and if set it initializes the C(expiration_time). Can be specified in the form of V(60s)
or V(5m) (that is, 60 seconds or 5 minutes, respectively). Ingored when the token is updated!
type: str
"""

View File

@@ -59,16 +59,18 @@ options:
install_recommendations:
description:
- If V(true), installs dependencies declared as recommends per META spec.
- If V(false), it ensures the dependencies declared as recommends are not installed, overriding any decision made earlier in E(PERL_CPANM_OPT).
- If parameter is not set, C(cpanm) will use its existing defaults.
- If V(false), it ensures the dependencies declared as recommends are not installed, overriding any decision made earlier
in E(PERL_CPANM_OPT).
- If parameter is not set, C(cpanm) uses its existing defaults.
- When these dependencies fail to install, cpanm continues the installation, since they are just recommendation.
type: bool
version_added: 10.3.0
install_suggestions:
description:
- If V(true), installs dependencies declared as suggests per META spec.
- If V(false), it ensures the dependencies declared as suggests are not installed, overriding any decision made earlier in E(PERL_CPANM_OPT).
- If parameter is not set, C(cpanm) will use its existing defaults.
- If V(false), it ensures the dependencies declared as suggests are not installed, overriding any decision made earlier
in E(PERL_CPANM_OPT).
- If parameter is not set, C(cpanm) uses its existing defaults.
- When these dependencies fail to install, cpanm continues the installation, since they are just suggestion.
type: bool
version_added: 10.3.0
@@ -97,14 +99,13 @@ options:
notes:
- Please note that U(http://search.cpan.org/dist/App-cpanminus/bin/cpanm, cpanm) must be installed on the remote host.
- 'This module now comes with a choice of execution O(mode): V(compatibility) or V(new).'
- 'O(mode=compatibility): When using V(compatibility) mode, the module will keep backward compatibility. This was the default
- 'O(mode=compatibility): When using V(compatibility) mode, the module keeps backward compatibility. This was the default
mode before community.general 9.0.0. O(name) must be either a module name or a distribution file. If the perl module given
by O(name) is installed (at the exact O(version) when specified), then nothing happens. Otherwise, it will be installed
using the C(cpanm) executable. O(name) cannot be an URL, or a git URL. C(cpanm) version specifiers do not work in this
mode.'
- 'O(mode=new): When using V(new) mode, the module will behave differently. The O(name) parameter may refer to a module
name, a distribution file, a HTTP URL or a git repository URL as described in C(cpanminus) documentation. C(cpanm) version
specifiers are recognized. This is the default mode from community.general 9.0.0 onwards.'
by O(name) is installed (at the exact O(version) when specified), then nothing happens. Otherwise, it is installed using
the C(cpanm) executable. O(name) cannot be an URL, or a git URL. C(cpanm) version specifiers do not work in this mode.'
- 'O(mode=new): When using V(new) mode, the module behaves differently. The O(name) parameter may refer to a module name,
a distribution file, a HTTP URL or a git repository URL as described in C(cpanminus) documentation. C(cpanm) version specifiers
are recognized. This is the default mode from community.general 9.0.0 onwards.'
seealso:
- name: C(cpanm) command manual page
description: Manual page for the command.

View File

@@ -43,12 +43,12 @@ options:
type: str
insertafter:
description:
- If specified, the variable will be inserted after the variable specified.
- If specified, the variable is inserted after the variable specified.
- Used with O(state=present).
type: str
insertbefore:
description:
- Used with O(state=present). If specified, the variable will be inserted just before the variable specified.
- Used with O(state=present). If specified, the variable is inserted just before the variable specified.
type: str
state:
description:
@@ -135,6 +135,9 @@ 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
@@ -393,6 +396,8 @@ 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

View File

@@ -24,14 +24,14 @@ options:
name:
description:
- Name of the encrypted block device as it appears in the C(/etc/crypttab) file, or optionally prefixed with V(/dev/mapper/),
as it appears in the filesystem. V(/dev/mapper/) will be stripped from O(name).
as it appears in the filesystem. V(/dev/mapper/) is stripped from O(name).
type: str
required: true
state:
description:
- Use V(present) to add a line to C(/etc/crypttab) or update its definition if already present.
- Use V(absent) to remove a line with matching O(name).
- Use V(opts_present) to add options to those already present; options with different values will be updated.
- Use V(opts_present) to add options to those already present; options with different values are updated.
- Use V(opts_absent) to remove options from the existing set.
type: str
required: true
@@ -73,6 +73,14 @@ EXAMPLES = r"""
opts: discard
loop: '{{ ansible_mounts }}'
when: "'/dev/mapper/luks-' in item.device"
- name: Add entry to /etc/crypttab for luks-home with password file
community.general.crypttab:
name: luks-home
backing_device: UUID=123e4567-e89b-12d3-a456-426614174000
password: /root/keys/luks-home.key
opts: discard,cipher=aes-cbc-essiv:sha256
state: present
"""
import os

View File

@@ -16,7 +16,7 @@ __metaclass__ = type
DOCUMENTATION = r"""
module: datadog_event
short_description: Posts events to Datadog service
short_description: Posts events to Datadog service
description:
- Allows to post events to Datadog (www.datadoghq.com) service.
- Uses http://docs.datadoghq.com/api/#events API.
@@ -89,8 +89,8 @@ options:
- An arbitrary string to use for aggregation.
validate_certs:
description:
- If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using
self-signed certificates.
- If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed
certificates.
type: bool
default: true
"""

View File

@@ -92,26 +92,26 @@ options:
type: dict
description:
- Dictionary of scopes to silence, with timestamps or None.
- Each scope will be muted until the given POSIX timestamp or forever if the value is None.
- Each scope is muted until the given POSIX timestamp or forever if the value is V(None).
notify_no_data:
description:
- Whether this monitor will notify when data stops reporting.
- Whether this monitor notifies when data stops reporting.
type: bool
default: false
no_data_timeframe:
description:
- The number of minutes before a monitor will notify when data stops reporting.
- The number of minutes before a monitor notifies when data stops reporting.
- Must be at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks.
- If not specified, it defaults to 2x timeframe for metric, 2 minutes for service.
type: str
timeout_h:
description:
- The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state.
- The number of hours of the monitor not reporting data before it automatically resolves from a triggered state.
type: str
renotify_interval:
description:
- The number of minutes after the last notification before a monitor will re-notify on the current status.
- It will only re-notify if it is not resolved.
- The number of minutes after the last notification before a monitor re-notifies on the current status.
- It only re-notifies if it is not resolved.
type: str
escalation_message:
description:
@@ -120,7 +120,7 @@ options:
type: str
notify_audit:
description:
- Whether tagged users will be notified on changes to this monitor.
- Whether tagged users are notified on changes to this monitor.
type: bool
default: false
thresholds:
@@ -138,7 +138,7 @@ options:
require_full_window:
description:
- Whether this monitor needs a full window of data before it gets evaluated.
- We highly recommend you set this to False for sparse metrics, otherwise some evaluations will be skipped.
- We highly recommend you set this to V(false) for sparse metrics, otherwise some evaluations are skipped.
type: bool
new_host_delay:
description:
@@ -153,7 +153,7 @@ options:
id:
description:
- The ID of the alert.
- If set, will be used instead of the name to locate the alert.
- If set, it is used instead of O(name) to locate the alert.
type: str
include_tags:
description:

View File

@@ -17,10 +17,10 @@ short_description: Modify and read dconf database
description:
- This module allows modifications and reading of C(dconf) database. The module is implemented as a wrapper around C(dconf)
tool. Please see the dconf(1) man page for more details.
- Since C(dconf) requires a running D-Bus session to change values, the module will try to detect an existing session and
reuse it, or run the tool using C(dbus-run-session).
- Since C(dconf) requires a running D-Bus session to change values, the module tries to detect an existing session and reuse
it, or run the tool using C(dbus-run-session).
requirements:
- Optionally the C(gi.repository) Python library (usually included in the OS on hosts which have C(dconf)); this will become
- Optionally the C(gi.repository) Python library (usually included in the OS on hosts which have C(dconf)); this is to become
a non-optional requirement in a future major release of community.general.
notes:
- This module depends on C(psutil) Python library (version 4.0.0 and upwards), C(dconf), C(dbus-send), and C(dbus-run-session)
@@ -28,7 +28,7 @@ notes:
- This module uses the C(gi.repository) Python library when available for accurate comparison of values in C(dconf) to values
specified in Ansible code. C(gi.repository) is likely to be present on most systems which have C(dconf) but may not be
present everywhere. When it is missing, a simple string comparison between values is used, and there may be false positives,
that is, Ansible may think that a value is being changed when it is not. This fallback will be removed in a future version
that is, Ansible may think that a value is being changed when it is not. This fallback is to be removed in a future version
of this module, at which point the module will stop working on hosts without C(gi.repository).
- Detection of existing, running D-Bus session, required to change settings using C(dconf), is not 100% reliable due to
implementation details of D-Bus daemon itself. This might lead to running applications not picking-up changes on-the-fly

View File

@@ -33,13 +33,12 @@ options:
required: true
dest:
description:
- The file name of the destination file where the compressed file will be decompressed.
- If the destination file exists, it will be truncated and overwritten.
- If not specified, the destination filename will be derived from O(src) by removing the compression format extension.
For example, if O(src) is V(/path/to/file.txt.gz) and O(format) is V(gz), O(dest) will be V(/path/to/file.txt). If
the O(src) file does not have an extension for the current O(format), the O(dest) filename will be made by appending
C(_decompressed) to the O(src) filename. For instance, if O(src) is V(/path/to/file.myextension), the (dest) filename
will be V(/path/to/file.myextension_decompressed).
- The file name of the destination file where the compressed file is decompressed.
- If the destination file exists, it is truncated and overwritten.
- If not specified, the destination filename is derived from O(src) by removing the compression format extension. For
example, when O(src) is V(/path/to/file.txt.gz) and O(format) is V(gz), O(dest) is V(/path/to/file.txt). If the O(src)
file does not have an extension for the current O(format), the O(dest) filename is made by appending C(_decompressed)
to the O(src) filename. For instance, when O(src) is V(/path/to/file.myextension), the (dest) filename is V(/path/to/file.myextension_decompressed).
type: path
format:
description:

View File

@@ -18,8 +18,8 @@ short_description: Manages some of the steps common in deploying projects
description:
- The Deploy Helper manages some of the steps common in deploying software. It creates a folder structure, manages a symlink
for the current release and cleans up old releases.
- Running it with the O(state=query) or O(state=present) will return the C(deploy_helper) fact. C(project_path), whatever
you set in the O(path) parameter, C(current_path), the path to the symlink that points to the active release, C(releases_path),
- Running it with the O(state=query) or O(state=present) returns the C(deploy_helper) fact. C(project_path), whatever you
set in the O(path) parameter, C(current_path), the path to the symlink that points to the active release, C(releases_path),
the path to the folder to keep releases in, C(shared_path), the path to the folder to keep shared resources in, C(unfinished_filename),
the file to check for to recognize unfinished builds, C(previous_release), the release the 'current' symlink is pointing
to, C(previous_release_path), the full path to the 'current' symlink target, C(new_release), either the O(release) parameter
@@ -41,12 +41,12 @@ options:
type: str
description:
- The state of the project.
- V(query) will only gather facts.
- V(present) will create the project C(root) folder, and in it the C(releases) and C(shared) folders.
- V(finalize) will remove the unfinished_filename file, create a symlink to the newly deployed release and optionally
clean old releases.
- V(clean) will remove failed & old releases.
- V(absent) will remove the project folder (synonymous to the M(ansible.builtin.file) module with O(state=absent)).
- V(query) gathers facts.
- V(present) creates the project C(root) folder, and in it the C(releases) and C(shared) folders.
- V(finalize) removes the unfinished_filename file, creates a symlink to the newly deployed release and optionally cleans
old releases.
- V(clean) removes failed & old releases.
- V(absent) removes the project folder (synonymous to the M(ansible.builtin.file) module with O(state=absent)).
choices: [present, finalize, absent, clean, query]
default: present
@@ -59,15 +59,15 @@ options:
releases_path:
type: str
description:
- The name of the folder that will hold the releases. This can be relative to O(path) or absolute. Returned in the C(deploy_helper.releases_path)
- The name of the folder that holds the releases. This can be relative to O(path) or absolute. Returned in the C(deploy_helper.releases_path)
fact.
default: releases
shared_path:
type: path
description:
- The name of the folder that will hold the shared resources. This can be relative to O(path) or absolute. If this is
set to an empty string, no shared folder will be created. Returned in the C(deploy_helper.shared_path) fact.
- The name of the folder that holds the shared resources. This can be relative to O(path) or absolute. If this is set
to an empty string, no shared folder is created. Returned in the C(deploy_helper.shared_path) fact.
default: shared
current_path:
@@ -81,8 +81,8 @@ options:
type: str
description:
- The name of the file that indicates a deploy has not finished. All folders in the O(releases_path) that contain this
file will be deleted on O(state=finalize) with O(clean=true), or O(state=clean). This file is automatically deleted
from the C(new_release_path) during O(state=finalize).
file are deleted on O(state=finalize) with O(clean=true), or O(state=clean). This file is automatically deleted from
the C(new_release_path) during O(state=finalize).
default: DEPLOY_UNFINISHED
clean:
@@ -95,16 +95,16 @@ options:
type: int
description:
- The number of old releases to keep when cleaning. Used in O(state=finalize) and O(state=clean). Any unfinished builds
will be deleted first, so only correct releases will count. The current version will not count.
are deleted first, so only correct releases count. The current version does not count.
default: 5
notes:
- Facts are only returned for O(state=query) and O(state=present). If you use both, you should pass any overridden parameters
to both calls, otherwise the second call will overwrite the facts of the first one.
to both calls, otherwise the second call overwrites the facts of the first one.
- When using O(state=clean), the releases are ordered by I(creation date). You should be able to switch to a new naming
strategy without problems.
- Because of the default behaviour of generating the C(new_release) fact, this module will not be idempotent unless you
pass your own release name with O(release). Due to the nature of deploying software, this should not be much of a problem.
- Because of the default behaviour of generating the C(new_release) fact, this module is not idempotent unless you pass
your own release name with O(release). Due to the nature of deploying software, this should not be much of a problem.
extends_documentation_fragment:
- ansible.builtin.files
- community.general.attributes

View File

@@ -56,8 +56,7 @@ options:
state:
description:
- The desired state for the target VLAN.
- V(readonly) ensures that the state is only ever read, not modified (the module will fail if the resource does not
exist).
- V(readonly) ensures that the state is only ever read, not modified (the module fails if the resource does not exist).
choices: [present, absent, readonly]
default: present
type: str
@@ -65,7 +64,7 @@ options:
description:
- Permit expansion of the target VLAN's network if the module parameters specify a larger network than the VLAN currently
possesses.
- If V(false), the module will fail under these conditions.
- If V(false), the module fails under these conditions.
- This is intended to prevent accidental expansion of a VLAN's network (since this operation is not reversible).
type: bool
default: false

View File

@@ -22,7 +22,7 @@ options:
database:
description:
- Specify databases to run checks against.
- If not specified, Django will not run database tests.
- If not specified, Django does not run database tests.
type: list
elements: str
deploy:
@@ -32,7 +32,7 @@ options:
default: false
fail_level:
description:
- Message level that will trigger failure.
- Message level that triggers failure.
- Default is the Django default value. Check the documentation for the version being used.
type: str
choices: [CRITICAL, ERROR, WARNING, INFO, DEBUG]
@@ -49,7 +49,7 @@ options:
elements: str
notes:
- The outcome of the module is found in the common return values RV(ignore:stdout), RV(ignore:stderr), RV(ignore:rc).
- The module will fail if RV(ignore:rc) is not zero.
- The module fails if RV(ignore:rc) is not zero.
attributes:
check_mode:
support: full

View File

@@ -15,7 +15,7 @@ module: django_manage
short_description: Manages a Django application
description:
- Manages a Django application using the C(manage.py) application frontend to C(django-admin). With the O(virtualenv) parameter,
all management commands will be executed by the given C(virtualenv) installation.
all management commands are executed by the given C(virtualenv) installation.
extends_documentation_fragment:
- community.general.attributes
attributes:
@@ -34,8 +34,8 @@ options:
- V(loaddata) - Searches for and loads the contents of the named O(fixtures) into the database.
- V(migrate) - Synchronizes the database state with models and migrations.
- V(test) - Runs tests for all installed apps.
- Other commands can be entered, but will fail if they are unknown to Django. Other commands that may prompt for user
input should be run with the C(--noinput) flag.
- Custom commands can be entered, but they fail unless they are known to Django. Custom commands that may prompt for
user input should be run with the C(--noinput) flag.
- Support for the values V(cleanup), V(syncdb), V(validate) was removed in community.general 9.0.0. See note about supported
versions of Django.
type: str
@@ -62,7 +62,7 @@ options:
virtualenv:
description:
- An optional path to a C(virtualenv) installation to use while running the manage application.
- The virtual environment must exist, otherwise the module will fail.
- The virtual environment must exist, otherwise the module fails.
type: path
aliases: [virtual_env]
apps:
@@ -78,7 +78,7 @@ options:
clear:
description:
- Clear the existing files before trying to copy or link the original file.
- Used only with the V(collectstatic) command. The C(--noinput) argument will be added automatically.
- Used only with the V(collectstatic) command. The C(--noinput) argument is added automatically.
required: false
default: false
type: bool
@@ -101,18 +101,18 @@ options:
required: false
skip:
description:
- Will skip over out-of-order missing migrations, you can only use this parameter with V(migrate) command.
- Skips over out-of-order missing migrations, you can only use this parameter with V(migrate) command.
required: false
type: bool
merge:
description:
- Will run out-of-order or missing migrations as they are not rollback migrations, you can only use this parameter with
- Runs out-of-order or missing migrations as they are not rollback migrations, you can only use this parameter with
V(migrate) command.
required: false
type: bool
link:
description:
- Will create links to the files instead of copying them, you can only use this parameter with V(collectstatic) command.
- Creates links to the files instead of copying them, you can only use this parameter with V(collectstatic) command.
required: false
type: bool
testrunner:
@@ -134,7 +134,7 @@ notes:
module allows for free-form commands, not verifying the version of Django being used, it is B(strongly recommended) to
use a more recent version of the framework.'
- Please notice that Django 4.1 requires Python 3.8 or greater.
- This module will not create a virtualenv if the O(virtualenv) parameter is specified and a virtual environment does not
- This module does not create a virtualenv if the O(virtualenv) parameter is specified and a virtual environment does not
already exist at the given location. This behavior changed in community.general version 9.0.0.
- The recommended way to create a virtual environment in Ansible is by using M(ansible.builtin.pip).
- This module assumes English error messages for the V(createcachetable) command to detect table existence, unfortunately.

View File

@@ -120,7 +120,7 @@ changed_repos:
returned: success
type: list
elements: str
sample: ['crb']
sample: ["crb"]
"""
from ansible.module_utils.basic import AnsibleModule

View File

@@ -22,9 +22,9 @@ attributes:
support: partial
details:
- The logics of the C(versionlock) plugin for corner cases could be confusing, so please take in account that this module
will do its best to give a C(check_mode) prediction on what is going to happen. In case of doubt, check the documentation
does its best to give a C(check_mode) prediction on what is going to happen. In case of doubt, check the documentation
of the plugin.
- Sometimes the module could predict changes in C(check_mode) that will not be such because C(versionlock) concludes
- Sometimes the module could predict changes in C(check_mode) that are not fulfilled because C(versionlock) concludes
that there is already a entry in C(locklist) that already matches.
diff_mode:
support: none
@@ -47,12 +47,12 @@ options:
state:
description:
- Whether to add (V(present) or V(excluded)) to or remove (V(absent) or V(clean)) from the C(locklist).
- V(present) will add a package name spec to the C(locklist). If there is a installed package that matches, then only
that version will be added. Otherwise, all available package versions will be added.
- V(excluded) will add a package name spec as excluded to the C(locklist). It means that packages represented by the
package name spec will be excluded from transaction operations. All available package versions will be added.
- V(absent) will delete entries in the C(locklist) that match the package name spec.
- V(clean) will delete all entries in the C(locklist). This option is mutually exclusive with O(name).
- V(present) adds a package name spec to the C(locklist). If there is a installed package that matches, then only that
version is added. Otherwise, all available package versions are added.
- V(excluded) adds a package name spec as excluded to the C(locklist). It means that packages represented by the package
name spec are excluded from transaction operations. All available package versions are added.
- V(absent) deletes entries in the C(locklist) that match the package name spec.
- V(clean) deletes all entries in the C(locklist). This option is mutually exclusive with O(name).
choices: ['absent', 'clean', 'excluded', 'present']
type: str
default: present
@@ -83,12 +83,12 @@ EXAMPLES = r"""
- name: Remove lock from nginx to be updated again
community.general.dnf_versionlock:
package: nginx
name: nginx
state: absent
- name: Exclude bind 32:9.11 from installs or updates
community.general.dnf_versionlock:
package: bind-32:9.11*
name: bind-32:9.11*
state: excluded
- name: Keep bash package in major version 4
@@ -108,25 +108,25 @@ locklist_pre:
returned: success
type: list
elements: str
sample: ['bash-0:4.4.20-1.el8_4.*', '!bind-32:9.11.26-4.el8_4.*']
sample: ["bash-0:4.4.20-1.el8_4.*", "!bind-32:9.11.26-4.el8_4.*"]
locklist_post:
description: Locklist after module execution.
returned: success and (not check mode or state is clean)
type: list
elements: str
sample: ['bash-0:4.4.20-1.el8_4.*']
sample: ["bash-0:4.4.20-1.el8_4.*"]
specs_toadd:
description: Package name specs meant to be added by versionlock.
returned: success
type: list
elements: str
sample: ['bash']
sample: ["bash"]
specs_todelete:
description: Package name specs meant to be deleted by versionlock.
returned: success
type: list
elements: str
sample: ['bind']
sample: ["bind"]
"""
from ansible.module_utils.basic import AnsibleModule

View File

@@ -25,8 +25,8 @@ attributes:
options:
account_email:
description:
- Account email. If omitted, the environment variables E(DNSIMPLE_EMAIL) and E(DNSIMPLE_API_TOKEN) will be looked for.
- 'If those variables are not found, a C(.dnsimple) file will be looked for, see: U(https://github.com/mikemaccana/dnsimple-python#getting-started).'
- Account email. If omitted, the environment variables E(DNSIMPLE_EMAIL) and E(DNSIMPLE_API_TOKEN) are looked for.
- 'If those variables are not found, a C(.dnsimple) file is looked for, see: U(https://github.com/mikemaccana/dnsimple-python#getting-started).'
- C(.dnsimple) config files are only supported in dnsimple-python<2.0.0.
type: str
account_api_token:
@@ -36,12 +36,12 @@ options:
domain:
description:
- Domain to work with. Can be the domain name (for example V(mydomain.com)) or the numeric ID of the domain in DNSimple.
- If omitted, a list of domains will be returned.
- If domain is present but the domain does not exist, it will be created.
- If omitted, a list of domains is returned.
- If domain is present but the domain does not exist, it is created.
type: str
record:
description:
- Record to add, if blank a record for the domain will be created, supports the wildcard (*).
- Record to add, if blank a record for the domain is created, supports the wildcard (*).
type: str
record_ids:
description:

View File

@@ -26,8 +26,8 @@ options:
name:
description:
- The domain name to retrieve info from.
- Will return all associated records for this domain if specified.
- If not specified, will return all domains associated with the account ID.
- Returns all associated records for this domain if specified.
- If not specified, returns all domains associated with the account ID.
type: str
account_id:
@@ -43,7 +43,7 @@ options:
record:
description:
- The record to find.
- If specified, only this record will be returned instead of all records.
- If specified, only this record is returned instead of all records.
required: false
type: str

View File

@@ -50,7 +50,7 @@ options:
record_name:
description:
- Record name to get/create/delete/update. If record_name is not specified; all records for the domain will be returned
- Record name to get/create/delete/update. If O(record_name) is not specified; all records for the domain are returned
in "result" regardless of the state argument.
type: str
@@ -64,8 +64,8 @@ options:
description:
- 'Record value. HTTPRED: <redirection URL>, MX: <priority> <target name>, NS: <name server>, PTR: <target name>, SRV:
<priority> <weight> <port> <target name>, TXT: <text value>".'
- If record_value is not specified; no changes will be made and the record will be returned in 'result' (in other words,
this module can be used to fetch a record's current ID, type, and ttl).
- If O(record_value) is not specified; no changes are made and the record is returned in RV(ignore:result) (in other
words, this module can be used to fetch a record's current ID, type, and TTL).
type: str
record_ttl:
@@ -83,8 +83,8 @@ options:
validate_certs:
description:
- If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using
self-signed certificates.
- If V(false), SSL certificates are not validated. This should only be used on personally controlled sites using self-signed
certificates.
type: bool
default: true
@@ -128,7 +128,7 @@ options:
contactList:
description:
- Name or ID of the contact list that the monitor will notify.
- Name or ID of the contact list that the monitor notifies.
- The default V('') means the Account Owner.
type: str
@@ -195,7 +195,7 @@ notes:
- Only A records can have a O(monitor) or O(failover).
- To add failover, the O(failover), O(autoFailover), O(port), O(protocol), O(ip1), and O(ip2) options are required.
- To add monitor, the O(monitor), O(port), O(protocol), O(maxEmails), O(systemDescription), and O(ip1) options are required.
- The monitor and the failover will share O(port), O(protocol), and O(ip1) options.
- The options O(monitor) and O(failover) share O(port), O(protocol), and O(ip1) options.
requirements: [hashlib, hmac]
author: "Brice Burgess (@briceburg)"
"""

View File

@@ -17,8 +17,8 @@ author:
- quidame (@quidame)
description:
- A diversion is for C(dpkg) the knowledge that only a given package (or the local administrator) is allowed to install
a file at a given location. Other packages shipping their own version of this file will be forced to O(divert) it, that
is to install it at another location. It allows one to keep changes in a file provided by a debian package by preventing
a file at a given location. Other packages shipping their own version of this file are forced to O(divert) it, that is
to install it at another location. It allows one to keep changes in a file provided by a debian package by preventing
it being overwritten on package upgrade.
- This module manages diversions of debian packages files using the C(dpkg-divert) commandline tool. It can either create
or remove a diversion for a given file, but also update an existing diversion to modify its O(holder) and/or its O(divert)
@@ -54,7 +54,7 @@ options:
type: str
divert:
description:
- The location where the versions of file will be diverted.
- The location where the versions of file are diverted.
- Default is to add suffix C(.distrib) to the file path.
- This parameter is ignored when O(state=absent).
type: path
@@ -70,7 +70,7 @@ options:
force:
description:
- When O(rename=true) and O(force=true), renaming is performed even if the target of the renaming exists, in other words
the existing contents of the file at this location will be lost.
the existing contents of the file at this location are lost.
- This parameter is ignored when O(rename=false).
type: bool
default: false

View File

@@ -33,8 +33,8 @@ options:
- An optional O(virtualenv) directory path to install into. If the O(virtualenv) does not exist, it is created automatically.
virtualenv_site_packages:
description:
- Whether the virtual environment will inherit packages from the global site-packages directory. Note that if this setting
is changed on an already existing virtual environment it will not have any effect, the environment must be deleted
- Whether the virtual environment inherits packages from the global site-packages directory. Note that this setting
has no effect on an already existing virtual environment, so if you want to change it, the environment must be deleted
and newly created.
type: bool
default: false
@@ -74,6 +74,12 @@ EXAMPLES = r"""
community.general.easy_install:
name: bottle
virtualenv: /webapps/myapp/venv
- name: Install a python package using pyvenv as the virtualenv tool
community.general.easy_install:
name: package_name
virtualenv: /opt/myenv
virtualenv_command: pyvenv
"""
import os

View File

@@ -66,7 +66,7 @@ options:
type: bool
plugin_bin:
description:
- Location of the plugin binary. If this file is not found, the default plugin binaries will be used.
- Location of the plugin binary. If this file is not found, the default plugin binaries are used.
type: path
plugin_dir:
description:
@@ -83,7 +83,7 @@ options:
type: str
version:
description:
- Version of the plugin to be installed. If plugin exists with previous version, it will NOT be updated.
- Version of the plugin to be installed. If plugin exists with previous version, it is NOT updated.
type: str
"""

View File

@@ -77,7 +77,7 @@ EXAMPLES = r"""
RETURN = r"""
hluid:
description: LUNID that hosts attached to the storage group will see.
description: LUNID visible to hosts attached to the storage group.
type: int
returned: success
"""

View File

@@ -64,10 +64,10 @@ options:
description:
- If V(true), if the block device and filesystem size differ, grow the filesystem into the space.
- Supported for C(bcachefs), C(btrfs), C(ext2), C(ext3), C(ext4), C(ext4dev), C(f2fs), C(lvm), C(xfs), C(ufs) and C(vfat)
filesystems. Attempts to resize other filesystem types will fail.
- XFS Will only grow if mounted. Currently, the module is based on commands from C(util-linux) package to perform operations,
filesystems. Attempts to resize other filesystem types fail.
- XFS only grows if mounted. Currently, the module is based on commands from C(util-linux) package to perform operations,
so resizing of XFS is not supported on FreeBSD systems.
- VFAT will likely fail if C(fatresize < 1.04).
- VFAT is likely to fail if C(fatresize < 1.04).
- Mutually exclusive with O(uuid).
type: bool
default: false
@@ -82,7 +82,7 @@ options:
- See xfs_admin(8) (C(xfs)), tune2fs(8) (C(ext2), C(ext3), C(ext4), C(ext4dev)) for possible values.
- For O(fstype=lvm) the value is ignored, it resets the PV UUID if set.
- Supported for O(fstype) being one of C(bcachefs), C(ext2), C(ext3), C(ext4), C(ext4dev), C(lvm), or C(xfs).
- This is B(not idempotent). Specifying this option will always result in a change.
- This is B(not idempotent). Specifying this option always results in a change.
- Mutually exclusive with O(resizefs).
type: str
version_added: 7.1.0

View File

@@ -27,7 +27,7 @@ attributes:
check_mode:
support: partial
details:
- If O(state=latest), the module will always return C(changed=true).
- If O(state=latest), the module always returns RV(ignore:changed=true).
diff_mode:
support: none
options:
@@ -53,7 +53,7 @@ options:
- When supplying a reverse DNS name, you can use the O(remote) option to specify on what remote to look for the flatpak.
An example for a reverse DNS name is C(org.gnome.gedit).
- When used with O(state=absent) or O(state=latest), it is recommended to specify the name in the reverse DNS format.
- When supplying a URL with O(state=absent) or O(state=latest), the module will try to match the installed flatpak based
- When supplying a URL with O(state=absent) or O(state=latest), the module tries to match the installed flatpak based
on the name of the flatpakref to remove or update it. However, there is no guarantee that the names of the flatpakref
file and the reverse DNS name of the installed flatpak do match.
type: list
@@ -107,6 +107,12 @@ EXAMPLES = r"""
state: present
remote: gnome
- name: Install GIMP using custom flatpak binary path
community.general.flatpak:
name: org.gimp.GIMP
state: present
executable: /usr/local/bin/flatpak-dev
- name: Install multiple packages
community.general.flatpak:
name:
@@ -165,26 +171,6 @@ command:
returned: When a flatpak command has been executed
type: str
sample: "/usr/bin/flatpak install --user --nontinteractive flathub org.gnome.Calculator"
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: Error searching remote flathub: Can't find ref org.gnome.KDE"
stdout:
description: Output from flatpak binary.
returned: When a flatpak command has been executed
type: str
sample: "org.gnome.Calendar/x86_64/stable\tcurrent\norg.gnome.gitg/x86_64/stable\tcurrent\n"
"""
from ansible.module_utils.six.moves.urllib.parse import urlparse

View File

@@ -17,7 +17,7 @@ description:
- Allows users to add or remove flatpak remotes.
- The flatpak remotes concept is comparable to what is called repositories in other packaging formats.
- Currently, remote addition is only supported using C(flatpakrepo) file URLs.
- Existing remotes will not be updated.
- Existing remotes are not updated.
- See the M(community.general.flatpak) module for managing flatpaks.
author:
- John Kwiatkoski (@JayKayy)
@@ -56,8 +56,8 @@ options:
name:
description:
- The desired name for the flatpak remote to be registered under on the managed host.
- When used with O(state=present), the remote will be added to the managed host under the specified O(name).
- When used with O(state=absent) the remote with that name will be removed.
- When used with O(state=present), the remote is added to the managed host under the specified O(name).
- When used with O(state=absent) the remote with that name is removed.
type: str
required: true
state:
@@ -112,26 +112,6 @@ 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

View File

@@ -48,7 +48,7 @@ options:
repository:
type: str
description:
- The repository from which the gem will be installed.
- The repository from which the gem is installed.
required: false
aliases: [source]
user_install:
@@ -65,7 +65,7 @@ options:
install_dir:
type: path
description:
- Install the gems into a specific directory. These gems will be independent from the global installed ones. Specifying
- Install the gems into a specific directory. These gems are independent from the global installed ones. Specifying
this requires user_install to be false.
required: false
bindir:

View File

@@ -26,12 +26,12 @@ attributes:
options:
mime_type:
description:
- MIME type for which a default handler will be set.
- MIME type for which a default handler is set.
type: str
required: true
handler:
description:
- Default handler will be set for the MIME type.
- Default handler set for the MIME type.
type: str
required: true
notes:
@@ -61,18 +61,6 @@ 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

View File

@@ -26,7 +26,7 @@ options:
name:
description:
- The name of the setting to read.
- If not provided, all settings will be returned as RV(config_values).
- If not provided, all settings are returned as RV(config_values).
type: str
path:
description:
@@ -94,8 +94,8 @@ config_values:
description:
- This is a dictionary mapping a git configuration setting to a list of its values.
- When O(name) is not set, all configuration settings are returned here.
- When O(name) is set, only the setting specified in O(name) is returned here. If that setting is not set, the key will
still be present, and its value will be an empty list.
- When O(name) is set, only the setting specified in O(name) is returned here. If that setting is not set, the key is
still present, and its value is an empty list.
returned: success
type: dict
sample:

View File

@@ -57,8 +57,8 @@ options:
type: str
read_only:
description:
- If V(true), the deploy key will only be able to read repository contents. Otherwise, the deploy key will be able to
read and write.
- If V(true), the deploy key is only able to read repository contents. Otherwise, the deploy key is able to read and
write.
type: bool
default: true
state:

View File

@@ -44,8 +44,8 @@ options:
type: str
force:
description:
- The default is V(true), which will replace the existing remote key if it is different than O(pubkey). If V(false),
the key will only be set if no key with the given O(name) exists.
- The default is V(true), which replaces the existing remote key if it is different than O(pubkey). If V(false), the
key is only set if no key with the given O(name) exists.
type: bool
default: true

View File

@@ -182,13 +182,29 @@ def main():
else:
gh_obj = github3.GitHub()
# test if we're actually logged in
if password or login_token:
# GitHub's token formats:
# - ghp_ - Personal access token (classic)
# - github_pat_ - Fine-grained personal access token
# - gho_ - OAuth access token
# - ghu_ - User access token for a GitHub App
# - ghs_ - Installation access token for a GitHub App
# - ghr_ - Refresh token for a GitHub App
#
# References:
# https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/about-authentication-to-github#githubs-token-formats
#
# Test if we're actually logged in, but skip this check for some token prefixes
SKIPPED_TOKEN_PREFIXES = ['ghs_']
if password or (login_token and not any(login_token.startswith(prefix) for prefix in SKIPPED_TOKEN_PREFIXES)):
gh_obj.me()
except github3.exceptions.AuthenticationFailed as e:
module.fail_json(msg='Failed to connect to GitHub: %s' % to_native(e),
details="Please check username and password or token "
"for repository %s" % repo)
except github3.exceptions.GitHubError as e:
module.fail_json(msg='GitHub API error: %s' % to_native(e),
details="Please check username and password or token "
"for repository %s" % repo)
repository = gh_obj.repository(user, repo)

View File

@@ -72,7 +72,7 @@ options:
organization:
description:
- Organization for the repository.
- When O(state=present), the repository will be created in the current user profile.
- When O(state=present), the repository is created in the current user profile.
type: str
required: false
api_url:

View File

@@ -32,7 +32,7 @@ options:
- repo
url:
description:
- URL to which payloads will be delivered.
- URL to which payloads are delivered.
type: str
required: true
content_type:

View File

@@ -55,8 +55,8 @@ options:
default: false
state:
description:
- When V(present) the deploy key added to the project if it does not exist.
- When V(absent) it will be removed from the project if it exists.
- When V(present) the deploy key is added to the project if it does not exist.
- When V(absent) it is removed from the project if it exists.
default: present
type: str
choices: ["present", "absent"]

View File

@@ -13,8 +13,8 @@ DOCUMENTATION = r"""
module: gitlab_group
short_description: Creates/updates/deletes GitLab Groups
description:
- When the group does not exist in GitLab, it will be created.
- When the group does exist and state=absent, the group will be deleted.
- When the group does not exist in GitLab, it is created.
- When the group does exist and O(state=absent), the group is deleted.
author:
- Werner Dijkerman (@dj-wasabi)
- Guillaume Martinez (@Lunik)
@@ -101,8 +101,8 @@ options:
type: str
path:
description:
- The path of the group you want to create, this will be api_url/group_path.
- If not supplied, the group_name will be used.
- The path of the group you want to create, this is O(api_url)/O(path).
- If not supplied, O(name) is used.
type: str
prevent_forking_outside_group:
description:
@@ -129,7 +129,7 @@ options:
service_access_tokens_expiration_enforced:
description:
- Service account token expiration.
- Changes will not affect existing token expiration dates.
- Changes do not affect existing token expiration dates.
- Only available for top level groups.
type: bool
version_added: 9.5.0

View File

@@ -28,7 +28,7 @@ extends_documentation_fragment:
- community.general.attributes
notes:
- Access tokens can not be changed. If a parameter needs to be changed, an acceess token has to be recreated. Whether tokens
will be recreated is controlled by the O(recreate) option, which defaults to V(never).
are recreated or not is controlled by the O(recreate) option, which defaults to V(never).
- Token string is contained in the result only when access token is created or recreated. It can not be fetched afterwards.
- Token matching is done by comparing O(name) option.
attributes:
@@ -79,17 +79,17 @@ options:
required: true
recreate:
description:
- Whether the access token will be recreated if it already exists.
- When V(never) the token will never be recreated.
- When V(always) the token will always be recreated.
- When V(state_change) the token will be recreated if there is a difference between desired state and actual state.
- Whether the access token is recreated if it already exists.
- When V(never) the token is never recreated.
- When V(always) the token is always recreated.
- When V(state_change) the token is recreated if there is a difference between desired state and actual state.
type: str
choices: ["never", "always", "state_change"]
default: never
state:
description:
- When V(present) the access token will be added to the group if it does not exist.
- When V(absent) it will be removed from the group if it exists.
- When V(present) the access token is added to the group if it does not exist.
- When V(absent) it is removed from the group if it exists.
default: present
type: str
choices: ["present", "absent"]

View File

@@ -15,9 +15,9 @@ short_description: Creates, updates, or deletes GitLab groups variables
version_added: 1.2.0
description:
- Creates a group variable if it does not exist.
- When a group variable does exist, its value will be updated when the values are different.
- When a group variable does exist, its value is updated when the values are different.
- Variables which are untouched in the playbook, but are not untouched in the GitLab group, they stay untouched (O(purge=false))
or will be deleted (O(purge=true)).
or are deleted (O(purge=true)).
author:
- Florent Madiot (@scodeman)
requirements:
@@ -52,7 +52,7 @@ options:
type: bool
vars:
description:
- When the list element is a simple key-value pair, masked, raw and protected will be set to false.
- When the list element is a simple key-value pair, masked, raw and protected are set to V(false).
- When the list element is a dict with the keys C(value), C(masked), C(raw) and C(protected), the user can have full
control about whether a value should be masked, raw, protected or both.
- Support for group variables requires GitLab >= 9.5.
@@ -185,22 +185,22 @@ group_variable:
description: A list of variables which were created.
returned: always
type: list
sample: ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY']
sample: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]
untouched:
description: A list of variables which exist.
returned: always
type: list
sample: ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY']
sample: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]
removed:
description: A list of variables which were deleted.
returned: always
type: list
sample: ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY']
sample: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]
updated:
description: A list of variables whose values were changed.
returned: always
type: list
sample: ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY']
sample: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]
"""
from ansible.module_utils.basic import AnsibleModule

View File

@@ -45,8 +45,8 @@ options:
type: str
state:
description:
- When V(present) the hook will be updated to match the input or created if it does not exist.
- When V(absent) hook will be deleted if it exists.
- When V(present) the hook is updated to match the input or created if it does not exist.
- When V(absent) hook is deleted if it exists.
default: present
type: str
choices: ["present", "absent"]
@@ -103,15 +103,15 @@ options:
version_added: '8.4.0'
hook_validate_certs:
description:
- Whether GitLab will do SSL verification when triggering the hook.
- Whether GitLab performs SSL verification when triggering the hook.
type: bool
default: false
aliases: [enable_ssl_verification]
token:
description:
- Secret token to validate hook messages at the receiver.
- If this is present it will always result in a change as it cannot be retrieved from GitLab.
- Will show up in the X-GitLab-Token HTTP request header.
- If this is present it always results in a change as it cannot be retrieved from GitLab.
- It shows up in the C(X-GitLab-Token) HTTP request header.
required: false
type: str
"""

View File

@@ -16,10 +16,10 @@ short_description: Creates, updates, or deletes GitLab instance variables
version_added: 7.1.0
description:
- Creates a instance variable if it does not exist.
- When a instance variable does exist, its value will be updated if the values are different.
- When a instance variable does exist, its value is updated if the values are different.
- Support for instance variables requires GitLab >= 13.0.
- Variables which are not mentioned in the modules options, but are present on the GitLab instance, will either stay (O(purge=false))
or will be deleted (O(purge=true)).
- Variables which are not mentioned in the modules options, but are present on the GitLab instance, either stay (O(purge=false))
or are deleted (O(purge=true)).
author:
- Benedikt Braunger (@benibr)
requirements:
@@ -124,22 +124,22 @@ instance_variable:
description: A list of variables which were created.
returned: always
type: list
sample: ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY']
sample: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]
untouched:
description: A list of variables which exist.
returned: always
type: list
sample: ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY']
sample: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]
removed:
description: A list of variables which were deleted.
returned: always
type: list
sample: ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY']
sample: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]
updated:
description: A list pre-existing variables whose values have been set.
returned: always
type: list
sample: ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY']
sample: ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"]
"""
from ansible.module_utils.basic import AnsibleModule

Some files were not shown because too many files have changed in this diff Show More