1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-06-18 05:43:10 +00:00
Commit graph

1714 commits

Author SHA1 Message Date
Robert Sander
57739cbbd9
adds GFS2 support (#12285)
* adds GFS support

* changes PR id
2026-06-15 17:43:36 +02:00
Maksym Hazevych
07df65f293
Unhardcode dnf_config_manager DNF bin path (#12219)
Unhardcode the binary path to dnf in dnf_config_manager
2026-06-15 05:46:48 +02:00
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
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
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
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
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
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
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
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
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
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
Shreyash
9208cbfd43
xenserver_guest_info: add VDI uuid and vdi_type to disk info (#12119)
* xenserver_guest_info: add VDI uuid and vdi_type to disk info

  Add uuid and vdi_type (VHD/QCOW2) fields to the disk information
  returned by xenserver_guest_info module.

  Fixes #11998

* changelog: add PR URL to changelog fragment

* xenserver_guest_info: add uuid and vdi_type to RETURN example output
2026-05-30 19:43:30 +02:00
Alexei Znamensky
d749cf7c85
pkgng: remove constraints for FreeBSD 12.x from pkgng test (#12138) 2026-05-31 01:37:42 +12:00
Shreyashxredhat
a794ccf127
zpool: reduce disk usage in integration tests by using sparse files (#12128)
* zpool: use sparse files in integration tests to reduce diskspace usage

* changelog: add PR link to zpool disk space fragment

* remove changelog fragment for test-only change
2026-05-30 14:39:04 +02:00
ONODERA Masaru
e41e76fdf5
new module: gitlab_project_approvals configures GitLab project approval rules (#12096)
* Add gitlab_project_approvals module

* Update BOTMETA info

* Add lisence info to tests
2026-05-30 13:55:15 +02:00
Raphaël Droz
8468fea3b0
composer: config file hash to evaluate whether a change occurred (#12084)
* composer: Use config file hash to evaluate whether a change occurred (instead of unreliable output). Ensure `--working-dir` option consistently comes first (sudo-friendly)

* Update plugins/modules/composer.py

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

* whitespace fixes + changelog fragment

* Update changelogs/fragments/composer-working-dir-and-config-sha256.yaml

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

* Update changelogs/fragments/composer-working-dir-and-config-sha256.yaml

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

* Update plugins/modules/composer.py

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

* fragment

* ruff format  plugins/modules/composer.py

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2026-05-30 13:47:09 +02:00
felix-grzelka
20a07fc973
new module: keycloak_clientscope_rolemappings (#11841)
* init

* stuff

* this should work

* helper functions

* fix docstrings

* s/client scope/clientscope/

* fix docstrings

* add type hints

* fix old function

* nox -Re formatters

* fix clientscope_id

* fix blank line contains whitespace

* add BOTMETA info

* set version_added

* Apply suggestions from code review to prepare for 13.0.0

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

* fix yaml indent in doc string

* add keycloak_clientscope_rolemappings to keycloak action group

* original author credit

* Apply suggestions from code review

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

* init tests

* Update plugins/modules/keycloak_clientscope_rolemappings.py

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

* fix integration tests

* use [] instead of .get()

* fix typo

* Update plugins/modules/keycloak_clientscope_rolemappings.py

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

* update fedora version

* fix --docker fedora

* revert

* Apply suggestions from code review

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

* remove unnecessary docstring

* change something

* change it back

* Apply suggestions from code review

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

* Update plugins/modules/keycloak_clientscope_rolemappings.py

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

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2026-05-30 13:45:37 +02:00
felix-grzelka
2d89fb1c15
keycloak_user: fix email_verified is not idempotent (#11749)
* fix: email_verified is not idempotent

* autopep8

* fix import-before-documentation

* address reviewer comments

* rever formatting

* revert more stuff

* fix whitespace

* clean up

* fix diff mode

* nox -Re formatters

* Update plugins/modules/keycloak_user.py

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

* add deprecation warning

* keycloak_default_behavior

* Apply suggestions from code review

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

* Update plugins/modules/keycloak_user.py

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

* fix is_struct_included

* ignore keycloak_default_behavior and fix is_struct_included

* fix diff for groups

* fix changed flag in check mode

* nox -Re formatters

* fix group diff

* nox -Re formatters

* fix comment logic

* add todos

* fix user_profile_metadata in diff

* refactor diff

* rm default for required_actions

* update required_actions docstring

* fix before_user group handling

* nox -Re formatters

* fix yaml indent in doc strings

* use f-strings

* fix tests

* fix test_add_new_user

* rename keycloak_default_behavior to email_verified_behavior

* fix stupid

* nox -Re formatters

* remove typing from docstring

* remove user_profile_metadata parameter

* Update plugins/module_utils/_keycloak.py

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

* improve docs

* precompute ignored_arguments list

* nox -Re formatters

* simplify diff logic

* add more tests

* nox -Re formatters

* fix docs

* clean up more

* fix endstate when user does not change

* finalize integrationtest

* fail if group is not found

* fix tests

* nox -Re formatters

* fix docstring

* add integration tests for required_actions

* fix diff logic and fail early

* nox -Re formatters

* fix boolean logic error

* Apply suggestions from code review

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

* Apply suggestions from code review

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

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2026-05-30 13:44:08 +02:00
munchtoast
d4031f36e4
kopia: Add kopia_repository module (#11752)
* Add kopia module util

* fix pipeline suggestions

* add kopia repository module

* apply code review changes

* remove kopia_runner instance unit test

* update botmeta with kopia

* refactor docs and redundant state

* add kopia_info module and fix kopia_repository check mode support

- Add kopia_info module for read-only repository information gathering
  (kopia repository status, kopia repository throttle get) following
  the pacemaker_info pattern with ModuleHelper and info_module fragment
- Add _fmt_throttle to _kopia.py and register throttle format in
  kopia_runner; remove throttle_operation get option from
  kopia_repository per Ansible best practices (info ops belong in
  _info modules)
- Add throttle suboption dict to kopia_repository with all seven
  kopia repository throttle set flags
- Fix check_mode: support from full to actually full by implementing
  _predict_value() in kopia_repository; previously check_mode_skip
  caused changed to always be false in check mode
- Add check mode test cases to test_kopia_repository.yaml covering
  created and disconnected states for both connected and disconnected
  initial conditions
- Add BOTMETA.yml entry and full test fixture for kopia_info

* apply code review suggestions
2026-05-30 13:38:30 +02:00
Maxim Bakurevych
580e8ad3f9
slack: support file upload (#12032)
* slack: add support for file uploads and threading

* slack: add support for file uploads and threading

* docs: rename fragment to match PR #12032

* Fix validate-modules issues and update documentation for files support

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* chore: fix nox sanity issues

* style: add author copyright

* style: fix examples

* build: trigger CI due to infrastructure timeout

* Update plugins/modules/slack.py

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

* doc: address reviewer feedback on changelog and token placeholder

* doc: address reviewer feedback on changelog and token placeholder

* fix: address maintainer feedback

* fix: pipeline status, rm continue

* fix: fix unit tests

* fix: linter fix

* fix: fix comments

* Update plugins/modules/slack.py

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

* Update plugins/modules/slack.py

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

* docs: remove outdated comment about failing logic

* Update plugins/modules/slack.py

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

* Update plugins/modules/slack.py

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

* fix: handle missing files via fail_on_file_error

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* fix: adjust options syntax and formatting

---------

Co-authored-by: Максим Бакуревич <maksimbakurevic@MacBook-Air-Maksim.local>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2026-05-30 13:37:04 +02:00
spike77453
8faf8c3838
Add from_toml filter (#12081) (#12081)
* Add `from_toml` filter (#12081)

* Use tasks/main.yml instead of runme.sh for integration tests

* Renamed filter back to to_toml.py, moved from_toml filter to its own file making use of python's native tomllib

* Remove task to install tomlkit library as it's no longer required for the from_toml filter

* Replace deprecated t.Mapping with collections.abc.Mapping (https://docs.python.org/3/library/typing.html#typing.Mapping)

* Type is not determined when function is called. Let isinstance check ensure value has string type.
2026-05-30 13:36:38 +02:00
Alexei Znamensky
850ef03fe7
snap: enforce hold when installing at a specific revision (#12097)
* snap: enforce hold when installing at a specific revision

When `revision` is specified, run `snap refresh --hold` after install/refresh
to actually pin the snap and prevent automatic updates from overriding it.
Detects hold-mismatch idempotently via the Notes column of `snap list`.

Fixes #12088

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

* feat(changelog): add fragment for snap hold fix (#12097)

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

* test(snap): remove incorrect manual-refresh assertion from hold test

snap refresh --hold only blocks the snapd auto-refresh daemon; a manual
snap refresh bypasses the hold. Remove the block that ran snap refresh
manually and asserted the revision was unchanged.

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

* snap: add bare-refresh hold test and docs warning for manual refresh bypass

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

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 15:34:48 +02:00
Felix Fontein
1bf5e6e69a
iptables_state: clean up code (#12093)
* Get rid of unnecessary dummy variables.

* wrap_async isn't defined if the if condition isn't true.

* _back is in module_args if and only if both starter_cmd and confirm_cmd are not None.

* Add changelog.
2026-05-25 14:58:55 +02:00
Alexei Znamensky
b1c7700a1b
multiple: mark integration tests that run pip install as destructive (#12095)
test(integration): mark pip-installing tests as destructive

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 20:59:39 +12:00
Asif Draxi
fdace38501
nmcli: fix check/diff for bond arp_interval and arp_ip_target (#11588) (#12085)
* nmcli: bond ARP options stop lying in check/diff (#11588)

Align arp_interval/arp_ip_target keys with bond.options parsing, route
ARP settings via +bond.options, and fix bond MTU false positives.

* Changelog: nmcli fragment gets PR links and clearer diff wording

Address reviewer feedback on #12085 — both entries now cite the PR URL
and the MTU entry says "incorrectly reports diff" instead of "false positives".

---------

Co-authored-by: Asif Draxi <asif.draxi@blackline.com>
2026-05-23 13:35:40 +02:00
Felix Fontein
e6ca0df592
Fix typing (#12078)
Fix typing.

ansible-core 2.21.0 is out and has more type definitions.
2026-05-19 07:03:38 +02:00
spike77453
f68e65a373
test(integration): add to_ini filter plugin test for no_extra_spaces parameter (#12077) 2026-05-18 19:38:04 +02:00
Felix Fontein
ea02e6a5a9
onepassword* lookups: drop support for op v1 (#12061)
Drop support for op v1.
2026-05-18 05:12:14 +02:00