Compare commits

...

16 Commits
7.5.6 ... 7.5.7

Author SHA1 Message Date
Felix Fontein
4e1e5a92e3 Release 7.5.7. 2024-04-22 18:22:49 +02:00
Felix Fontein
12b39987a0 [stable-2.7] apt_rpm: fix package install check (#8263) (#8271)
apt_rpm: fix package install check (#8263)

Fix package install check.

(cherry picked from commit 17e11d7d7e)
2024-04-22 06:53:24 +02:00
patchback[bot]
32338f14e5 [PR #8238/a05a5982 backport][stable-7] bitwarden_secrets_manager: implement rate limit retry with backoff (#8260)
* bitwarden_secrets_manager: implement rate limit retry with backoff (#8238)

* bitwarden_secrets_manager: implement rate limit retry with backoff (#8230)

* bitwarden_secrets_manager: add changelog fragment for 90cd2d61 (#8238)

* bitwarden_secrets_manager: clarify "Too many requests" is an error condition (#8238)

* bitwarden_secrets_manager: avoid an extra _run_with_retry execution after the last (very long) delay

* bitwarden_secrets_manager: changelog fragment key and reference issue url

(cherry picked from commit a05a5982a6)

* Make Python 2 compatible.

---------

Co-authored-by: Matt Adams <matt@4dk.me>
Co-authored-by: Felix Fontein <felix@fontein.de>
2024-04-21 15:09:57 +02:00
patchback[bot]
2583e3993d [PR #8224/9d66a1dc backport][stable-7] keycloak_realm: add normalizations for enabledEventTypes, and supportedLocales (#8255)
keycloak_realm: add normalizations for enabledEventTypes, and supportedLocales (#8224)

keycloak_realm: add nomalizations for enabledEventTypes, and supportedLocales

Signed-off-by: Eike Waldt <waldt@b1-systems.de>
(cherry picked from commit 9d66a1dc1e)

Co-authored-by: Eike Waldt <waldt@b1-systems.de>
2024-04-21 09:10:44 +02:00
patchback[bot]
e4cef5cb24 [PR #8223/f55342d8 backport][stable-7] keycloak_client: add sorted defaultClientScopes and optionalClientScopes to normalizations (#8253)
keycloak_client: add sorted defaultClientScopes and optionalClientScopes to normalizations (#8223)

keycloak_client: add sorted defaultClientScopes and optionalClientScopes
to normalizations

Signed-off-by: Eike Waldt <waldt@b1-systems.de>
(cherry picked from commit f55342d8af)

Co-authored-by: Eike Waldt <waldt@b1-systems.de>
2024-04-21 09:10:33 +02:00
patchback[bot]
cde2be8100 [PR #8225/7fd37ea2 backport][stable-7] inventory plugins: make wrapping variables as unsafe smarter to avoid triggering an AWX bug (#8245)
inventory plugins: make wrapping variables as unsafe smarter to avoid triggering an AWX bug (#8225)

Make wrapping variables as unsafe smarter to avoid triggering an AWX bug.

(cherry picked from commit 7fd37ea247)

Co-authored-by: Felix Fontein <felix@fontein.de>
2024-04-20 10:08:26 +02:00
patchback[bot]
40ce650d08 [PR #8001/1b8e6bc9 backport][stable-7] puppet_utils: Do not force lang for cmd (#8241)
puppet_utils: Do not force lang for cmd (#8001)

puppet_utils: Add option to set LANG for puppet execution

Add option `environment_lang` to force the LANG when executing the
puppet agent. The default is the `C` LANG

(cherry picked from commit 1b8e6bc95b)

Co-authored-by: Niklas Schwarz <schwarz.niklas@hotmail.de>
2024-04-20 10:08:18 +02:00
Felix Fontein
c09b5e2c66 Prepare 7.5.7 release. 2024-04-18 07:58:40 +02:00
patchback[bot]
a618203c01 [PR #8211/bafad8ec backport][stable-7] Support newer 'riak admin' sub-command beside legacy 'riak-admin' command (#8231)
Support newer 'riak admin' sub-command beside legacy 'riak-admin' command (#8211)

* Support newer 'riak admin' sub-command

* Added changelog for riak admin sub-command

* Added blank line

* Apply suggestions from code review

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

* replaced string commands with lists

added white space

removed white space

removed parenthesis

* Update changelogs/fragments/8211-riak-admin-sub-command-support.yml

Co-authored-by: Don Naro <dnaro@redhat.com>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Don Naro <dnaro@redhat.com>
(cherry picked from commit bafad8ecd4)

Co-authored-by: tobixx <tobixx@directbox.com>
2024-04-17 23:45:29 +02:00
patchback[bot]
882ce25ce2 [PR #8176/8491bf7b backport][stable-7] fix(aix_filesystem): remove extra param from running lsvg (#8208)
fix(aix_filesystem): remove extra param from running lsvg (#8176)

* fix(aix_filesystem): remove extra param from running lsvg

* chore: add new line to changlog file

* Update 8151-fix-lsvg_cmd-failed.yml

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

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 8491bf7b49)

Co-authored-by: Peter Shen <xianpeng.shen@gmail.com>
2024-04-09 08:01:20 +02:00
patchback[bot]
25a6603059 [PR #8175/b674f94f backport][stable-7] module_utils/ipa.py: fix regex when parsing version (#8205)
module_utils/ipa.py: fix regex when parsing version (#8175)

* module_utils/ipa.py: fix regex when parsing version

* add changelog fragments

* Update changelogs/fragments/8175-get_ipa_version_regex.yml

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

---------

Co-authored-by: Dmitriy Usachev <dmitrii.usachev@hyperus.team>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit b674f94f64)

Co-authored-by: Dmitriy Usachev <diman-110@list.ru>
2024-04-09 08:01:04 +02:00
patchback[bot]
065287f260 [PR #8168/610ecf9b backport][stable-7] updated lxd_container.py docs (#8196)
updated lxd_container.py docs (#8168)

linuxcontainer.org has phased out LXC/LXD support.
This edit reflects part of it in the docs.

(cherry picked from commit 610ecf9bf5)

Co-authored-by: Herschdorfer <herschdorfer@gmail.com>
2024-04-08 22:06:17 +02:00
Felix Fontein
b0cf8ce6e7 CI: rename devel to stable-2.17, move stable-2.14 from AZP to GHA (#8180)
* Replace devel with stable-2.17.

* Move stable-2.14 tests to GHA.
2024-04-03 07:57:34 +02:00
patchback[bot]
68eb07a900 [PR #8169/b444e873 backport][stable-7] xml: make module work with lxml 5.1.1 (#8171)
xml: make module work with lxml 5.1.1 (#8169)

Make module work with lxml 5.1.1.

(cherry picked from commit b444e8739c)

Co-authored-by: Felix Fontein <felix@fontein.de>
2024-03-30 22:48:30 +01:00
patchback[bot]
a7d8397449 [PR #8100/b2b8fc30 backport][stable-7] HAProxy skips the wait when drain=true and the backend is down - fix issue 8092 (#8156)
HAProxy skips the wait when drain=true and the backend is down - fix issue 8092 (#8100)

* fix issue 8092

* "is not" => "!="

* moved the drain & down cause to the wait

* added changelogs for PR 8100

* fixed yaml

* fixed file type

* Apply suggestions from code review

Removed a dot from a comment

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

* Update plugins/modules/haproxy.py

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

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit b2b8fc30bf)

Co-authored-by: RayJin2000 <rayjin2000@gmail.com>
2024-03-28 12:34:48 +01:00
Felix Fontein
c71274639d The next release will be 7.5.7. 2024-03-25 19:29:45 +01:00
34 changed files with 374 additions and 193 deletions

View File

@@ -59,14 +59,14 @@ pool: Standard
stages:
### Sanity
- stage: Sanity_devel
displayName: Sanity devel
- stage: Sanity_2_17
displayName: Sanity 2.17
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Test {0}
testFormat: devel/sanity/{0}
testFormat: 2.17/sanity/{0}
targets:
- test: 1
- test: 2
@@ -99,28 +99,15 @@ stages:
- test: 2
- test: 3
- test: 4
- stage: Sanity_2_14
displayName: Sanity 2.14
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Test {0}
testFormat: 2.14/sanity/{0}
targets:
- test: 1
- test: 2
- test: 3
- test: 4
### Units
- stage: Units_devel
displayName: Units devel
- stage: Units_2_17
displayName: Units 2.17
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: devel/units/{0}/1
testFormat: 2.17/units/{0}/1
targets:
- test: 3.7
- test: 3.8
@@ -151,25 +138,15 @@ stages:
targets:
- test: 3.5
- test: "3.10"
- stage: Units_2_14
displayName: Units 2.14
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: 2.14/units/{0}/1
targets:
- test: 3.9
## Remote
- stage: Remote_devel_extra_vms
displayName: Remote devel extra VMs
- stage: Remote_2_17_extra_vms
displayName: Remote 2.17 extra VMs
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: devel/{0}
testFormat: 2.17/{0}
targets:
- name: Alpine 3.19
test: alpine/3.19
@@ -179,13 +156,13 @@ stages:
test: ubuntu/22.04
groups:
- vm
- stage: Remote_devel
displayName: Remote devel
- stage: Remote_2_17
displayName: Remote 2.17
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: devel/{0}
testFormat: 2.17/{0}
targets:
- name: macOS 14.3
test: macos/14.3
@@ -241,33 +218,15 @@ stages:
- 1
- 2
- 3
- stage: Remote_2_14
displayName: Remote 2.14
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: 2.14/{0}
targets:
- name: RHEL 9.0
test: rhel/9.0
#- name: macOS 12.0
# test: macos/12.0
#- name: FreeBSD 12.4
# test: freebsd/12.4
groups:
- 1
- 2
- 3
### Docker
- stage: Docker_devel
displayName: Docker devel
- stage: Docker_2_17
displayName: Docker 2.17
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: devel/linux/{0}
testFormat: 2.17/linux/{0}
targets:
- name: Fedora 39
test: fedora39
@@ -315,29 +274,15 @@ stages:
- 1
- 2
- 3
- stage: Docker_2_14
displayName: Docker 2.14
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: 2.14/linux/{0}
targets:
- name: Alpine 3
test: alpine3
groups:
- 1
- 2
- 3
### Community Docker
- stage: Docker_community_devel
displayName: Docker (community images) devel
- stage: Docker_community_2_17
displayName: Docker (community images) 2.17
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: devel/linux-community/{0}
testFormat: 2.17/linux-community/{0}
targets:
- name: Debian Bullseye
test: debian-bullseye/3.9
@@ -351,14 +296,14 @@ stages:
- 3
### Generic
- stage: Generic_devel
displayName: Generic devel
- stage: Generic_2_17
displayName: Generic 2.17
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: devel/generic/{0}/1
testFormat: 2.17/generic/{0}/1
targets:
- test: '3.7'
- test: '3.12'
@@ -384,42 +329,27 @@ stages:
testFormat: 2.15/generic/{0}/1
targets:
- test: '3.9'
- stage: Generic_2_14
displayName: Generic 2.14
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: 2.14/generic/{0}/1
targets:
- test: '3.10'
- stage: Summary
condition: succeededOrFailed()
dependsOn:
- Sanity_devel
- Sanity_2_17
- Sanity_2_16
- Sanity_2_15
- Sanity_2_14
- Units_devel
- Units_2_17
- Units_2_16
- Units_2_15
- Units_2_14
- Remote_devel_extra_vms
- Remote_devel
- Remote_2_17_extra_vms
- Remote_2_17
- Remote_2_16
- Remote_2_15
- Remote_2_14
- Docker_devel
- Docker_2_17
- Docker_2_16
- Docker_2_15
- Docker_2_14
- Docker_community_devel
- Docker_community_2_17
# Right now all generic tests are disabled. Uncomment when at least one of them is re-enabled.
# - Generic_devel
# - Generic_2_17
# - Generic_2_16
# - Generic_2_15
# - Generic_2_14
jobs:
- template: templates/coverage.yml

5
.github/BOTMETA.yml vendored
View File

@@ -1395,6 +1395,8 @@ files:
ignore: matze
labels: zypper
maintainers: $team_suse
$plugin_utils/unsafe.py:
maintainers: felixfontein
$tests/a_module.py:
maintainers: felixfontein
#########################
@@ -1414,7 +1416,6 @@ macros:
becomes: plugins/become
caches: plugins/cache
callbacks: plugins/callback
cliconfs: plugins/cliconf
connections: plugins/connection
doc_fragments: plugins/doc_fragments
filters: plugins/filter
@@ -1422,7 +1423,7 @@ macros:
lookups: plugins/lookup
module_utils: plugins/module_utils
modules: plugins/modules
terminals: plugins/terminal
plugin_utils: plugins/plugin_utils
tests: plugins/test
team_ansible_core:
team_aix: MorrisA bcoca d-little flynn1973 gforster kairoaraujo marvin-sinister mator molekuul ramooncamacho wtcross

View File

@@ -32,6 +32,7 @@ jobs:
- '2.11'
- '2.12'
- '2.13'
- '2.14'
# Ansible-test on various stable branches does not yet work well with cgroups v2.
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
# image for these stable branches. The list of branches where this is necessary will
@@ -85,6 +86,8 @@ jobs:
python: '2.7'
- ansible: '2.13'
python: '3.8'
- ansible: '2.14'
python: '3.9'
steps:
- name: >-
@@ -258,6 +261,24 @@ jobs:
# docker: default
# python: '3.9'
# target: azp/generic/1/
# 2.14
- ansible: '2.14'
docker: alpine3
python: ''
target: azp/posix/1/
- ansible: '2.14'
docker: alpine3
python: ''
target: azp/posix/2/
- ansible: '2.14'
docker: alpine3
python: ''
target: azp/posix/3/
# Right now all generic tests are disabled. Uncomment when at least one of them is re-enabled.
# - ansible: '2.14'
# docker: default
# python: '3.10'
# target: azp/generic/1/
steps:
- name: >-

View File

@@ -2,79 +2,105 @@
**Topics**
- <a href="#v7-5-6">v7\.5\.6</a>
- <a href="#v7-5-7">v7\.5\.7</a>
- <a href="#release-summary">Release Summary</a>
- <a href="#security-fixes">Security Fixes</a>
- <a href="#bugfixes">Bugfixes</a>
- <a href="#v7-5-5">v7\.5\.5</a>
- <a href="#v7-5-6">v7\.5\.6</a>
- <a href="#release-summary-1">Release Summary</a>
- <a href="#security-fixes">Security Fixes</a>
- <a href="#bugfixes-1">Bugfixes</a>
- <a href="#v7-5-4">v7\.5\.4</a>
- <a href="#v7-5-5">v7\.5\.5</a>
- <a href="#release-summary-2">Release Summary</a>
- <a href="#bugfixes-2">Bugfixes</a>
- <a href="#v7-5-3">v7\.5\.3</a>
- <a href="#v7-5-4">v7\.5\.4</a>
- <a href="#release-summary-3">Release Summary</a>
- <a href="#bugfixes-3">Bugfixes</a>
- <a href="#v7-5-2">v7\.5\.2</a>
- <a href="#v7-5-3">v7\.5\.3</a>
- <a href="#release-summary-4">Release Summary</a>
- <a href="#minor-changes">Minor Changes</a>
- <a href="#bugfixes-4">Bugfixes</a>
- <a href="#v7-5-1">v7\.5\.1</a>
- <a href="#v7-5-2">v7\.5\.2</a>
- <a href="#release-summary-5">Release Summary</a>
- <a href="#minor-changes">Minor Changes</a>
- <a href="#bugfixes-5">Bugfixes</a>
- <a href="#v7-5-0">v7\.5\.0</a>
- <a href="#v7-5-1">v7\.5\.1</a>
- <a href="#release-summary-6">Release Summary</a>
- <a href="#bugfixes-6">Bugfixes</a>
- <a href="#v7-5-0">v7\.5\.0</a>
- <a href="#release-summary-7">Release Summary</a>
- <a href="#minor-changes-1">Minor Changes</a>
- <a href="#deprecated-features">Deprecated Features</a>
- <a href="#bugfixes-6">Bugfixes</a>
- <a href="#bugfixes-7">Bugfixes</a>
- <a href="#new-modules">New Modules</a>
- <a href="#v7-4-0">v7\.4\.0</a>
- <a href="#release-summary-7">Release Summary</a>
- <a href="#release-summary-8">Release Summary</a>
- <a href="#minor-changes-2">Minor Changes</a>
- <a href="#bugfixes-7">Bugfixes</a>
- <a href="#bugfixes-8">Bugfixes</a>
- <a href="#new-modules-1">New Modules</a>
- <a href="#v7-3-0">v7\.3\.0</a>
- <a href="#release-summary-8">Release Summary</a>
- <a href="#release-summary-9">Release Summary</a>
- <a href="#minor-changes-3">Minor Changes</a>
- <a href="#deprecated-features-1">Deprecated Features</a>
- <a href="#bugfixes-8">Bugfixes</a>
- <a href="#v7-2-1">v7\.2\.1</a>
- <a href="#release-summary-9">Release Summary</a>
- <a href="#bugfixes-9">Bugfixes</a>
- <a href="#v7-2-0">v7\.2\.0</a>
- <a href="#v7-2-1">v7\.2\.1</a>
- <a href="#release-summary-10">Release Summary</a>
- <a href="#bugfixes-10">Bugfixes</a>
- <a href="#v7-2-0">v7\.2\.0</a>
- <a href="#release-summary-11">Release Summary</a>
- <a href="#minor-changes-4">Minor Changes</a>
- <a href="#deprecated-features-2">Deprecated Features</a>
- <a href="#bugfixes-10">Bugfixes</a>
- <a href="#bugfixes-11">Bugfixes</a>
- <a href="#new-plugins">New Plugins</a>
- <a href="#lookup">Lookup</a>
- <a href="#new-modules-2">New Modules</a>
- <a href="#v7-1-0">v7\.1\.0</a>
- <a href="#release-summary-11">Release Summary</a>
- <a href="#release-summary-12">Release Summary</a>
- <a href="#minor-changes-5">Minor Changes</a>
- <a href="#deprecated-features-3">Deprecated Features</a>
- <a href="#bugfixes-11">Bugfixes</a>
- <a href="#bugfixes-12">Bugfixes</a>
- <a href="#known-issues">Known Issues</a>
- <a href="#new-modules-3">New Modules</a>
- <a href="#v7-0-1">v7\.0\.1</a>
- <a href="#release-summary-12">Release Summary</a>
- <a href="#bugfixes-12">Bugfixes</a>
- <a href="#v7-0-0">v7\.0\.0</a>
- <a href="#release-summary-13">Release Summary</a>
- <a href="#bugfixes-13">Bugfixes</a>
- <a href="#v7-0-0">v7\.0\.0</a>
- <a href="#release-summary-14">Release Summary</a>
- <a href="#minor-changes-6">Minor Changes</a>
- <a href="#breaking-changes--porting-guide">Breaking Changes / Porting Guide</a>
- <a href="#deprecated-features-4">Deprecated Features</a>
- <a href="#removed-features-previously-deprecated">Removed Features \(previously deprecated\)</a>
- <a href="#bugfixes-13">Bugfixes</a>
- <a href="#bugfixes-14">Bugfixes</a>
- <a href="#new-plugins-1">New Plugins</a>
- <a href="#lookup-1">Lookup</a>
- <a href="#new-modules-4">New Modules</a>
This changelog describes changes after version 6\.0\.0\.
<a id="v7-5-7"></a>
## v7\.5\.7
<a id="release-summary"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes"></a>
### Bugfixes
* aix\_filesystem \- fix <code>\_validate\_vg</code> not passing VG name to <code>lsvg\_cmd</code> \([https\://github\.com/ansible\-collections/community\.general/issues/8151](https\://github\.com/ansible\-collections/community\.general/issues/8151)\)\.
* apt\_rpm \- when checking whether packages were installed after running <code>apt\-get \-y install \<packages\></code>\, only the last package name was checked \([https\://github\.com/ansible\-collections/community\.general/pull/8263](https\://github\.com/ansible\-collections/community\.general/pull/8263)\)\.
* bitwarden\_secrets\_manager lookup plugin \- implements retry with exponential backoff to avoid lookup errors when Bitwardn\'s API rate limiting is encountered \([https\://github\.com/ansible\-collections/community\.general/issues/8230](https\://github\.com/ansible\-collections/community\.general/issues/8230)\, [https\://github\.com/ansible\-collections/community\.general/pull/8238](https\://github\.com/ansible\-collections/community\.general/pull/8238)\)\.
* haproxy \- fix an issue where HAProxy could get stuck in DRAIN mode when the backend was unreachable \([https\://github\.com/ansible\-collections/community\.general/issues/8092](https\://github\.com/ansible\-collections/community\.general/issues/8092)\)\.
* inventory plugins \- add unsafe wrapper to avoid marking strings that do not contain <code>\{</code> or <code>\}</code> as unsafe\, to work around a bug in AWX \(\([https\://github\.com/ansible\-collections/community\.general/issues/8212](https\://github\.com/ansible\-collections/community\.general/issues/8212)\, [https\://github\.com/ansible\-collections/community\.general/pull/8225](https\://github\.com/ansible\-collections/community\.general/pull/8225)\)\.
* ipa \- fix get version regex in IPA module\_utils \([https\://github\.com/ansible\-collections/community\.general/pull/8175](https\://github\.com/ansible\-collections/community\.general/pull/8175)\)\.
* keycloak\_client \- add sorted <code>defaultClientScopes</code> and <code>optionalClientScopes</code> to normalizations \([https\://github\.com/ansible\-collections/community\.general/pull/8223](https\://github\.com/ansible\-collections/community\.general/pull/8223)\)\.
* keycloak\_realm \- add normalizations for <code>enabledEventTypes</code> and <code>supportedLocales</code> \([https\://github\.com/ansible\-collections/community\.general/pull/8224](https\://github\.com/ansible\-collections/community\.general/pull/8224)\)\.
* puppet \- add option <code>environment\_lang</code> to set the environment language encoding\. Defaults to lang <code>C</code>\. It is recommended to set it to <code>C\.UTF\-8</code> or <code>en\_US\.UTF\-8</code> depending on what is available on your system\. \([https\://github\.com/ansible\-collections/community\.general/issues/8000](https\://github\.com/ansible\-collections/community\.general/issues/8000)\)
* riak \- support <code>riak admin</code> sub\-command in newer Riak KV versions beside the legacy <code>riak\-admin</code> main command \([https\://github\.com/ansible\-collections/community\.general/pull/8211](https\://github\.com/ansible\-collections/community\.general/pull/8211)\)\.
* xml \- make module work with lxml 5\.1\.1\, which removed some internals that the module was relying on \([https\://github\.com/ansible\-collections/community\.general/pull/8169](https\://github\.com/ansible\-collections/community\.general/pull/8169)\)\.
<a id="v7-5-6"></a>
## v7\.5\.6
<a id="release-summary"></a>
<a id="release-summary-1"></a>
### Release Summary
Regular bugfix release with security fixes\.
@@ -84,7 +110,7 @@ Regular bugfix release with security fixes\.
* cobbler\, gitlab\_runners\, icinga2\, linode\, lxd\, nmap\, online\, opennebula\, proxmox\, scaleway\, stackpath\_compute\, virtualbox\, and xen\_orchestra inventory plugin \- make sure all data received from the remote servers is marked as unsafe\, so remote code execution by obtaining texts that can be evaluated as templates is not possible \([https\://www\.die\-welt\.net/2024/03/remote\-code\-execution\-in\-ansible\-dynamic\-inventory\-plugins/](https\://www\.die\-welt\.net/2024/03/remote\-code\-execution\-in\-ansible\-dynamic\-inventory\-plugins/)\, [https\://github\.com/ansible\-collections/community\.general/pull/8098](https\://github\.com/ansible\-collections/community\.general/pull/8098)\)\.
<a id="bugfixes"></a>
<a id="bugfixes-1"></a>
### Bugfixes
* aix\_filesystem \- fix issue with empty list items in crfs logic and option order \([https\://github\.com/ansible\-collections/community\.general/pull/8052](https\://github\.com/ansible\-collections/community\.general/pull/8052)\)\.
@@ -100,12 +126,12 @@ Regular bugfix release with security fixes\.
<a id="v7-5-5"></a>
## v7\.5\.5
<a id="release-summary-1"></a>
<a id="release-summary-2"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes-1"></a>
<a id="bugfixes-2"></a>
### Bugfixes
* cargo \- fix idempotency issues when using a custom installation path for packages \(using the <code>\-\-path</code> parameter\)\. The initial installation runs fine\, but subsequent runs use the <code>get\_installed\(\)</code> function which did not check the given installation location\, before running <code>cargo install</code>\. This resulted in a false <code>changed</code> state\. Also the removal of packeges using <code>state\: absent</code> failed\, as the installation check did not use the given parameter \([https\://github\.com/ansible\-collections/community\.general/pull/7970](https\://github\.com/ansible\-collections/community\.general/pull/7970)\)\.
@@ -119,12 +145,12 @@ Regular bugfix release\.
<a id="v7-5-4"></a>
## v7\.5\.4
<a id="release-summary-2"></a>
<a id="release-summary-3"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes-2"></a>
<a id="bugfixes-3"></a>
### Bugfixes
* homebrew \- detect already installed formulae and casks using JSON output from <code>brew info</code> \([https\://github\.com/ansible\-collections/community\.general/issues/864](https\://github\.com/ansible\-collections/community\.general/issues/864)\)\.
@@ -136,12 +162,12 @@ Regular bugfix release\.
<a id="v7-5-3"></a>
## v7\.5\.3
<a id="release-summary-3"></a>
<a id="release-summary-4"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes-3"></a>
<a id="bugfixes-4"></a>
### Bugfixes
* keycloak\_identity\_provider \- <code>mappers</code> processing was not idempotent if the mappers configuration list had not been sorted by name \(in ascending order\)\. Fix resolves the issue by sorting mappers in the desired state using the same key which is used for obtaining existing state \([https\://github\.com/ansible\-collections/community\.general/pull/7418](https\://github\.com/ansible\-collections/community\.general/pull/7418)\)\.
@@ -152,7 +178,7 @@ Regular bugfix release\.
<a id="v7-5-2"></a>
## v7\.5\.2
<a id="release-summary-4"></a>
<a id="release-summary-5"></a>
### Release Summary
Regular bugfix release\.
@@ -162,7 +188,7 @@ Regular bugfix release\.
* elastic callback plugin \- close elastic client to not leak resources \([https\://github\.com/ansible\-collections/community\.general/pull/7517](https\://github\.com/ansible\-collections/community\.general/pull/7517)\)\.
<a id="bugfixes-4"></a>
<a id="bugfixes-5"></a>
### Bugfixes
* cloudflare\_dns \- fix Cloudflare lookup of SHFP records \([https\://github\.com/ansible\-collections/community\.general/issues/7652](https\://github\.com/ansible\-collections/community\.general/issues/7652)\)\.
@@ -184,12 +210,12 @@ Regular bugfix release\.
<a id="v7-5-1"></a>
## v7\.5\.1
<a id="release-summary-5"></a>
<a id="release-summary-6"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes-5"></a>
<a id="bugfixes-6"></a>
### Bugfixes
* composer \- fix impossible to run <code>working\_dir</code> dependent commands\. The module was throwing an error when trying to run a <code>working\_dir</code> dependent command\, because it tried to get the command help without passing the <code>working\_dir</code> \([https\://github\.com/ansible\-collections/community\.general/issues/3787](https\://github\.com/ansible\-collections/community\.general/issues/3787)\)\.
@@ -211,7 +237,7 @@ Regular bugfix release\.
<a id="v7-5-0"></a>
## v7\.5\.0
<a id="release-summary-6"></a>
<a id="release-summary-7"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -248,7 +274,7 @@ with major version 7 will be bugfix releases 7\.5\.y\.
* The next major release\, community\.general 8\.0\.0\, will drop support for ansible\-core 2\.11 and 2\.12\, which have been End of Life for some time now\. This means that this collection no longer supports Python 2\.6 on the target\. Individual content might still work with unsupported ansible\-core versions\, but that can change at any time\. Also please note that from now on\, for every new major community\.general release\, we will drop support for all ansible\-core versions that have been End of Life for more than a few weeks on the date of the major release \([https\://github\.com/ansible\-community/community\-topics/discussions/271](https\://github\.com/ansible\-community/community\-topics/discussions/271)\, [https\://github\.com/ansible\-collections/community\.general/pull/7259](https\://github\.com/ansible\-collections/community\.general/pull/7259)\)\.
* redfish\_info\, redfish\_config\, redfish\_command \- the default value <code>10</code> for the <code>timeout</code> option is deprecated and will change to <code>60</code> in community\.general 9\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/7295](https\://github\.com/ansible\-collections/community\.general/pull/7295)\)\.
<a id="bugfixes-6"></a>
<a id="bugfixes-7"></a>
### Bugfixes
* gitlab\_group\_variable \- deleted all variables when used with <code>purge\=true</code> due to missing <code>raw</code> property in KNOWN attributes \([https\://github\.com/ansible\-collections/community\.general/issues/7250](https\://github\.com/ansible\-collections/community\.general/issues/7250)\)\.
@@ -273,7 +299,7 @@ with major version 7 will be bugfix releases 7\.5\.y\.
<a id="v7-4-0"></a>
## v7\.4\.0
<a id="release-summary-7"></a>
<a id="release-summary-8"></a>
### Release Summary
Bugfix and feature release\.
@@ -295,7 +321,7 @@ Bugfix and feature release\.
* redfish\_utils module utils \- support <code>Volumes</code> in response for <code>GetDiskInventory</code> \([https\://github\.com/ansible\-collections/community\.general/pull/6819](https\://github\.com/ansible\-collections/community\.general/pull/6819)\)\.
* unixy callback plugin \- add support for <code>check\_mode\_markers</code> option \([https\://github\.com/ansible\-collections/community\.general/pull/7179](https\://github\.com/ansible\-collections/community\.general/pull/7179)\)\.
<a id="bugfixes-7"></a>
<a id="bugfixes-8"></a>
### Bugfixes
* CmdRunner module utils \- does not attempt to resolve path if executable is a relative or absolute path \([https\://github\.com/ansible\-collections/community\.general/pull/7200](https\://github\.com/ansible\-collections/community\.general/pull/7200)\)\.
@@ -314,7 +340,7 @@ Bugfix and feature release\.
<a id="v7-3-0"></a>
## v7\.3\.0
<a id="release-summary-8"></a>
<a id="release-summary-9"></a>
### Release Summary
Feature and bugfix release\.
@@ -342,7 +368,7 @@ Feature and bugfix release\.
* ejabberd\_user \- deprecate the parameter <code>logging</code> in favour of producing more detailed information in the module output \([https\://github\.com/ansible\-collections/community\.general/pull/7043](https\://github\.com/ansible\-collections/community\.general/pull/7043)\)\.
<a id="bugfixes-8"></a>
<a id="bugfixes-9"></a>
### Bugfixes
* bitwarden lookup plugin \- the plugin made assumptions about the structure of a Bitwarden JSON object which may have been broken by an update in the Bitwarden API\. Remove assumptions\, and allow queries for general fields such as <code>notes</code> \([https\://github\.com/ansible\-collections/community\.general/pull/7061](https\://github\.com/ansible\-collections/community\.general/pull/7061)\)\.
@@ -361,12 +387,12 @@ Feature and bugfix release\.
<a id="v7-2-1"></a>
## v7\.2\.1
<a id="release-summary-9"></a>
<a id="release-summary-10"></a>
### Release Summary
Bugfix release\.
<a id="bugfixes-9"></a>
<a id="bugfixes-10"></a>
### Bugfixes
* cmd\_runner module utils \- when a parameter in <code>argument\_spec</code> has no type\, meaning it is implicitly a <code>str</code>\, <code>CmdRunner</code> would fail trying to find the <code>type</code> key in that dictionary \([https\://github\.com/ansible\-collections/community\.general/pull/6968](https\://github\.com/ansible\-collections/community\.general/pull/6968)\)\.
@@ -378,7 +404,7 @@ Bugfix release\.
<a id="v7-2-0"></a>
## v7\.2\.0
<a id="release-summary-10"></a>
<a id="release-summary-11"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -429,7 +455,7 @@ Regular bugfix and feature release\.
* webfaction\_mailbox \- module relies entirely on no longer existent API endpoints\, and it will be removed in community\.general 9\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/6909](https\://github\.com/ansible\-collections/community\.general/pull/6909)\)\.
* webfaction\_site \- module relies entirely on no longer existent API endpoints\, and it will be removed in community\.general 9\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/6909](https\://github\.com/ansible\-collections/community\.general/pull/6909)\)\.
<a id="bugfixes-10"></a>
<a id="bugfixes-11"></a>
### Bugfixes
* cobbler inventory plugin \- fix calculation of cobbler\_ipv4/6\_address \([https\://github\.com/ansible\-collections/community\.general/pull/6925](https\://github\.com/ansible\-collections/community\.general/pull/6925)\)\.
@@ -471,7 +497,7 @@ Regular bugfix and feature release\.
<a id="v7-1-0"></a>
## v7\.1\.0
<a id="release-summary-11"></a>
<a id="release-summary-12"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -553,7 +579,7 @@ for the rendered HTML version of the documentation of the latest release\.
for removal in community\.general 10\.0\.0
\([https\://github\.com/ansible\-collections/community\.general/pull/6673](https\://github\.com/ansible\-collections/community\.general/pull/6673)\)\.
<a id="bugfixes-11"></a>
<a id="bugfixes-12"></a>
### Bugfixes
* MH DependencyMixin module utils \- deprecation notice was popping up for modules not using dependencies \([https\://github\.com/ansible\-collections/community\.general/pull/6644](https\://github\.com/ansible\-collections/community\.general/pull/6644)\, [https\://github\.com/ansible\-collections/community\.general/issues/6639](https\://github\.com/ansible\-collections/community\.general/issues/6639)\)\.
@@ -590,12 +616,12 @@ for the rendered HTML version of the documentation of the latest release\.
<a id="v7-0-1"></a>
## v7\.0\.1
<a id="release-summary-12"></a>
<a id="release-summary-13"></a>
### Release Summary
Bugfix release for Ansible 8\.0\.0rc1\.
<a id="bugfixes-12"></a>
<a id="bugfixes-13"></a>
### Bugfixes
* nmcli \- fix bond option <code>xmit\_hash\_policy</code> \([https\://github\.com/ansible\-collections/community\.general/pull/6527](https\://github\.com/ansible\-collections/community\.general/pull/6527)\)\.
@@ -606,7 +632,7 @@ Bugfix release for Ansible 8\.0\.0rc1\.
<a id="v7-0-0"></a>
## v7\.0\.0
<a id="release-summary-13"></a>
<a id="release-summary-14"></a>
### Release Summary
This is release 7\.0\.0 of <code>community\.general</code>\, released on 2023\-05\-09\.
@@ -791,7 +817,7 @@ This is release 7\.0\.0 of <code>community\.general</code>\, released on 2023\-0
* xfconf \- generating facts was deprecated in community\.general 3\.0\.0\, however three factoids\, <code>property</code>\, <code>channel</code> and <code>value</code> continued to be generated by mistake\. This behaviour has been removed and <code>xfconf</code> generate no facts whatsoever \([https\://github\.com/ansible\-collections/community\.general/pull/5502](https\://github\.com/ansible\-collections/community\.general/pull/5502)\)\.
* xfconf \- generating facts was deprecated in community\.general 3\.0\.0\, however two factoids\, <code>previous\_value</code> and <code>type</code> continued to be generated by mistake\. This behaviour has been removed and <code>xfconf</code> generate no facts whatsoever \([https\://github\.com/ansible\-collections/community\.general/pull/5502](https\://github\.com/ansible\-collections/community\.general/pull/5502)\)\.
<a id="bugfixes-13"></a>
<a id="bugfixes-14"></a>
### Bugfixes
* ModuleHelper \- fix bug when adjusting the name of reserved output variables \([https\://github\.com/ansible\-collections/community\.general/pull/5755](https\://github\.com/ansible\-collections/community\.general/pull/5755)\)\.

View File

@@ -6,6 +6,29 @@ Community General Release Notes
This changelog describes changes after version 6.0.0.
v7.5.7
======
Release Summary
---------------
Regular bugfix release.
Bugfixes
--------
- aix_filesystem - fix ``_validate_vg`` not passing VG name to ``lsvg_cmd`` (https://github.com/ansible-collections/community.general/issues/8151).
- apt_rpm - when checking whether packages were installed after running ``apt-get -y install <packages>``, only the last package name was checked (https://github.com/ansible-collections/community.general/pull/8263).
- bitwarden_secrets_manager lookup plugin - implements retry with exponential backoff to avoid lookup errors when Bitwardn's API rate limiting is encountered (https://github.com/ansible-collections/community.general/issues/8230, https://github.com/ansible-collections/community.general/pull/8238).
- haproxy - fix an issue where HAProxy could get stuck in DRAIN mode when the backend was unreachable (https://github.com/ansible-collections/community.general/issues/8092).
- inventory plugins - add unsafe wrapper to avoid marking strings that do not contain ``{`` or ``}`` as unsafe, to work around a bug in AWX ((https://github.com/ansible-collections/community.general/issues/8212, https://github.com/ansible-collections/community.general/pull/8225).
- ipa - fix get version regex in IPA module_utils (https://github.com/ansible-collections/community.general/pull/8175).
- keycloak_client - add sorted ``defaultClientScopes`` and ``optionalClientScopes`` to normalizations (https://github.com/ansible-collections/community.general/pull/8223).
- keycloak_realm - add normalizations for ``enabledEventTypes`` and ``supportedLocales`` (https://github.com/ansible-collections/community.general/pull/8224).
- puppet - add option ``environment_lang`` to set the environment language encoding. Defaults to lang ``C``. It is recommended to set it to ``C.UTF-8`` or ``en_US.UTF-8`` depending on what is available on your system. (https://github.com/ansible-collections/community.general/issues/8000)
- riak - support ``riak admin`` sub-command in newer Riak KV versions beside the legacy ``riak-admin`` main command (https://github.com/ansible-collections/community.general/pull/8211).
- xml - make module work with lxml 5.1.1, which removed some internals that the module was relying on (https://github.com/ansible-collections/community.general/pull/8169).
v7.5.6
======

View File

@@ -24,7 +24,7 @@ If you encounter abusive behavior violating the [Ansible Code of Conduct](https:
## Tested with Ansible
Tested with the current ansible-core 2.11, ansible-core 2.12, ansible-core 2.13, ansible-core 2.14, ansible-core 2.15, ansible-core 2.16 releases and the current development version of ansible-core. Ansible-core versions before 2.11.0 are not supported. This includes all ansible-base 2.10 and Ansible 2.9 releases.
Tested with the current ansible-core 2.11, ansible-core 2.12, ansible-core 2.13, ansible-core 2.14, ansible-core 2.15, ansible-core 2.16, and ansible-core 2.17 releases. Ansible-core versions before 2.11.0 are not supported. This includes all ansible-base 2.10 and Ansible 2.9 releases.
Parts of this collection will not work with ansible-core 2.11 on Python 3.12+.

View File

@@ -1788,3 +1788,45 @@ releases:
- inventory-rce.yml
- pacemaker-cluster.yml
release_date: '2024-03-25'
7.5.7:
changes:
bugfixes:
- aix_filesystem - fix ``_validate_vg`` not passing VG name to ``lsvg_cmd``
(https://github.com/ansible-collections/community.general/issues/8151).
- apt_rpm - when checking whether packages were installed after running ``apt-get
-y install <packages>``, only the last package name was checked (https://github.com/ansible-collections/community.general/pull/8263).
- bitwarden_secrets_manager lookup plugin - implements retry with exponential
backoff to avoid lookup errors when Bitwardn's API rate limiting is encountered
(https://github.com/ansible-collections/community.general/issues/8230, https://github.com/ansible-collections/community.general/pull/8238).
- haproxy - fix an issue where HAProxy could get stuck in DRAIN mode when the
backend was unreachable (https://github.com/ansible-collections/community.general/issues/8092).
- inventory plugins - add unsafe wrapper to avoid marking strings that do not
contain ``{`` or ``}`` as unsafe, to work around a bug in AWX ((https://github.com/ansible-collections/community.general/issues/8212,
https://github.com/ansible-collections/community.general/pull/8225).
- ipa - fix get version regex in IPA module_utils (https://github.com/ansible-collections/community.general/pull/8175).
- keycloak_client - add sorted ``defaultClientScopes`` and ``optionalClientScopes``
to normalizations (https://github.com/ansible-collections/community.general/pull/8223).
- keycloak_realm - add normalizations for ``enabledEventTypes`` and ``supportedLocales``
(https://github.com/ansible-collections/community.general/pull/8224).
- puppet - add option ``environment_lang`` to set the environment language encoding.
Defaults to lang ``C``. It is recommended to set it to ``C.UTF-8`` or ``en_US.UTF-8``
depending on what is available on your system. (https://github.com/ansible-collections/community.general/issues/8000)
- riak - support ``riak admin`` sub-command in newer Riak KV versions beside
the legacy ``riak-admin`` main command (https://github.com/ansible-collections/community.general/pull/8211).
- xml - make module work with lxml 5.1.1, which removed some internals that
the module was relying on (https://github.com/ansible-collections/community.general/pull/8169).
release_summary: Regular bugfix release.
fragments:
- 7.5.7.yml
- 8100-haproxy-drain-fails-on-down-backend.yml
- 8151-fix-lsvg_cmd-failed.yml
- 8169-lxml.yml
- 8175-get_ipa_version_regex.yml
- 8211-riak-admin-sub-command-support.yml
- 8223-keycloak_client-additional-normalizations.yaml
- 8224-keycloak_realm-add-normalizations.yaml
- 8225-unsafe.yml
- 8238-bitwarden-secrets-manager-rate-limit-retry-with-backoff.yml
- 8263-apt_rpm-install-check.yml
- puppet_lang_force.yml
release_date: '2024-04-22'

View File

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

View File

@@ -117,7 +117,8 @@ from ansible.errors import AnsibleError
from ansible.module_utils.common.text.converters import to_text
from ansible.plugins.inventory import BaseInventoryPlugin, Cacheable, to_safe_group_name
from ansible.module_utils.six import text_type
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
# xmlrpc
try:

View File

@@ -84,7 +84,8 @@ keyed_groups:
from ansible.errors import AnsibleError, AnsibleParserError
from ansible.module_utils.common.text.converters import to_native
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
try:
import gitlab

View File

@@ -96,7 +96,8 @@ from ansible.errors import AnsibleParserError
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable
from ansible.module_utils.urls import open_url
from ansible.module_utils.six.moves.urllib.error import HTTPError
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
class InventoryModule(BaseInventoryPlugin, Constructable):

View File

@@ -123,7 +123,8 @@ compose:
from ansible.errors import AnsibleError
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
try:

View File

@@ -161,7 +161,7 @@ from ansible.module_utils.six import raise_from
from ansible.errors import AnsibleError, AnsibleParserError
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible_collections.community.general.plugins.module_utils.lxd import LXDClient, LXDClientException
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
try:
import ipaddress

View File

@@ -126,7 +126,8 @@ from ansible.errors import AnsibleParserError
from ansible.module_utils.common.text.converters import to_native, to_text
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable
from ansible.module_utils.common.process import get_bin_path
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):

View File

@@ -68,7 +68,8 @@ from ansible.plugins.inventory import BaseInventoryPlugin
from ansible.module_utils.common.text.converters import to_text
from ansible.module_utils.ansible_release import __version__ as ansible_version
from ansible.module_utils.six.moves.urllib.parse import urljoin
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
class InventoryModule(BaseInventoryPlugin):

View File

@@ -97,7 +97,8 @@ except ImportError:
from ansible.errors import AnsibleError
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable
from ansible.module_utils.common.text.converters import to_native
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
from collections import namedtuple
import os

View File

@@ -222,9 +222,9 @@ from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.six import string_types
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.utils.display import Display
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
# 3rd party imports
try:

View File

@@ -121,10 +121,10 @@ else:
from ansible.errors import AnsibleError
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable
from ansible_collections.community.general.plugins.module_utils.scaleway import SCALEWAY_LOCATION, parse_pagination_link
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
from ansible.module_utils.urls import open_url
from ansible.module_utils.common.text.converters import to_native, to_text
from ansible.module_utils.six import raise_from
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
import ansible.module_utils.six.moves.urllib.parse as urllib_parse

View File

@@ -72,7 +72,8 @@ from ansible.plugins.inventory import (
Cacheable
)
from ansible.utils.display import Display
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
display = Display()

View File

@@ -62,7 +62,8 @@ from ansible.module_utils.common.text.converters import to_bytes, to_native, to_
from ansible.module_utils.common._collections_compat import MutableMapping
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable
from ansible.module_utils.common.process import get_bin_path
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
class InventoryModule(BaseInventoryPlugin, Constructable, Cacheable):

View File

@@ -82,9 +82,9 @@ from time import sleep
from ansible.errors import AnsibleError
from ansible.plugins.inventory import BaseInventoryPlugin, Constructable, Cacheable
from ansible.utils.unsafe_proxy import wrap_var as make_unsafe
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
from ansible_collections.community.general.plugins.plugin_utils.unsafe import make_unsafe
# 3rd party imports
try:

View File

@@ -70,6 +70,7 @@ RETURN = """
"""
from subprocess import Popen, PIPE
from time import sleep
from ansible.errors import AnsibleLookupError
from ansible.module_utils.common.text.converters import to_text
@@ -84,11 +85,29 @@ class BitwardenSecretsManagerException(AnsibleLookupError):
class BitwardenSecretsManager(object):
def __init__(self, path='bws'):
self._cli_path = path
self._max_retries = 3
self._retry_delay = 1
@property
def cli_path(self):
return self._cli_path
def _run_with_retry(self, args, stdin=None, retries=0):
out, err, rc = self._run(args, stdin)
if rc != 0:
if retries >= self._max_retries:
raise BitwardenSecretsManagerException("Max retries exceeded. Unable to retrieve secret.")
if "Too many requests" in err:
delay = self._retry_delay * (2 ** retries)
sleep(delay)
return self._run_with_retry(args, stdin, retries + 1)
else:
raise BitwardenSecretsManagerException("Command failed with return code {rc}: {err}".format(rc=rc, err=err))
return out, err, rc
def _run(self, args, stdin=None):
p = Popen([self.cli_path] + args, stdout=PIPE, stderr=PIPE, stdin=PIPE)
out, err = p.communicate(stdin)
@@ -107,7 +126,7 @@ class BitwardenSecretsManager(object):
'get', 'secret', secret_id
]
out, err, rc = self._run(params)
out, err, rc = self._run_with_retry(params)
if rc != 0:
raise BitwardenSecretsManagerException(to_text(err))

View File

@@ -104,7 +104,7 @@ class IPAClient(object):
def get_ipa_version(self):
response = self.ping()['summary']
ipa_ver_regex = re.compile(r'IPA server version (\d\.\d\.\d).*')
ipa_ver_regex = re.compile(r'IPA server version (\d+\.\d+\.\d+).*')
version_match = ipa_ver_regex.match(response)
ipa_version = None
if version_match:

View File

@@ -107,5 +107,6 @@ def puppet_runner(module):
verbose=cmd_runner_fmt.as_bool("--verbose"),
),
check_rc=False,
force_lang=module.params["environment_lang"],
)
return runner

View File

@@ -242,7 +242,7 @@ def _validate_vg(module, vg):
if rc != 0:
module.fail_json(msg="Failed executing %s command." % lsvg_cmd)
rc, current_all_vgs, err = module.run_command([lsvg_cmd, "%s"])
rc, current_all_vgs, err = module.run_command([lsvg_cmd])
if rc != 0:
module.fail_json(msg="Failed executing %s command." % lsvg_cmd)

View File

@@ -204,7 +204,7 @@ def install_packages(module, pkgspec):
rc, out, err = module.run_command("%s -y install %s" % (APT_PATH, packages), environ_update={"LANG": "C"})
installed = True
for packages in pkgspec:
for package in pkgspec:
if not query_package_provides(module, package):
installed = False

View File

@@ -343,7 +343,7 @@ class HAProxy(object):
if state is not None:
self.execute(Template(cmd).substitute(pxname=backend, svname=svname))
if self.wait:
if self.wait and not (wait_for_status == "DRAIN" and state == "DOWN"):
self.wait_until_status(backend, svname, wait_for_status)
def get_state_for(self, pxname, svname):

View File

@@ -742,6 +742,12 @@ def normalise_cr(clientrep, remove_ids=False):
if 'attributes' in clientrep:
clientrep['attributes'] = list(sorted(clientrep['attributes']))
if 'defaultClientScopes' in clientrep:
clientrep['defaultClientScopes'] = list(sorted(clientrep['defaultClientScopes']))
if 'optionalClientScopes' in clientrep:
clientrep['optionalClientScopes'] = list(sorted(clientrep['optionalClientScopes']))
if 'redirectUris' in clientrep:
clientrep['redirectUris'] = list(sorted(clientrep['redirectUris']))

View File

@@ -582,6 +582,27 @@ from ansible_collections.community.general.plugins.module_utils.identity.keycloa
from ansible.module_utils.basic import AnsibleModule
def normalise_cr(realmrep):
""" Re-sorts any properties where the order is important so that diff's is minimised and the change detection is more effective.
:param realmrep: the realmrep dict to be sanitized
:return: normalised realmrep dict
"""
# Avoid the dict passed in to be modified
realmrep = realmrep.copy()
if 'enabledEventTypes' in realmrep:
realmrep['enabledEventTypes'] = list(sorted(realmrep['enabledEventTypes']))
if 'otpSupportedApplications' in realmrep:
realmrep['otpSupportedApplications'] = list(sorted(realmrep['otpSupportedApplications']))
if 'supportedLocales' in realmrep:
realmrep['supportedLocales'] = list(sorted(realmrep['supportedLocales']))
return realmrep
def sanitize_cr(realmrep):
""" Removes probably sensitive details from a realm representation.
@@ -595,7 +616,7 @@ def sanitize_cr(realmrep):
if 'saml.signing.private.key' in result['attributes']:
result['attributes'] = result['attributes'].copy()
result['attributes']['saml.signing.private.key'] = '********'
return result
return normalise_cr(result)
def main():
@@ -777,9 +798,11 @@ def main():
result['changed'] = True
if module.check_mode:
# We can only compare the current realm with the proposed updates we have
before_norm = normalise_cr(before_realm)
desired_norm = normalise_cr(desired_realm)
if module._diff:
result['diff'] = dict(before=before_realm_sanitized,
after=sanitize_cr(desired_realm))
result['diff'] = dict(before=sanitize_cr(before_norm),
after=sanitize_cr(desired_norm))
result['changed'] = (before_realm != desired_realm)
module.exit_json(**result)

View File

@@ -86,8 +86,8 @@ options:
source:
description:
- 'The source for the instance
(for example V({ "type": "image", "mode": "pull", "server": "https://images.linuxcontainers.org",
"protocol": "lxd", "alias": "ubuntu/xenial/amd64" })).'
(for example V({ "type": "image", "mode": "pull", "server": "https://cloud-images.ubuntu.com/releases/",
"protocol": "simplestreams", "alias": "22.04" })).'
- 'See U(https://documentation.ubuntu.com/lxd/en/latest/api/) for complete API documentation.'
- 'Note that C(protocol) accepts two choices: V(lxd) or V(simplestreams).'
required: false
@@ -205,6 +205,9 @@ notes:
- You can copy a file in the created instance to the localhost
with C(command=lxc file pull instance_name/dir/filename filename).
See the first example below.
- linuxcontainers.org has phased out LXC/LXD support with March 2024
(U(https://discuss.linuxcontainers.org/t/important-notice-for-lxd-users-image-server/18479)).
Currently only Ubuntu is still providing images.
'''
EXAMPLES = '''
@@ -220,9 +223,9 @@ EXAMPLES = '''
source:
type: image
mode: pull
server: https://images.linuxcontainers.org
protocol: lxd # if you get a 404, try setting protocol: simplestreams
alias: ubuntu/xenial/amd64
server: https://cloud-images.ubuntu.com/releases/
protocol: simplestreams
alias: "22.04"
profiles: ["default"]
wait_for_ipv4_addresses: true
timeout: 600
@@ -264,6 +267,26 @@ EXAMPLES = '''
wait_for_ipv4_addresses: true
timeout: 600
# An example of creating a ubuntu-minial container
- hosts: localhost
connection: local
tasks:
- name: Create a started container
community.general.lxd_container:
name: mycontainer
ignore_volatile_options: true
state: started
source:
type: image
mode: pull
# Provides Ubuntu minimal images
server: https://cloud-images.ubuntu.com/minimal/releases/
protocol: simplestreams
alias: "22.04"
profiles: ["default"]
wait_for_ipv4_addresses: true
timeout: 600
# An example for creating container in project other than default
- hosts: localhost
connection: local
@@ -278,8 +301,8 @@ EXAMPLES = '''
protocol: simplestreams
type: image
mode: pull
server: https://images.linuxcontainers.org
alias: ubuntu/20.04/cloud
server: https://cloud-images.ubuntu.com/releases/
alias: "22.04"
profiles: ["default"]
wait_for_ipv4_addresses: true
timeout: 600
@@ -347,7 +370,7 @@ EXAMPLES = '''
source:
type: image
mode: pull
alias: ubuntu/xenial/amd64
alias: "22.04"
target: node01
- name: Create container on another node
@@ -358,7 +381,7 @@ EXAMPLES = '''
source:
type: image
mode: pull
alias: ubuntu/xenial/amd64
alias: "22.04"
target: node02
# An example for creating a virtual machine

View File

@@ -116,6 +116,15 @@ options:
- Whether to print file changes details
type: bool
default: false
environment_lang:
description:
- The lang environment to use when running the puppet agent.
- The default value, V(C), is supported on every system, but can lead to encoding errors if UTF-8 is used in the output
- Use V(C.UTF-8) or V(en_US.UTF-8) or similar UTF-8 supporting locales in case of problems. You need to make sure
the selected locale is supported on the system the puppet agent runs on.
type: str
default: C
version_added: 8.6.0
requirements:
- puppet
author:
@@ -208,6 +217,7 @@ def main():
debug=dict(type='bool', default=False),
verbose=dict(type='bool', default=False),
use_srv_records=dict(type='bool'),
environment_lang=dict(type='str', default='C'),
),
supports_check_mode=True,
mutually_exclusive=[

View File

@@ -93,7 +93,7 @@ from ansible.module_utils.urls import fetch_url
def ring_check(module, riak_admin_bin):
cmd = '%s ringready' % riak_admin_bin
cmd = riak_admin_bin + ['ringready']
rc, out, err = module.run_command(cmd)
if rc == 0 and 'TRUE All nodes agree on the ring' in out:
return True
@@ -127,6 +127,7 @@ def main():
# make sure riak commands are on the path
riak_bin = module.get_bin_path('riak')
riak_admin_bin = module.get_bin_path('riak-admin')
riak_admin_bin = [riak_admin_bin] if riak_admin_bin is not None else [riak_bin, 'admin']
timeout = time.time() + 120
while True:
@@ -164,7 +165,7 @@ def main():
module.fail_json(msg=out)
elif command == 'kv_test':
cmd = '%s test' % riak_admin_bin
cmd = riak_admin_bin + ['test']
rc, out, err = module.run_command(cmd)
if rc == 0:
result['kv_test'] = out
@@ -175,7 +176,7 @@ def main():
if nodes.count(node_name) == 1 and len(nodes) > 1:
result['join'] = 'Node is already in cluster or staged to be in cluster.'
else:
cmd = '%s cluster join %s' % (riak_admin_bin, target_node)
cmd = riak_admin_bin + ['cluster', 'join', target_node]
rc, out, err = module.run_command(cmd)
if rc == 0:
result['join'] = out
@@ -184,7 +185,7 @@ def main():
module.fail_json(msg=out)
elif command == 'plan':
cmd = '%s cluster plan' % riak_admin_bin
cmd = riak_admin_bin + ['cluster', 'plan']
rc, out, err = module.run_command(cmd)
if rc == 0:
result['plan'] = out
@@ -194,7 +195,7 @@ def main():
module.fail_json(msg=out)
elif command == 'commit':
cmd = '%s cluster commit' % riak_admin_bin
cmd = riak_admin_bin + ['cluster', 'commit']
rc, out, err = module.run_command(cmd)
if rc == 0:
result['commit'] = out
@@ -206,7 +207,7 @@ def main():
if wait_for_handoffs:
timeout = time.time() + wait_for_handoffs
while True:
cmd = '%s transfers' % riak_admin_bin
cmd = riak_admin_bin + ['transfers']
rc, out, err = module.run_command(cmd)
if 'No transfers active' in out:
result['handoffs'] = 'No transfers active.'
@@ -216,7 +217,7 @@ def main():
module.fail_json(msg='Timeout waiting for handoffs.')
if wait_for_service:
cmd = [riak_admin_bin, 'wait_for_service', 'riak_%s' % wait_for_service, node_name]
cmd = riak_admin_bin + ['wait_for_service', 'riak_%s' % wait_for_service, node_name]
rc, out, err = module.run_command(cmd)
result['service'] = out

View File

@@ -436,11 +436,16 @@ def is_attribute(tree, xpath, namespaces):
""" Test if a given xpath matches and that match is an attribute
An xpath attribute search will only match one item"""
# lxml 5.1.1 removed etree._ElementStringResult, so we can no longer simply assume it's there
# (https://github.com/lxml/lxml/commit/eba79343d0e7ad1ce40169f60460cdd4caa29eb3)
ElementStringResult = getattr(etree, '_ElementStringResult', None)
if xpath_matches(tree, xpath, namespaces):
match = tree.xpath(xpath, namespaces=namespaces)
if isinstance(match[0], etree._ElementStringResult):
if isinstance(match[0], etree._ElementUnicodeResult):
return True
elif isinstance(match[0], etree._ElementUnicodeResult):
elif ElementStringResult is not None and isinstance(match[0], ElementStringResult):
return True
return False

View File

@@ -0,0 +1,41 @@
# Copyright (c) 2023, Felix Fontein <felix@fontein.de>
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import re
from ansible.module_utils.six import binary_type, text_type
from ansible.module_utils.common._collections_compat import Mapping, Set
from ansible.module_utils.common.collections import is_sequence
from ansible.utils.unsafe_proxy import (
AnsibleUnsafe,
wrap_var as _make_unsafe,
)
_RE_TEMPLATE_CHARS = re.compile(u'[{}]')
_RE_TEMPLATE_CHARS_BYTES = re.compile(b'[{}]')
def make_unsafe(value):
if value is None or isinstance(value, AnsibleUnsafe):
return value
if isinstance(value, Mapping):
return dict((make_unsafe(key), make_unsafe(val)) for key, val in value.items())
elif isinstance(value, Set):
return set(make_unsafe(elt) for elt in value)
elif is_sequence(value):
return type(value)(make_unsafe(elt) for elt in value)
elif isinstance(value, binary_type):
if _RE_TEMPLATE_CHARS_BYTES.search(value):
value = _make_unsafe(value)
return value
elif isinstance(value, text_type):
if _RE_TEMPLATE_CHARS.search(value):
value = _make_unsafe(value)
return value
return value