1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-06-16 04:47:30 +00:00
Commit graph

4400 commits

Author SHA1 Message Date
Alexei Znamensky
b2a8fbe9c7
filesystem: remove test setup for Ubuntu <16.04 (#12281)
* filesystem: remove test setup for Ubuntu <16.04

* more Ubuntu 16.04 refs

* and more old Ubuntu refs in tests

* and yet more truisms in tests conditionals
2026-06-15 05:45:52 +02:00
Felix Fontein
c760e9e0ff
filesystem tests: reorganize exceptions (#12277)
Reorganize exceptions for filesystem tests.
2026-06-14 21:39:27 +02:00
Alexei Znamensky
7dc2441fc8
xbps: include stdout and stderr in module output (#12234)
* fix(xbps): add stdout/stderr to module output and fix error message typo

Include stdout and stderr from the last executed command in all
exit_json and fail_json calls so users can see the actual xbps output
when debugging failures (addresses issue #2478).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(xbps): add basic unit tests using uthelper

Cover install (new, already present, failure) and remove (installed,
absent) scenarios. Verifies stdout/stderr are propagated in output.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* changelog: add fragment for PR 12234

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Add version_added.

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

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2026-06-14 21:05:09 +02:00
Felix Fontein
4775dfbcb2
filesystem: re-enable (and fix) most tests for Alpine (#12274)
Re-enable (and fix) most tests for Alpine.
2026-06-14 20:55:57 +02:00
Alexei Znamensky
33ae6c1018
filesystem: handle BusyBox blkid output when detecting existing filesystem (#12235)
* fix(filesystem): handle BusyBox blkid output when detecting existing filesystem

BusyBox blkid ignores util-linux -o/-s flags and outputs the full device
info line instead of just the filesystem type. Parse the TYPE= field from
the raw output when it does not look like a plain type name.

Fixes #7283

* changelog: add fragment for PR 12235
2026-06-14 20:31:50 +02:00
Felix Fontein
112050ee7a
Antsibull-nox: split up unit tests by Python version (#12200)
* antsibull-nox: split up unit tests by Python version.

* Adjust syntax for Python-version specific unit tests.

* Update Python version in ansible-test example.
2026-06-14 17:26:01 +02:00
Shreyash
b34ef22c82
add go module to manage Go packages via go install (#12152)
* add golang_package module to manage Go packages via go install

Adds a new module to install, update, and remove Go packages
using go install. Supports inline version pinning in package
names (e.g. pkg/tool/cmd with version suffix).

Assisted-by: Claude Opus 4.6
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix copyright year and BOTMETA alphabetical order

* fix environment keyword docs, add integration test aliases

- Use C(environment) instead of O(ignore:environment) for task keyword
- Add tests/integration/targets/golang_package/aliases for CI
- Fix setup.yml: handle Alpine/ArchLinux/FreeBSD package names, skip Go < 1.16
- Pin tests to x/tools v0.24.1 (only version compatible with Go 1.16-1.25)

Co-authored-by: Cursor <cursoragent@cursor.com>

* test signing trace

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-14 12:06:39 +02:00
Alexei Znamensky
f4339d8c0d
java_cert: detect silent keytool failures by verifying import outcome (#12238)
* fix(java_cert): detect silent keytool failures by verifying import outcome

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(java_cert): add integration tests for silent keytool failure detection

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* changelog: add fragment for PR 12238

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* dummy

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 08:18:31 +02:00
Felix Fontein
ebb813680e Exclude dnf_config_manager fixtures from trailing space check. 2026-06-14 07:30:49 +02:00
Maksym Hazevych
ff7f90fb4f
Fix dnf_config_manager incompatibility with DNF5 (#12206)
* Extract fixtures from dnf_config_manager tests

* Implement support for DNF5

* Format code
2026-06-14 07:04:06 +02:00
Felix Fontein
f1317d3039
Revert "filesystem module gfs2 support (#12218)" (#12262)
This reverts commit 9c0051e325.
2026-06-14 00:33:28 +02:00
Felix Fontein
ed8afeb16b
Re-enable most filesystem tests (#12258)
* Re-enable most filesystem tests.

* Fix conditionals (ansible-core 2.19).

* Fedora also needs gfs2-utils.

* fatresize seems to be broken on Ubuntu.

* Install util-linux-extra on Debian/Ubuntu.

* Fix conditionals.

* Temporarily disable bcachefs tests on Arch (and thus on all platforms).

* [TEMP] Generally disable gfs2 tests.
2026-06-14 00:20:48 +02:00
Felix Fontein
763ae7b1e1
Fix wrong typing import (#12252)
Fix typing import.
2026-06-13 19:53:20 +02:00
Felix Fontein
5be28987b5
CI: Homebrew: trust 3rd-party taps (#12253)
Trust 3rd-party taps.
2026-06-13 19:51:48 +02:00
Alexei Znamensky
6c2301db33
zypper_repository: fix enabled/autorefresh/gpgcheck being overridden by .repo file content (#12022)
* fix(zypper_repository): stop .repo file content overriding user-specified enabled/autorefresh/gpgcheck

When repo= pointed to a .repo file, values parsed from that file were
overwriting the desired state set from module params, causing enabled: false
to have no effect.

Fixes #8783

* changelog: add fragment for PR 12022

* fix(zypper_repository): preserve .repo file settings when parameters are not explicitly provided

When enabled/autorefresh/disable_gpg_check are not provided by the user,
fall back to values from the .repo file before applying hard defaults,
so that existing tasks relying on the .repo file content are not broken.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 17:11:22 +02:00
Alexei Znamensky
5004c9f70f
xml: preserve DOCTYPE declaration when writing XML files (#12148)
* fix(xml): preserve DOCTYPE declaration when writing XML files

Pass `doctype=tree.docinfo.doctype` to all `ElementTree.write()` calls
so lxml does not silently drop the DOCTYPE on serialization. Also replace
`etree.tostring()` with BytesIO+write() in the diff and xmlstring paths
for consistency.

Fixes #2762

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(xml): add integration test for DOCTYPE preservation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(changelog): add fragment for xml DOCTYPE fix (#12148)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 17:10:25 +02:00
Alexei Znamensky
b12c21f0ce
launchd: fix restarted and reloaded always reporting changed=False (#12122)
* fix(launchd): restarted and reloaded always report changed

Both actions unconditionally execute commands (unload/load/start),
so changed must always be True in non-check mode, regardless of
whether the PID or state happened to match before and after.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(changelog): add fragment for PR 12122

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(launchd): restarted and reloaded always report changed in check mode too

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* consolidate if branches

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 17:08:41 +02:00
Alexei Znamensky
3fa258f5a8
udm_dns_record: fix idempotency with shortened IPv6 addresses (#12149)
* fix(udm_dns_record): normalize IPv6 addresses before comparison

UCS stores IPv6 addresses in expanded form; providing a shortened address
causes obj.diff() to always detect a difference and report changed=True.
Normalize IPv6 values in the data dict to exploded form before updating
the Univention object.

Fixes #317

* changelog: add fragment for PR 12149

* add type hint
2026-06-13 17:07:40 +02:00
Alexei Znamensky
994b756026
java_cert: fix PKCS12 password not passed to keytool -list (#12151)
* fix(java_cert): remove -noprompt from keytool -list to allow stdin password

-noprompt is not a valid option for keytool -list (only for importkeystore/
importcert). On Java 8, passing it caused keytool to skip reading the store
password from stdin, resulting in a null password and NullPointerException.

Fixes #3023

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(java_cert): add idempotency test for pkcs12 import with password

Exercises _export_public_cert_from_pkcs12 when the alias already exists,
verifying the password is correctly read from stdin on the comparison path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* changelog: add fragment for PR 12151

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 17:06:45 +02:00
Alexei Znamensky
f677c2ab7d
counter_enabled callback: display output for looped tasks (#12067)
* fix(counter_enabled): display output for looped tasks with delegate_to

Implement v2_runner_item_on_ok, v2_runner_item_on_failed, and
v2_runner_item_on_skipped so that looped tasks (including those
using delegate_to: localhost) produce visible output.

Also extract _host_label, _display_result_ok, _display_result_failed,
and _display_result_skipped helpers to eliminate repeated delegation
and message-building logic across the callback methods.

Fixes #8187

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* changelog(counter_enabled): add fragment for PR #12067

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(counter_enabled): add integration tests, adjust _host_label

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(counter_enabled): migrate integration tests to callback test framework

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(counter_enabled): fix integration tests to use set_fact instead of debug

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 17:01:50 +02:00
Robert Sander
9c0051e325
filesystem module gfs2 support (#12218)
* adds GFS2 to filesystem module

* adds changelog fragment

* adds PR URL

* adds blank line

* removes RedHat, package not available

* renames file and removes license remark

* adds remark about adding gfs2 to 13.1.0

* corrects typo

* Update changelogs/fragments/12218-filesystem-gfs2.yaml

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

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2026-06-13 16:33:49 +02:00
Felix Fontein
b738e42e24
keycloak_realm_users_info: add missing doc fragment (#12236)
For some reason, the keycloak module defaults group doc fragment was missing.
2026-06-13 10:03:55 +02:00
Santosh Mahale
4cc0fbd3af
Add integration tests for filetree lookup exclude handling (#12205)
* Add unit tests for filetree lookup exclude handling

* Fix import order in filetree lookup unit tests

* Replace filetree unit tests with integration tests

* Fix lookup_filetree integration test setup directories

* Fix lookup_filetree integration test lookup term path

* Use remote_tmp_dir for lookup_filetree integration test files
2026-06-12 23:46:08 +12:00
Shreyash
4d72ec3299
xenserver_guest_info: use fallback chain for VDI format detection (#12215)
* xenserver_guest_info: use fallback chain for VDI format detection

* changelog: add PR URL to
  changelog fragment

* test: set mismatched vdi_type in vm-3 fixture to test fallback chain precedence

Set vdi_type to "vhd" while image-format remains "qcow2" so the unit
test verifies that image-format takes precedence in the fallback chain.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-12 23:07:13 +12:00
felix-grzelka
7b8ed586da
new module: keycloak_realm_users_info (#12105)
* init keycloak user info

* fix docs

* rename

* nox -Re formatters

* botmeta

* update runtime.yml

* fix line too long

* fix stupid

* mv keycloak_realm_users.py keycloak_realm_users_info.py

* add integration test

* fix integrationtest

* fix version_added

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

* fix eof

* use other file as template

* use keycloak_client_rolescope as basis

* refactor functions

* fix extends_documentation_fragment

* clean some things up

* improve diff?

* docstring

* revert to old logic

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2026-06-12 08:22:47 +02:00
felix-grzelka
27ed9cf919
keycloak_clientscope: idempotency for clientscope protocolmappers (#12103)
* delete_clientscope_protocolmapper

* add protocol_mappers_behavior

* add tests

* fix docstring

* use deepcopy to protect nested dicts

* fix test

* nox -Re formatters

* fix E713

* update version added

* fix typo

* use preferred lookup method

* Apply suggestions from code review

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

* improve option wording

* fix tests

* rm line

* fix typo

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2026-06-12 08:19:33 +02:00
Tiziano Müller
59e4e5f4fa
sudoers: add defaults attribute to allow specifying scoped defaults (#12186)
Assisted-by: multi-model agent

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2026-06-12 08:18:43 +02:00
Felix Fontein
53bde7f011
Add OpenSuSE Tumbleweed target to CI (#12222)
* Add OpenSuSE Tumbleweed target to CI.

* Adjust tests.
2026-06-11 23:08:37 +02:00
Felix Fontein
3774ca20d2
Revert "mark zypper tests (suse) as unsupported (#12154)" (#12164)
This reverts commit 2939d7fdd3.
2026-06-08 21:23:39 +02:00
Felix Fontein
f20f0d9cf9
iptables_state integration tests: improve skip conditions (#12209)
Improve skip conditions.
2026-06-08 21:23:26 +02:00
Alexei Znamensky
877f20f278
replace lingering ansible_xxx with ansible_facts.xxx (#12201) 2026-06-06 17:35:34 +12:00
Alexei Znamensky
10d77d934b
remove references to FreeBSD versions that are no longer used in CI (#12195) 2026-06-05 13:02:24 +02:00
Hirofumi Arimoto
213581bef8
fix: treat chdev execution failures as module errors in aix_devices (#12185)
* fix: treat chdev execution failures as module errors in aix_devices

##### SUMMARY
Fix the aix_devices module so that a failed chdev command is reported as a module failure instead of a successful result.

The previous implementation called fail_json incorrectly by returning success through the normal completion path when chdev returned a non-zero exit status. This could allow a playbook to continue even though the requested device attribute change was not applied.

This change replaces the success-style error handling with proper failure handling in the chdev execution path, making task results consistent with the actual command outcome.

##### ISSUE TYPE
- Bugfix Pull Request

##### COMPONENT NAME
aix_devices

##### ADDITIONAL INFORMATION
The affected code path is in change_device_attr() when the module executes chdev to apply attribute updates.

Before this change:
- chdev could fail
- the module could still report success
- later tasks could run against an unexpected system state

After this change:
- chdev failures are returned through fail_json
- the task stops with an error
- playbook behavior matches the real execution result

```paste below
Before:
module.exit_json(msg="Failed to run chdev.", rc=rc, err=err)

After:
module.fail_json(msg="Failed to run chdev.", rc=rc, err=err)
```

* Add changelog fragment for aix_devices chdev failure fix (#12185)

---------

Co-authored-by: Hirofumi Arimoto <harimoto@jp.ibm.com>
2026-06-05 13:02:06 +02:00
Felix Fontein
57ad07a94e
CI: Remove FreeBSD 14.2 (#12191)
Remove FreeBSD 14.2 from CI.

It seems to be finally EOL, with mirrors removed.
2026-06-05 08:17:45 +02:00
Sam Doran
4d66b3dae8
opkg - path_prefix needs to be a list (#12182)
* opkg - path_prefix needs to be a list

path_prefix is passed to get_bin_path() which expects opt_dirs to be a list
of paths. Passing in a string instead of a list of paths results in incorrect
values being adding to the path when searching for the command to run.

* Add changelog
2026-06-05 06:37:23 +02:00
Santosh Mahale
48db863096
filetree lookup: handle invalid exclude regex with AnsibleError (#12140)
* filetree lookup - handle invalid exclude regex with AnsibleError Wrap re.compile() for the exclude option so invalid regular expressions produce a clear AnsibleError instead of an uncaught re.error traceback.

* add changelog fragment

* add changelog fragment

* Fix changelog fragment line endings (LF)

Co-authored-by: Cursor <cursoragent@cursor.com>

* Used AnsibleLookupError instead of AnsibleError

* Update changelogs/fragments/12140-filetree-exclude-regex-error.yml

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

* Used AnsibleLookupError instead of AnsibleError

* Updated changelog format

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2026-06-04 06:19:10 +02:00
Simon Bouchard
f9d4f0ad6b
Fix incus Windows modules with ansible-core 2.21 (#12163)
* Fix incus Windows modules with ansible-core 2.21

* strip wrapper quotes for payload flags (-enc, -encodedcommand, -command, -c, -file, -f) before incus exec argv handoff, added changelogs

* Fixed some edge cases for powershell parsing

* Fixed changelogs

* Fixed pep8 format

* Added warning message when modifying direct commands

* Fixed changelogs fragement
2026-06-02 21:04:02 +02:00
amPrimeSign
7b01bcbadf
keycloak_realm - add `max_secondary_auth_failures` parameter to configure brute force detection for secondary authentication mechanisms. (#12087)
* minor_changes:
  - keycloak_realm - add ``max_secondary_auth_failures`` parameter to configure brute force detection for secondary authentication mechanisms.

* Update changelogs/fragments/12087-keycloak-realm-max-secondary-auth-failures.yml

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

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2026-06-02 18:27:11 +02:00
Yoann Gauthier-Colin
1e3da48d70
portage: include msg in depclean failure fail_json (#12168)
cleanup_packages() called module.fail_json(cmd=, rc=, stdout=, stderr=)
without the mandatory msg= argument. When the underlying emerge --depclean
exited non-zero, AnsibleModule.fail_json() itself crashed with
"AnsibleModule.fail_json() missing 1 required positional argument: 'msg'"
before the real failure could reach the controller, leaving users with no
diagnostic about why depclean actually failed.

Same wording style as the sibling install_packages() failure branch
("Packages not installed.").
2026-06-02 18:25:44 +02:00
Alexei Znamensky
b799c6f579
redfish_config: fix KeyError: 'ret' when SetManagerNic cannot find a matching NIC (#12124)
* fix(redfish_config): return proper error dict when manager NIC not found

get_manager_ethernet_uri() returned an empty dict {} when no matching NIC
was found, causing a KeyError on 'ret' in main(). Now returns a consistent
{"ret": False, "msg": ...} like all other error paths in the function.

Fixes #5892

* feat(changelog): add fragment for PR 12124
2026-06-02 18:25:26 +02:00
juremedvesek
97b464deb3
version_sort filter: fix example's description (#12167)
Fix description in example of community.general.version_sort filter

Example had some left overs, that were not aligned with code.
It was explaining conversion between tuples and dict. But example here maps list of strings to list of strings.
2026-06-02 18:22:05 +02:00
Felix Fontein
bb710480b1 Forgot to update schedules. 2026-06-01 20:26:58 +02:00
spike77453
cdd9c1ddde
test(integration): explicitly add executable to iso_extract on Fedora (#12162)
This provides a (temporary) workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2373874:
On Fedora 43+ 7zip is unable to find the 7z.so module when it is not in the
same path as the 7z binary or in /usr/bin/
2026-06-01 06:23:27 +02:00
Felix Fontein
7d8bf179e7
CI: improve nox GHA workflow (#12157)
* Auto-cancel older PR nox runs.

* Use shared workflow.
2026-05-31 15:41:35 +00:00
Alexei Znamensky
49ca175f01
htpasswd: fix hash_scheme aliases and Apache-compatible bcrypt (#12123)
* fix(htpasswd): support HtpasswdFile aliases and Apache-compatible bcrypt

CryptContext does not recognise HtpasswdFile alias names such as
portable, portable_apache_24, host_apache_24, causing a KeyError.
In addition, building a CryptContext for bcrypt produced $2b$ hashes
that Apache rejects (it only accepts $2y$/$2a$).

Use htpasswd_context for schemes it already supports, fall back to
htpasswd_context on KeyError for aliases, and import CryptContext
from module_utils/_crypt.py instead of passlib directly.

Fixes #6135

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(changelog): add fragment for PR 12123

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(_crypt): silence DeprecationWarning when importing stdlib crypt

On Python 3.11/3.12, `import crypt` emits a DeprecationWarning that
ansible-test sanity --test import treats as an error. Suppress it since
the import is an intentional fallback when passlib is not available.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(htpasswd): fix sanity ignores and bcrypt version constraint

- Revert _crypt.py DeprecationWarning suppression; add sanity ignore
  entries for htpasswd.py import-3.11/3.12 instead (mirrors existing
  entries for _crypt.py itself)
- Pin bcrypt<4.2 in integration tests: bcrypt 4.2 removed __about__
  which passlib 1.7.x uses, breaking passlib.apache import
- Fix regex_search assertion to use 'is not none' for a boolean result
- Add bcrypt version constraint note to module documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(htpasswd): handle system-installed bcrypt in integration tests

On Debian/Ubuntu, bcrypt may be installed by the system package manager
with no RECORD file, making pip downgrade impossible. Move bcrypt
installation into a self-contained block in test_schemes.yml with
ignore_errors, a functional passlib+bcrypt check, and always-cleanup.
Bcrypt tests are skipped when a compatible version cannot be used.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(htpasswd): extract obtain_crypt_context(); import CryptContext from passlib directly

Extract context selection logic into obtain_crypt_context(). Import
CryptContext inside the deps.declare("passlib") block instead of from
module_utils/_crypt.py — passlib is already a hard dependency and
other symbols are imported from it there. Remove now-unnecessary
htpasswd.py sanity import ignore entries.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 22:01:51 +12:00
Alexei Znamensky
2939d7fdd3
mark zypper tests (suse) as unsupported (#12154) 2026-05-31 21:01:08 +12:00
Alexei Znamensky
d46ce24abb
consul_kv: add empty_value option for null Consul values (#12120)
* feat(consul_kv): add empty_value option for null Consul values

Add the ``empty_value`` option to the ``consul_kv`` lookup plugin, allowing
users to control what is returned when a key exists in Consul but has a
null/empty value. Defaults to ``'None'`` to preserve existing behaviour.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(changelog): add fragment for PR 12120

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(consul_kv): make empty_value a choices option

Replace the free-form string empty_value with a choices option:
textual_none (default, legacy behaviour), python_none, empty_string.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(consul_kv): use dict form for empty_value choices

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 20:48:48 +12:00
Alexei Znamensky
6e6199ae3d
parted: ignore MBR partition type codes in flags on SUSE systems (#12121)
* parted: ignore MBR partition type codes reported as flags by SUSE parted

SUSE's patched parted reports MBR partition type codes (e.g., type=8e for
Linux LVM) in the machine-parseable flags output. The module was trying to
unset these pseudo-flags via 'parted set N type=8e off', which is not a
valid parted command, causing the task to fail when using flags: [lvm] on
msdos-labelled disks on SUSE systems.

Fixes #6292

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(changelog): add fragment for PR 12121

* Update changelogs/fragments/12121-parted-suse-msdos-type-code.yml

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

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2026-05-31 10:37:26 +12:00
Alexei Znamensky
5d62edc673
pamd: handle non-PAM lines in authselect profile files (#12137)
* fix(pamd): handle non-PAM lines in authselect profile files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(pamd): add test for authselect directive lines

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(changelog): add fragment for PR 12137

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 09:44:49 +12:00
Stefan Midjich
ef5b22d18e
unixy callback: fix KeyError when task is delegated to host without ansible_host set (#12113)
* fixes issue #12112

* adjust PR ID

* adjust PR ID, mistake was made

* adjust PR ID

* I messed up all these numbers

---------

Co-authored-by: Stefan Midjich <stefan@sydit.se>
2026-05-30 20:02:20 +02:00