Commit Graph

11513 Commits

Author SHA1 Message Date
2cc74b04c4 ansible-test - Add multi-arch remote support. 2022-04-29 18:20:14 -07:00
de5d6820f8 ansible-test - Remove obsolete code. 2022-04-29 13:27:37 -07:00
a115a7fce2 Install acl on Ubuntu for copy integration test. 2022-04-29 13:27:18 -07:00
e2200e8dfc ansible-test - Fix remote completion validation. 2022-04-29 13:27:01 -07:00
4ff10fcd31 fix SELinux facts tests
* make the pre-flight sniffing more robust to different failure conditions (was failing on Ubuntu 22.04 VMs)
* remove skip aliases (the test needs to function everywhere to assert that the selinux facts bits behave properly when it's N/A)
2022-04-29 11:36:14 -07:00
6513453310 ansible-test - Add support for remote Ubuntu VMs. 2022-04-29 10:38:38 -07:00
dcda1e7239 Trim message in split integration test. 2022-04-29 10:21:11 -07:00
dbdbfe845a Remove deprecated subclassing DefaultCallback without doc_fragment (#77677) 2022-04-29 09:32:13 +02:00
a3cc6a581e dont rely on path to set config defs for plugins (#77659) 2022-04-28 12:14:33 -07:00
ed30fc9a06 Remove deprecated loading cache plugins directly without cache_loader (#77655) 2022-04-28 12:08:20 -07:00
572bc1354a Fix lazy eval version in integration tests 2022-04-28 12:07:22 -07:00
749a105956 ansible-doc stay 3.8 python compatible (#77682)
pathlib with_stem will wait till 3.9
  also add tests by listing filters
2022-04-28 14:57:34 -04:00
cc872a57f2 Reduce output from ansible-doc integration test.
This removes about 20K lines of output which are not evaluated as part of the test.
2022-04-27 15:11:18 -07:00
5c2d830dea ansible-test - Fix subprocess management. (#77641)
* Run code-smell sanity tests in UTF-8 Mode.
* Update subprocess use in sanity test programs.
* Use raw_command instead of run_command with always=True set.
* Add more capture=True usage.
* Don't expose stdin to subprocesses.
* Capture more output. Warn on retry.
* Add more captures.
* Capture coverage cli output.
* Capture windows and network host checks.
* Be explicit about interactive usage.
* Use a shell for non-captured, non-interactive subprocesses.
* Add integration test to assert no TTY.
* Add unit test to assert no TTY.
* Require blocking stdin/stdout/stderr.
* Use subprocess.run in ansible-core sanity tests.
* Remove unused arg.
* Be explicit with subprocess.run check=False.
* Add changelog.
* Use a Python subprocess instead of a shell.
* Use InternalError instead of Exception.
* Require capture argument.
* Check for invalid raw_command arguments.
* Removed pointless communicate=True usage.
* Relocate stdout w/o capture check.
* Use threads instead of a subprocess for IO.
2022-04-27 14:07:15 -07:00
b439e41a91 expand ansible-doc coverage (#74963)
* Expand ansible-doc to tests/filters and fix existing issues

  enable filter/test docs if in single file or companion yaml
  add docs for several filters/tests plugins
  allow .yml companion for docs for other plugins, must be colocated
  verify plugins are valid (not modules, cannot)
  fix 'per collection' filtering
  limit old style deprecation (_ prefix) to builtin/legacy
  start move to pathlib for saner path handling
  moved some funcitons, kept backwards compat shims with deprecation notice

  Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
  Co-authored-by: Felix Fontein <felix@fontein.de>
  Co-authored-by: Sandra McCann <samccann@redhat.com>
2022-04-27 09:46:52 -04:00
3980eb8c09 Prevent losing unsafe from lookups (#77609)
* Prevent losing unsafe from lookups

This patch fixes a bug which under certain conditions results in data
returned from lookups not being marked as unsafe.

Each time Templar.do_template is invoked a new AnsibleContext is
created and stored effectively at two places:
1) as an instance variable in templar_obj.cur_context
2) as a local variable called new_context in do_template method of Templar

Due to custom functionality in Ansible's Context that allows for nested
templating it is possible that during resolving variable's value
template/do_template method is called recursively again, again creating
a new context. At that point the problem manifests itself because as
mentioned in 1) above the context is overwriten on the templar object
which means that any subsequent calls to _lookup will use the new
context to mark it as unsafe which is now different to the local
new_context which is used for testing for unsafe property.

The solution to the problem appears to be to restore the original
context inside do_template and also to eliminate the local variable
new_context to prevent problems in the future.

It appears that we don't have a better way of storing the context other
than as some form of global variable and so this appears to be the
"best" solution possible at this point. Hopefully data tagging will be
the solution here.

For more examples see unit and integration tests included in this patch.

Fixes #77535
2022-04-26 11:16:22 -04:00
26fd5a8c3a Revert "ansible-test - Fix subprocess management. (#77638)"
This reverts commit 62d03c8e75.
2022-04-25 15:38:35 -07:00
62d03c8e75 ansible-test - Fix subprocess management. (#77638)
* Run code-smell sanity tests in UTF-8 Mode.
* Update subprocess use in sanity test programs.
* Use raw_command instead of run_command with always=True set.
* Add more capture=True usage.
* Don't expose stdin to subprocesses.
* Capture more output. Warn on retry.
* Add more captures.
* Capture coverage cli output.
* Capture windows and network host checks.
* Be explicit about interactive usage.
* Use a shell for non-captured, non-interactive subprocesses.
* Add integration test to assert no TTY.
* Add unit test to assert no TTY.
* Require blocking stdin/stdout/stderr.
* Use subprocess.run in ansible-core sanity tests.
* Remove unused arg.
* Be explicit with subprocess.run check=False.
* Add changelog.
2022-04-25 12:39:09 -07:00
841bdb74eb Replace antsibull with antsibull-docs (#77504) 2022-04-22 09:33:32 -04:00
1b947eaf92 arg_spec - Return aliases in validation result and update aliases (#77576)
When looking up the `no_log` setting for a parameter that is an alias in
`AnsibleModule._log_invocation()`, the alias value will always be an
empty dictionary since `self.aliases` on the `AnsibleModule` instance is
never updated after initialization. Since the `no_log` setting is on the
canonical parameter not the alias, an incorrect warning is issued if the
parameter matches `PASSWORD_MATCH`.

This PR returns the aliases dictionary as an attribute of the
`ValidationResult` and updates the `aliases` attribute on the
`AnsibleModule` instance.
2022-04-21 15:06:31 -04:00
b960641759 ansible-test - Support multiple coverage versions.
ci_complete
ci_coverage
2022-04-19 23:15:38 -07:00
4d69c09695 ansible-galaxy collection - ensure dependencies are a dict (#77561)
* fix traceback when installing collection with dependencies set to None
2022-04-19 15:54:45 -04:00
4faa576ee9 Add a test and changelog for non-string host names in yaml inventory files (#77569) 2022-04-19 15:17:36 -04:00
abdd237de7 Yolo (#77554)
* Revert "Revert "Config, ensure templating happens at functions (#77483)""

This reverts commit 94c9106153.

* removed update configdata, which is unused
* removed test for action we don't perform anymore
* removed unused configdata
2022-04-18 15:57:00 -04:00
191d9a771a ansible-test - Remove more Python 2.7 support. 2022-04-18 11:57:50 -07:00
76273a6b80 Clean up integration tests (#77516) 2022-04-14 15:18:30 -04:00
cbe42bff7f Allow for lazy evaluation of Jinja2 expressions (#56116) 2022-04-14 12:32:00 -05:00
f2ab920822 Better info sourcing (#77511)
Task is  authoritative
   also includes latest per loop info
   and fix tests
2022-04-14 13:07:27 -04:00
3b9592fcaf Move to display as single source of verbosity (#77498)
* Move to display as single source of verbosity

Co-authored-by: Sloane Hertel <19572925+s-hertel@users.noreply.github.com>
2022-04-14 11:23:06 -04:00
d7fbde4ea9 Make "~/.ansible" path configurable (#76114)
* replace hardcoded '~/.ansible' to C.ANSIBLE_HOME
* rename previously existing env ANSIBLE_HOME in env-setup script
* modify cache dir monkeypatching in galaxy api unit tests
* update "version_added" to 2.14 for ANSIBLE_HOME
* fix description of collections with proper use of ANSIBLE_HOME

Co-authored-by: htol <github@h-tol.net>
Co-authored-by: stefanwascoding <stefan@syntaxhelden.de>
2022-04-11 14:17:00 -04:00
94138cf608 template override colon bugfixes (#77495)
* Proper error on missing jinja2 override separator

Properly catch the case when no (or a wrong) separator is used in a
jinja2 override, and return a useful error message to the user.

* Support colons in jinja2 override value

By limiting the split to 1, any colons in the value are preserved and
passed on.
2022-04-11 10:11:57 -04:00
94eff70030 PlayIterator - remove deprecated states (#77444) 2022-04-11 15:13:10 +02:00
477c55b0d2 Get git executable for collections in git repos (#77493)
* Fix traceback installing collections from git repos if git is not installed
2022-04-08 13:41:53 -04:00
66c5844978 ansible-test - Don't fail if network cannot be disconnected (#77472)
* Don't fail if network cannot be disconnected

* add clog frag
2022-04-06 15:32:13 -05:00
1d9c68d27e honor use_proxy parameter (#77312)
* honor use_proxy parameter
* fix uri test with "use_proxy: no"
* fix urls.py module

Co-authored-by: Carlos <Juan.Carlos.Cardenas.Viera@ibm.com>
2022-04-06 13:21:49 -04:00
6216c9fc93 Fix sanity test crash. 2022-04-06 09:36:23 -07:00
2797dc644a Add test to assert that missing libyaml doesn't result in an error. Fixes #77437 2022-04-01 13:53:19 -07:00
9f82fc204b apt_key: remove deprecated key module param (#77409) 2022-04-01 11:01:20 +02:00
f933f9a178 get_url: remove deprecated sha256sum module param (#77408) 2022-04-01 10:26:41 +02:00
26149c45df import_playbook: remove deprecated free form params (#77431) 2022-04-01 05:13:28 +10:00
d4dd4a82c0 Remove deprecated default.plugin_filters_cfg config option (#77429)
* Remove deprecated default.plugin_filters_cfg config option

Fixes #77398

* Fix tests
2022-04-01 05:11:56 +10:00
87a8fedd94 Fix type for ansible-galaxy server config definitions (#77424)
* Fix type for ansible-galaxy server config definitions

* changelog

* check attr without api call

* pep8
2022-04-01 05:09:10 +10:00
4b51e61645 ansible-test - Fix origin host target filtering. 2022-03-30 11:16:15 -07:00
6d260ad967 Remove COMMAND_WARNINGS and warn (#77411)
* Remove COMMAND_WARNINGS and warn

Fixes #77394
2022-03-30 09:52:44 -04:00
e080bae766 Remove deprecated ALLOW_WORLD_READABLE_TMPFILES config option (#77410)
Fixes #77393
2022-03-30 09:46:57 -04:00
60b4200bc6 winrm - ensure callers PATH for kinit is set (#77401)
* winrm - ensure callers PATH for kinit is set

* Fix unit test expectations

* Fix type annotation
2022-03-29 17:36:56 -07:00
353511a900 Add script to handle more deprecations. (#77400)
* Add script to handle more deprecations.

This script currently supports deprecations from the following sanity tests:

* deprecated-config
* update-bundled

* Ignore script in package-data test.
2022-03-29 15:24:30 -07:00
f8ec660e62 [ansible-galaxy] Fix listing collections with null namespace/name/version metadata (#77014)
* Fall back to implicit namespace.name from the path if the metadata is invalid

* Test listing a collection with null namespace/name/version fields in its galaxy.yml
2022-03-29 15:18:06 -04:00
4ccc4c5aeb Report relative path in deprecated-config test. 2022-03-29 11:20:04 -07:00
87d52e0ce0 Only require a keyring if collections with signatures will be installed (#77355)
Fixes #77349
2022-03-29 17:03:43 +02:00