Commit graph

4613 commits

Author SHA1 Message Date
Mohammed Saalim K
2f621c95fd
deb822_repository: validate name parameter instead of over-normalizing (#86494)
* deb822_repository: validate name parameter instead of over-normalizing

The deb822_repository module was silently mangling the name parameter by converting to lowercase, replacing underscores with hyphens, and removing other characters. This caused filename collisions where distinct repository names produced identical filenames.

This change validates that the name parameter contains only valid APT sources.list filename characters (a-zA-Z0-9_.-) and preserves the name as-is. Invalid characters now result in a clear error message.

Fixes: #86243

* fix: update install.yml test to use valid name without spaces

* deb822_repository: add backward compatibility for legacy filenames

Check if a file with the old normalized naming convention already exists before using the new naming. If a legacy file exists, reuse that slug to avoid creating duplicate files for the same repository.

This addresses feedback from #86343 to maintain backward compatibility.

* deb822_repository: adopt PR #86343 approach for backward compatibility

Based on maintainer feedback, removed strict validation that hard-failed on invalid characters. Instead:

- Convert spaces to hyphens (backward compatible with existing playbooks)

- Preserve case, underscores, and periods

- Check for legacy-normalized files and reuse them if they exist

This maintains backward compatibility while still avoiding over-normalization.

Addresses feedback from https://github.com/ansible/ansible/pull/86494#discussion_r1975816493

* Replicate PR #86343 structure and fix trailing whitespace

- Created name_handling.yml with exact tests from #86343

- Import name_handling.yml in main.yml

- Removed conflicting tests from test.yml

- Updated changelog to match #86343 format

- Fixed trailing whitespace on line 584 (pep8/pylint fix)

* Apply suggested change: inline name.replace() directly
2026-02-03 16:21:45 +01:00
Patrick Kingston
1e31c7c819
Fix ansible-galaxy collection metadata/file system location discrepancy (#86402)
* Fix discrepancy between ansible-galaxy and ansible runtime when identifying usable collections

When enumerating usable collections, ansible-galaxy validates the galaxy metadata in the MANIFEST.json/galaxy.yml matches the collection path.

When the metadata is incorrect ansible-galaxy emits a warning and falls back to using no metadata since it is not required for usable collections.

* ansible-galaxy collection verify now evaluates the collection that will be used at runtime, even if a collection inaccurately documents the same namespace and name earlier in the search path

* Add integration tests for ansible-galaxy collection verify, list, and install
2026-02-02 17:17:36 -05:00
Jordan Borean
20ce7d60bd
Align AddType debug info with DISPLAY_TRACEBACKS (#86506)
Changes the logic used by `Ansible.ModuleUtils.AddType` to only include
the debug information when `DISPLAY_TRACEBACKS` is set to `error` or
`always`. This aligns with the new logic that no longer uses the
verbosity level to include extra traceback information with higher
verbosities.
2026-02-03 04:26:05 +10:00
Jordan Borean
2c1fdfe0eb
Action make_tmp_path fix error (#86505)
Fixes the error to only include the command rather than the dataclass
repr. This goes back to how it worked in the past before `_mkdtemp2` was
added.
2026-02-03 04:25:21 +10:00
David Shrewsbury
90595736ed
Fix local connection interaction with become plugins (#86473)
The local connection plugin is incorrectly passing a bytearray to methods of become plugins that expect bytes. A recent change to the su plugin exposed this by breaking the become plugin for different locale settings (the bytearray was not properly converted to a str for comparison operations). This changes the local connection plugin to send bytes.
2026-02-02 09:02:53 -05:00
Patrick Kingston
29086acfa6
Fix git checkmode on invalid ref (#86348)
Fix the output of git checkmode when supplied with a nonexistent ref for the version parameter.
Uses git fetch --dry-run [ref] to check if the supplied ref actually exists.
2026-01-30 13:55:29 -05:00
Matt Clay
7f7884fc4f
ansible-test - Update spare-tire URL (#86477) 2026-01-29 09:53:58 -08:00
Matt Clay
c1ff53e21d
ansible-test - Remove obsolete remote auth (#86462) 2026-01-26 11:02:53 -08:00
Matt Clay
ade3d2c3ff
ansible-test - Update the Ansible Core CI endpoint (#86455) 2026-01-23 08:36:20 -08:00
Matt Clay
a816184a6f
ansible-test - Add integration test collection deps (#86437) 2026-01-21 09:40:35 -08:00
Dag Wieers
a0b3c7c0d6
Fix LIB env var incorrectly set to "System.Collections.DictionaryEntry" (#86436)
This is a fix for a common issue where Ansible is setting the LIB env var to the data type (System.Collections.DictionaryEntry) and not the actual value.

It unfortunately causes downstream issues if you run PowerShell scripts that are affected by the LIB variable not being a search path, but an incorrect string. It causes Add-Type to fail on even the simples call (like `Add-Type "using System;"`
2026-01-21 12:29:16 +10:00
net0pyr
6b5301eba7
Fix user module to not create /nonexistent on FreeBSD (#86415)
Fixes an issue where the user module would create the /nonexistent directory when modifying a user to add them to a group on FreeBSD. The /nonexistent path is a standard convention for system accounts on FreeBSD that should not exist physically on disk.

This commit adds a check in the FreeBsdUser.modify_user() method to skip home directory creation when the home path is /nonexistent.

Fixes #86368

Co-authored-by: zykov <zykov@biocad.ru>
2026-01-16 10:40:58 -08:00
Abhijeet Kasurde
a3782f0e7d
unarchive: make timezone aware timestamp (#85799)
* Consider the timezone offset while creating timestamp from `zipinfo -T`
  information. This information is required while comparing to mtime of the file
  on local filesystem (for idempotency purposes).

Fixes: #85779

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
2026-01-15 04:13:13 -08:00
Matt Clay
bf349232e2
Remove sleep 0 Linux kernel bug work-around (#86420)
The ``ActionBase._low_level_execute_command`` method no longer adds ``&& sleep 0`` to commands.
This was a work-around for a 10+ year old Linux kernel bug affecting OpenSSH.
By August of 2016 the fix had been included in kernel versions 4.1.26, 4.4.12, 4.5.6, 4.6.1 and 4.7.

Linux kernel bug report: https://lore.kernel.org/lkml/alpine.LNX.2.00.1512091358290.9574@fanir.tuyoix.net/
OpenSSH bug report: https://bugzilla.mindrot.org/show_bug.cgi?id=2492
2026-01-14 12:01:23 -08:00
Matt Clay
113e0bbb93
ansible-test - Expand unwanted pylint check (#86416)
Also remove redundant tests from the validate-modules sanity test.
2026-01-14 08:40:46 -08:00
Matt Clay
d37cec2ea8
Spelling and grammar fixes (#86417) 2026-01-13 11:34:56 -08:00
RealKelsar
869088b959
Fixes Parsing for ClearLinux exposed by Gentoo (#86384)
* Fixes Parsing for ClearLinux exposed by Gentoo changing os-release, Quoting from " to ', also fixes NA parsing to strip both kinds of quotes
2026-01-12 08:02:39 -08:00
Patrick Kingston
28927a70b4
Remove Install-Python-Debian from the output of deb822_repository (#86403)
Fixes: #86395
2026-01-09 19:14:17 -08:00
Sloane Hertel
f2357cdc53
Fix module_defaults templating for gather_facts, service, and package actions (#85857)
* Ensure action plugins template module arguments from module_defaults as necessary
2026-01-09 14:14:26 -05:00
Matt Clay
3661f34811
ansible-test - Optimize RHEL DNF configuration (#86396) 2026-01-09 08:35:48 -08:00
Felix Fontein
612d54fc6f
Fix argument spec for v1 source info schema validation (#86320)
* Fix argument spec for v1 source info schema validation.

* Add changelog fragment.

* Add basic tests for _validate_v1_source_info_schema.
2026-01-09 14:20:54 +00:00
Matt Clay
63fdb2079c
ansible-test - Replace Fedora 42 with 43 (#86220)
* ansible-test - Replace Fedora 42 with 43

* Temporarily skip the rpm_key test on Fedora 43

* Stop testing podman as root on Fedora 43
2026-01-07 18:36:04 -08:00
Matt Clay
3df8aeed80
ansible-test - Replace RHEL 10.0 with 10.1 (#86387) 2026-01-07 15:20:37 -08:00
Matt Clay
69afa45880
ansible-test - Replace FreeBSD 13.5 with 15.0 (#86385)
* ansible-test - Replace FreeBSD 13.5 with 15.0

* Update Kerberos hack for FreeBSD 15
2026-01-07 13:45:42 -08:00
Matt Clay
5446d7333b
ansible-test - Replace Alpine 3.22 with 3.23 (#86386) 2026-01-07 13:44:58 -08:00
Sam Doran
d16aaec92d
ansible-galaxy - Change error to warning when no paths exist (#86341)
* ansible-galaxy - Change error to warning when no paths exist

When listing collections, a warning is much more appropriate than an error
for missing paths.
2026-01-07 11:24:30 -05:00
Felix Fontein
2cedaa24b6
default callback: make YAML line width configurable (#85498)
* Make YAML line width configurable.

Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
2026-01-07 12:55:26 +00:00
Will Schlitzer
7665917d51
Change 'blacklist' to 'denylist' in lib/utils/display.py (#86304)
Co-authored-by: Abhijeet Kasurde <Akasurde@redhat.com>
2026-01-07 00:21:44 +00:00
Abhijeet Kasurde
cc9e71f411
callback: filter _ansible_ in debug message (#84594)
* Drop _ansible_ keys from debug message

Fixes: #69731

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2026-01-06 16:06:10 -08:00
Matt Clay
52cd605887
ansible-test - Fix expat on Fedora 42 remotes (#86375) 2026-01-05 13:22:37 -08:00
Matt Clay
6c024e24b4
ansible-test - Upgrade to RHEL 9.7 (#86374) 2026-01-05 12:59:33 -08:00
sivel / Matt Martz
85d20838ce
state=latest now installs modules when missing. Fixes #73457 (#86328) 2025-12-15 12:08:59 -06:00
Sloane Hertel
f924902830
adhoc, ansible-console - fix traceback for meta end_play tasks (#86294)
Ensure all entrypoints using TaskQueueManager catch AnsibleEndPlay
2025-12-15 11:33:18 -05:00
Yuxiao Zeng
17fb4af38d
copy - fix reporting changed=True when a single-file dir is copied with remote_src=False (#85834)
* Fix directory path construction in the action plugin

Fixes #85833
2025-12-15 10:53:35 -05:00
Abhijeet Kasurde
9f42cefca6
dnf: Return error message from RPM installation (#86123)
* When RPM scriptlet fails, return those error messages
  for further debugging.

Fixes: #86117
2025-12-12 06:38:47 -08:00
Abhijeet Kasurde
6c0bb0837c
filter: Use datetime.strftime instead of time.strftime (#86261)
* Use datetime.strftime instead of time.strftime which
  supports more directives.

Fixes: #86260

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
2025-12-11 11:01:00 -08:00
Jordan Borean
595b4f0390
winrm - Add better Kerberos error (#86317)
* winrm - Add better Kerberos error

Adds a better error when Kerberos authentication is requested but the
`pykerberos` library is not installed. This also removes the fallback to
basic auth if the username is in the UPN format and no transport/auth
method is specified. This is because a UPN user must be a domain account
and domain accounts cannot be used with basic auth.

* Add more docs about user settings

* Fix some grammar issues
2025-12-11 11:43:33 +10:00
FestplattenSchnitzel
e25cc345fe
deb822_repository: add include, exclude parameters (#86171) 2025-12-05 12:21:09 -05:00
Brian Coca
ca6dc93dcc
ansible_local should not trigger deprecation (#86234)
* ansible_local should not trigger deprecation

fixes #86228
2025-12-05 11:35:27 -05:00
sivel / Matt Martz
8a4b184620
fix package installation when specifying architecture without version. Fixes #86156 (#86219) 2025-12-04 11:14:29 -06:00
Martin Krizek
7b4d4ed672
ssh connection: fix sshpass pipe fd leaks (#86141)
When using sshpass the file descriptors leaks would happen in the reset
method that used _build_command that creates the pipe but the command
would not go through _bare_run which closes the pipe.

Another scenario would be _bare_run failing and not all code path would
properly close the pipe.

This patch fixes the issues by:
* move creating the pipe from _build_command closer to where it is used
  in _bare_run
* wrap _bare_run with closing the pipe in case of a failure
* no need to re-create pipe in the retry code
* unrelated but simplify the reset method
2025-12-03 12:48:19 +01:00
Brian Coca
335db20951
vars loading, show file name instead of vars in error (#86277)
* Show file instead of vars on load error

(cherry picked from commit 490795770f34120adc02b08fc24fc50be6ac68a2)
(cherry picked from commit 11a2d02bf2)

* merged

* Update lib/ansible/vars/manager.py

Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>

---------

Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
2025-12-02 15:32:24 -06:00
Abhijeet Kasurde
17f3698384
copy: honor directory_mode when specified with remote_src=True (#86184)
* copy: honor directory_mode when specified with remote_src=True

* Honor directory_mode specified by user when copying directories
  and remote_src=True

Fixes: #81292

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
2025-11-25 10:14:05 -05:00
sivel / Matt Martz
6bb7bd760f
Fix escaping issue in ansiballz wrapper for sitecustomize (#86236)
* Fix escaping issue in ansiballz wrapper for sitecustomize

* add clog frag
2025-11-24 09:33:45 -08:00
sivel / Matt Martz
bff3a9aeb9
Fix docker hostname parsing in ansible-test (#86235)
* Fix docker hostname parsing in ansible-test

* add clog frag
2025-11-20 15:54:33 -08:00
Thomas Sjögren
6d428ca8f0
replace random with secrets when generating passwords (#85971)
---------

Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-11-20 12:32:32 -05:00
Matt Clay
ce84d3157d
Fix first_found example (#86224) 2025-11-19 10:16:45 -08:00
Sloane Hertel
7ebc9fa5d6
Support configuring callback plugins with --extra-vars (#84661)
* Support configuring callback plugins with --extra-vars

Callback plugins define variable names in the documentation for ConfigManager

Variable values can be omitted

* Added default callback variable configuration for display_skipped_hosts

Fixes #84469

Co-authored-by: Matt Clay <matt@mystile.com>
2025-11-18 20:04:22 -05:00
Abhijeet Kasurde
af9009b00d
get_url: Fix regex for GNU digest line (#86134)
* GNU digest line may contain multiple spaces between
  checksum and filename. Fix regex to handle this situation.

Fixes: #86132

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
2025-11-17 15:29:43 -08:00
Vinayak Bhatia
e2ae13cf38
getent: Handle non-empty split string (#85728)
Signed-off-by: Vinayak Bhatia <ntpjc2vinayak@gmail.com>
Co-authored-by: Abhijeet Kasurde <Akasurde@redhat.com>
2025-11-17 15:27:24 -08:00