* fix partial socket reads
* cap agent response size to 256 KiB
* fix wire format for zero-length binary_string, unicode_string and mpint
* separate key and comment in identities response per the protocol
* remove KeyList/PublicKeyMsgList in favor of inline parsing and Identity dataclass
* rename comments -> comment
* switch KeyAlgo to StrEnum
ci_complete
UnionTech OS (UOS) Server is RPM-based and built on top of openAnolis
or openEuler, but the existing 'Uos' branch in parse_distribution_file_Debian
classified all UOS variants (including the Server editions) as Debian.
UOS Server advertises PLATFORM_ID="platform:uel*" in /etc/os-release
on every released image (uel20 for the openEuler-based E version with
codename 'fuyu', uelc20 for the openAnolis-based A version with codename
'kongzi'). The Debian-based Desktop edition has no such PLATFORM_ID.
This change adds a dedicated parse_distribution_file_UnionTech that:
* matches /etc/os-release when PLATFORM_ID starts with platform:uel
* matches /etc/redhat-release when it contains 'UnionTech OS Server release'
or 'UOS Server release' (some A-version images symlink redhat-release
to uos-release)
* sets distribution to 'UnionTech', preserving the underlying base via
distribution_release ('kongzi' for A version, 'fuyu' for E version)
The Debian-based Desktop edition is unchanged: parse_distribution_file_Debian
returns early for the 'Uos' branch only when PLATFORM_ID="platform:uel*"
is present, so existing Desktop fixtures keep their os_family=Debian.
Signed-off-by: Kay Yan <kay.yan@daocloud.io>
* Defer patch target attribute failure until verified needed
* Fixes startup failure under Python 3.15.0b1 on dataclass ClassVar annotation patch (which appears to have been fixed).
* Adds explicit failure if the target attribute does not exist but `is_patch_needed` is True.
* Added surrogate test coverage for the new defensive error case.
* import boilerplate
* skip coverage on unused test impl
Co-authored-by: Matt Clay <matt@mystile.com>
---------
Co-authored-by: Matt Clay <matt@mystile.com>
* ansible-test - Replace Ubuntu 22.04 with 26.04
* Remove obsolete AppArmor work-around
* Fix connection_local integration test
Co-authored-by: Brian Coca <bcoca@users.noreply.github.com>
* Fix apt integration test
Co-authored-by: Brian Coca <bcoca@users.noreply.github.com>
* Skip apt_repository test on Ubuntu 26.04+
The module is deprecated, but it still tested on Ubuntu 24.04.
* Fix apt test
---------
Co-authored-by: Brian Coca <bcoca@users.noreply.github.com>
* According to `sources.list(5)` man pages, only four fields are mandatory
Types, URIs, Suites, Component.
Validate as per this requirement while adding new source in sources.list.
Fixes: #85715
Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
* also remove unused parameters from inner function
* Ensure no_log does not use subsets
Sort strings before using so the longer ones are processed first
avoiding strings that are subsets of each other creating partial
results.
Co-authored-by: David Shrewsbury <Shrews@users.noreply.github.com>
* winrm/psrp - apply no_log to stdout/stderr logs
This change censors the raw stdout/stderr logging used on the `winrm`
and `psrp` connection plugins with a verbosity level of 5 being set.
While by default the raw output isn't sensitive if a user has set a task
with `no_log: true` we shouldn't be displaying the raw results of that
task.
* Apply suggestions from code review
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
Co-authored-by: Jordan Borean <jborean93@gmail.com>
---------
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
* Add logic for toggleable local commit override
* Document tweaked git force logic
* Add tests for new commit-aware force
* Refactor switch_version
- duplicate code paths when handling 'HEAD'
- Fixed a FIXME
* Add changelog fragment
* Fix sanity and use fstrings
* Address 'diverged' case
* Revert to old structure
- Still contains new functionality
- Still contains FIXME
* Remove comments
* Update test/integration/targets/git/tasks/localmods.yml
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
* Move cleanup to always
---------
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
The git module hardcodes 'master' when comparing submodule versions
with track_submodules=yes. This fails for repositories that use a
different default branch (e.g. 'main').
Read the branch from .gitmodules for each submodule, falling back to
the remote HEAD if no branch is configured. This respects the
submodule's configured branch and works regardless of the default
branch name.
Fixes#77691
Signed-off-by: olegnazarov23 <olegnazarov23@users.noreply.github.com>
Co-authored-by: Abhijeet Kasurde <Akasurde@redhat.com>
* Add WORKER_SESSION_ISOLATION config for TTY sharing
* Worker should always be new PG leader
* Use non-deprecated os.setpgid for non-session-isolates case
* Validate session-isolated and not in signal_propagation integration test
* ansible-test - Remove Windows Server 2016 remote
* Drop Windows Server 2016 support from psrp connection plugin
* Remove test support for EOL Windows versions
* Tighten up win_script integration test
* Remove obsolete Windows version check from test
* Enhance winrm connection failure
- Add winrm_hostname to the failure message for clarity
- Test that we're able to reach this message with a custom action plugin
* Create changelog fragment
* Make action plugin less verbose
* Remove more comments (they were bad)
* Upgrade coverage for Python 3.10+.
* Fix unit tests.
* Use ctrace to improve performance. It's unclear why this improves performance on Python 3.10 and 3.14.
* Add VALIDATE state to IteratingStates and FailedStates instead of overloading cur_regular_task, which marks the --start-at-task location.
fixes#86268
* Fix skipping validate_argspec by not tagging with 'always' when inheriting play-level tags. Now it aligns with play-level gather_facts tag usage.