Commit Graph

6237 Commits (065f202d3021ed0a61dbb34be9bce2bc767dba10)

Author SHA1 Message Date
Martin Krizek 065f202d30
Remove (de)serialize methods (#85724)
* move task specific from_attrs to Task
* Keep deserialize on PC, add tests
3 months ago
Patrick Kingston 36f00cdf1a
Expand integration test coverage for `deb822_repository` module
PR #85586
3 months ago
Abhijeet Kasurde a805356358
include_vars: Code cleanup and integration tests (#85292)
* Updated docs
* Removed stale code
* Added integration tests for better coverage

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
3 months ago
Jordan Borean 3582997698
Remove deprecated vars plugin fallback (#85809)
* Remove deprecated vars plugin fallback

Removes the vars plugin `get_host_vars` and `get_group_vars` fallback
which was deprecated.

* Remove integration tests for removed feature
3 months ago
Felix Fontein 4209d714db
validate-modules and return fragments: fix bug in markup check, fix bug in missing doc fragment check, add tests (#85638)
* Prevent crashing on invalid structure.

* Also process return doc fragments.

* Fix handling of missing doc fragments.
3 months ago
Felix Fontein 4c27ccf8f4
default callback: allow to configure indentation (#85497)
* Comment on PyYAML's behavior if indentation is set to 1, or to 10+.
3 months ago
Sloane Hertel 0ed37ca899
setup - add logical volume facts scoped by volume group (#85705)
Add an 'lvs' key to each value in ansible_facts['vgs'] to support extracting all logical volume facts.

Add note to consider deprecating ansible_facts['lvs'] in a future release since it is misleading if any volume groups have identical logical volume names.

Fixes #85632
3 months ago
Abhijeet Kasurde 7b1644e0b3
dnf: Check if installroot is directory or not (#85748)
* dnf: Check if installroot is directory or not

* dnf library creates installroot if it is missing.
  check if installroot is directory or not.

Fixes: #85680

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
3 months ago
Martin Krizek 6976e13075
ternary: evaluate values lazily (#85752)
Fixes #85743
3 months ago
Martin Krizek 3ec07418aa
ansible-doc: remove displaying role attributes (#85725) 3 months ago
Brian Coca 534b8c225a
vars deprecation (#85673)
internal 'vars' dict cache has not been used for long time, but kept since we could not deprecate and some users had found it
3 months ago
Brian Coca 931c923e0e
Deprecate defaulting to inject (#85323)
INJECT_FACTS_AS_VARS config deprecate default of true
3 months ago
Brian Coca 75ad1f8d6a
tags warn wwhen using reserved tags (#85631) 3 months ago
Martin Krizek c5ddc93767
Expose ansible_failed_task in rescue for explicit flush_handlers (#85687)
Fixes #85682
4 months ago
Abhijeet Kasurde 603dd2d793
test: Remove redundant Python 3 condition (#85664)
Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
4 months ago
Ketan Kelkar 18289c403d
Blockinfile - Add new module option - 'encoding' (#85291)
Signed-off-by: Ketan Kelkar <ktnklkr@gmail.com>
Signed-off-by: Yogesh Rana <Yogesh.Rana@ibm.com>
Co-authored-by: Yogesh Rana <Yogesh.Rana@ibm.com>
Co-authored-by: Yogesh Rana <36674300+yrana17@users.noreply.github.com>
Co-authored-by: Matt Martz <matt@sivel.net>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
4 months ago
Matt Davis e3c9908679
Backward-compatible None handling in template concat and argspec str (#85652)
* templating coerces None to empty string on multi-node result

* avoid simple cases of embedded `None` in multi-node string concatenated template results ala <=2.18
* single-node template results preserve NoneType

* add None->empty str equivalency to argspec validation

* fix integration tests
* remove conversion error message check from apt_repository test
* remove error message check on `None` value for required str argspec in roles_arg_spec test (now logically-equivalent to empty string)

* explanatory comment for None->empty str coalesce
4 months ago
Ketan Kelkar 4cb5fe44b6
Lineinfile - Add new module option - 'encoding' (#84999)
Signed-off-by: Ketan Kelkar <ktnklkr@gmail.com>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
Co-authored-by: Matt Martz <matt@sivel.net>
4 months ago
Abhijeet Kasurde 90f62f3fdf
regex: validate input before processing (#85629)
* Validated user input for match_type before processing
* added new match_type 'fullmatch'

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
4 months ago
Martin Krizek 0cc771dc3c
six cleanup (#85284)
Co-authored-by: Matt Clay <matt@mystile.com>
4 months ago
Felix Fontein 45d62a726c
ansible-doc: show 'notes', 'seealso', and top-level 'version_added' for role entrypoints (#81796)
* Show 'notes', 'seealso', 'requirements', and top-level 'version_added' for role entrypoints.

Co-authored-by: Matt Clay <matt@mystile.com>
4 months ago
Sloane Hertel 15e9f51e2d
Task.resolved_action - fix resolving static actions consistently for callback plugins (#85524)
* Resolve static actions when the FQCN is already known or demanded by a callback plugin

shorthand syntax (e.g. "- ping:") is resolved by ModuleArgsParser

action/local_action syntax (e.g. "- action: ping") is resolved on demand

* Emit a warning if a callback plugin accesses the property when it's None. This is expected if action/local_action is a template and a callback plugin uses this value too early (like in v2_playbook_on_task_start) or late (like in v2_runner_on_ok for a task with a loop).
4 months ago
Sloane Hertel 9a6420e1d5
Fix nested import_tasks when the parent import contains a template (#85599)
* Test nested import_tasks when the parent import contains a template

* Fix templating the parent_include.args
4 months ago
Martin Krizek 4c04b8c7c3
IncludedFile: store _from args for proper deduplication (#85628)
* IncludedFile: store _from args for proper deduplication

Fixes #66497

Co-authored-by: Matt Martz <matt@sivel.net>
4 months ago
Brian Coca ca5871f256
add fragments to return (#72635)
* ansible-doc add ability to use doc_fragments for RETURN


---------

Co-authored-by: Felix Fontein <felix@fontein.de>
4 months ago
Sloane Hertel 945516c209
ansible-galaxy - remove internal path when using AnsibleCollectionConfig.collection_paths (#85596)
* remove internal collections earlier to ignore consistently for different sub-commands

* remove internal collection handling from the dependency resolver

* add a test to ensure ansible._protomatter is not in the output of ansible-galaxy collection list

* fix existing test to ensure an error is given if no valid collection path is configured

* changelog
4 months ago
Patrick Kingston 817f0af239
pip - fix reporting changed for empty venv creation (#85556)
* Add correct empty venv creation handling

Makes the module exit with changed=True
when an empty venv is created with correct
module output

* Add tests for creating an empty venv
4 months ago
Martin Krizek c0256d6edf
dnf/dnf5: address issues discovered in 2.16 yum tests (#83659)
Fixes #85554
4 months ago
Matt Clay 8aad1418f6
Ignore failing unarchive test on FreeBSD (#85601) 4 months ago
Brian Coca 29a298a617
test fix to avoid permissions issue (#85598) 4 months ago
Matt Martz f51e626c32
Move the shell target to group4 controller (#85594)
* Move the shell target to group4 controller

* rename shell target to shell-plugins
4 months ago
Brian Coca 5faa256178
ansible-galaxy, dont display internals (#85571)
Also note broken test for invalid collection paths

Co-authored-by: Sloane Hertel <19572925+s-hertel@users.noreply.github.com>
4 months ago
Abhijeet Kasurde e62cfa2c02
test: correct variable in debug (#85529)
Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
4 months ago
Matt Clay 58c9f48029
ansible-test - Replace FreeBSD 14.2 with 14.3 (#85561)
* ansible-test - Replace FreeBSD 14.2 with 14.3

* Fix CA bundle search priority
4 months ago
Abhijeet Kasurde 181dbdbf27
filter: update integration tests (#84990)
Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
4 months ago
Brian Coca 19f9c66004
plugin config options are now correctly fetched with origin (#85488)
* also update callbcacks, since they override these functions
due to backwards compat _options being taken for CLI
4 months ago
Matt Davis 2fbd7c114e
Rewrite exception key on failed_when: false (#85516)
* Prevents callback handle_exception from displaying the captured exception when the task is not failed.
* Added tests.

Co-authored-by: Matt Clay <matt@mystile.com>
4 months ago
Patrick Kingston 737c68ace3
Add install_python_debian parameter to deb822_repository (#85487)
* Add python3-debian dependency installation in module

* Add tests to exercise automatic dependency installation

* Fix broken tests to include new module parameter

Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
4 months ago
Jordan Borean 3882366585
Add AnsiballZ debugging support with debugpy (#85476)
* Add AnsiballZ debugging support with debugpy

Adds support for debugging AnsiballZ modules with debugpy which is used
by VSCode as its Python debugger DAP. Debugging can either be done
through a manual Debugpy listening server through a launch.json
configuration or through the new ansible-test --dev-debug-on-deman
argument.

* Fix up integration test

* Simplify config option and move mypy ignore

* Use new API if available and fix typo

* Guard the import of debugpy

* Fix sanity import issue

* Minor cosmetic adjustments

* Simplify debugger setup

* ansible-test - Refactor debugging interface

* Add ansible-test debug integration tests

* Fix ansible-test shell when in unsupported dir

---------

Co-authored-by: Matt Clay <matt@mystile.com>
5 months ago
Sloane Hertel da6735160d
Fix passing callbacks the delegated connection, host, port, and user (#85397)
Fix ssh plugin host variables. Variable names should conform to Python variable naming rules.
, and not contain characters like "[" or "]".

Update unit test
5 months ago
Patrick Kingston a032f96222
Expand expect module test suite (#85422)
* Test expect module for missing pexpect

* Test expect module for incorrect timeout type

* Test expect module for out of date pexpect failures

* Test pexpect.ExceptionPexpect

Also fixed task naming to be inline with the rest of the file.

* Change pexpect management to venv

* Normalize b_out to b'' when falsy for consistent handling

* Move test venv from /tmp/ to output_dir

* Update tests according to corrections

* Remove break_system_packages when installing pexpect 3.3

* Remove unnecessary if statement

pexpect.run(...) shouldn't ever return None, so it's safe
to remove the check entirely. Maintains 100% coverage
5 months ago
Abhijeet Kasurde e162eda1e6
apt: Mark dependencies as auto (#85170)
* Mark dependent packages as auto which are installed as part of
  deb file installation

Fixes: #78123

Co-authored-by: Matt Clay <matt@mystile.com>
Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
5 months ago
Thomas Sjögren 205ca648bf
ansible-doc: print where the description is missing (#85320)
* ansible-doc: print where the description is missing

Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
Co-authored-by: Sloane Hertel <19572925+s-hertel@users.noreply.github.com>
5 months ago
Xiao Wenyang a4e3575077
stat module, add option to return SELinux Context
Added get_selinux_context option
5 months ago
Matt Clay 6ff6339191
Ensure config env/ini values are tagged (#85404)
* Ensure config env/ini values are tagged

Config env and ini values now have origin and trust tags applied.

* Remove unused import
5 months ago
Martin Krizek 54ccad9e46
Limit askpass prompts to single attempt (#85364)
* Limit askpass prompts to single attempt

OpenSSH client option NumberOfPasswordPrompts defaults to 3 so in case
an incorrect connection password is provided it is excessively tried 3
times. Not only that but running the `_ssh_askpass` entry point multiple
times (via ssh) results in `json.decoder.JSONDecodeError` as after the
first run the shared memory is zero'd and the subsequent runs end up
calling `json.loads` on empty data.

`json.decoder.JSONDecodeError` does not happen prior to Python 3.13 as
the share memory is unlinked automatically on `.close()` and the
`_ssh_askpass` entry point exits with return code 1 before attempting to
load zero'd memory.

Fixes #85359

* changelog and tests

* Update changelogs/fragments/85359-askpass-incorrect-password-retries.yml

Co-authored-by: Matt Davis <6775756+nitzmahone@users.noreply.github.com>

* Update lib/ansible/cli/_ssh_askpass.py

Co-authored-by: Martin Krizek <martin.krizek@gmail.com>

* Avoid race condition in second unlink

---------

Co-authored-by: Matt Davis <6775756+nitzmahone@users.noreply.github.com>
Co-authored-by: Matt Clay <matt@mystile.com>
5 months ago
Matt Davis 73369f53af
Remove redundant vars FA on PlaybookInclude (#85395)
* The redundant FA declaration was not static, which broke a number of automatic validation behaviors.
* Added tests to assert deferred validation and lack of templating on `import_playbook.vars`.

Co-authored-by: Matt Clay <matt@mystile.com>
5 months ago
Matt Davis 29cdba1fee
unified Marker propagation for all Jinja plugin/call ops (#85391)
* Errors raised in most Jinja operations and plugin invocations are now propagated as Markers, allowing template pipeline to continue execution when a Marker-aware consumer is present.
* Added ability to inspect ExceptionMarkers to Protomatter `dump_object` filter.
* Added tests.

Co-authored-by: Matt Clay <matt@mystile.com>
5 months ago
Matt Davis 649c9ec443
Encryptedstring redact fixes (#85390)
* misc DTFIX/docstring cleanup

* fix EncryptedString redaction, add tests

Co-authored-by: Matt Clay <matt@mystile.com>

* Fix test failures

---------

Co-authored-by: Matt Clay <matt@mystile.com>
5 months ago
Matt Davis 11f5563895
Jinja sandbox refinement (#85385)
* DTFIX recategorize

* fix ansible-console generated task dict

* use non-deprecated task shape

* switch Jinja from ImmutableSandboxedEnvironment to SandboxedEnvironment

* Restore ability to call collection mutation methods.
* Restore ability to directly call integer bitwise operator methods.
* Adjust tests.

Co-authored-by: Matt Clay <matt@mystile.com>

---------

Co-authored-by: Matt Clay <matt@mystile.com>
5 months ago