Alex Willmer
3cba11a126
CI: Fix ansible_version comparison with ansible-core 2.19.0rc1
...
Note that tests/ansible/integration/ssh/templated_by_play_taskvar.yml was
previously erroniously being skipped with ansible-core 2.19.0a<N> and
2.19.0b<N>.
fixes #1293
refs #1175
6 months ago
Alex Willmer
f330c2b158
CI: replace stdout=yaml with result_format=yaml for Ansible >= 6 tests
...
Ansible >= 12 (ansible-core >= 2.19) deprecates `stdout_callback=yaml`,
superceded by `callback_result_format=yaml`. There is a change in behaviour:
`callback_result_format` applies to output of both `ansible-playbook` _and_
`ansible`.
Tests that run `ansible` in a subprocess are now explicitly configured to use
json (even if they don't inspect that output yet) for more assert-able output
across all versions of Ansible.
6 months ago
Alex Willmer
0187418697
ansible_mitogen: alpha datatag handling & CI for Ansible 12 (ansible-core 2.19)
...
refs #1258
7 months ago
Alex Willmer
4c41bf02f1
CI: Specify ANSIBLE_STRATEGY in tasks that run ansible or ansible-playbook
...
This makes the behaviour more consistent across jobs that run with
`mitogen_linear` or plain `linear`.
7 months ago
Alex Willmer
a9048f0f7d
CI: Use Ansible finished test (`result.finished` -> `result is finished`)
...
Required by Ansible 12 (ansible-core-2.19).
refs #1298
7 months ago
Alex Willmer
27b4b77bba
CI: Upgrade Github jobs from Ubuntu 20.04 to 22.04 & 24.04
...
Python 2.7 (distro package) and 3.6 (pyenv managed) jobs run on Ubuntu 22.04.
More recent Pythons (distro or Github provided) run on 24.04.
fixes #1256
Ansible tasks that run locally (e.g. `connection: local`, `delegate_to:
localhost`) must now specify their `ansible_python_interpreter`, typically as
`{{ ansible_playbook_python }}`; otherwise the system Python on the controller
(e.g. `/usr/bin/python`) is likely to be used and this is often outside the
version range supported by the Ansible verison under test. If this occurs then
the symptom is often a failure to import a builtin from
`ansible.module_utils.six.moves`, e.g.
```
fatal: [target-centos6-1]: FAILED! => changed=true
cmd:
- ansible
- -m
- shell
- -c
- local
- -a
- whoami
- -i
- /tmp/mitogen_ci_ansibled3llejls/hosts
- test-targets
delta: '0:00:02.076385'
end: '2025-04-17 17:27:02.561500'
msg: non-zero return code
rc: 8
start: '2025-04-17 17:27:00.485115'
stderr: |-
stderr_lines: <omitted>
stdout: |-
An exception occurred during task execution. To see the full traceback,
use -vvv. The error was: from ansible.module_utils.six.moves import
map, reduce, shlex_quote
```
8 months ago
Alex Willmer
6698f4bcd9
tests: Remove unused tasks fragment
11 months ago
Alex Willmer
6accc87da1
tests: Improve Ansible fail_msg formatting
...
By switching to block style (`|`) with clip (no `-` or `+`) the failure
messages don't require quoting and gain a single trailing newline. This causes
Ansible to print them as block style, when using the yaml stdout callback
plugin. As a result the values have one less layer of quoting and quote
escaping, making them much easier to read.
1 year ago
Alex Willmer
357fe38766
Ansible 10 (ansible-core 2.17) support
...
Notably
- Python 2.7 and 3.6 are no longer supported by Ansible on targets
- The yum module has been removed, and redirected to dnf
- _INTERPRETER_PYTHON_DISTRO_MAP has been neutered. Interpreter discovery
always favours specific `python3.<x>` interpreters in decending version
order, then generic `python3` or `python`.
- Add the ability for an action plugin to call self._execute_module(*,
ignore_unknown_opts=True) to execute a module with options that may not be
supported for the version being called.
https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_10.html
https://github.com/ansible-community/ansible-build-data/blob/main/10/CHANGELOG-v10.md
https://github.com/ansible/ansible/blob/stable-2.17/changelogs/CHANGELOG-v2.17.rst
fixes #1074 , refs #1082
Co-authored-by: Claude Becker <becker@phys.ethz.ch>
1 year ago
Alex Willmer
7079a07a15
tests: Fix duplicate local task executions
...
integration/ssh/timeouts.yml is noteworthy. It was an accidental N**2 in time
- executing num hosts * num hosts tasks.
2 years ago
Alex Willmer
65c8a42c13
tests: Use same verbosity when re-executing Ansible inside a playbook
2 years ago
Alex Willmer
45c42d386a
tests: Replace uses of ``include:``, unify skipping of mitogen only tests
...
The tag mitogen_only is only informational for now. It may be possible to use
it with ANSIBLE_SKIP_TAGS in the future.
2 years ago
Alex Willmer
a6a5c5bb97
tests: Clarify status/purpose of Python 2.x era Ansible Module workaround
2 years ago
Alex Willmer
591152bef0
tests: Avoid intermittant 2 hour timeout in new style Ansible module tests
...
This has been lurking for years, raising it's head at unpredictable times.
This change doesn't fix it, but it should make it a lot less mysterious.
2 years ago
Alex Willmer
1ed932e8d5
tests: Eliminate MITOGEN_INVENTORY_FILE
...
Replaced with ansible_inventory_sources.
3 years ago
Alex Willmer
526422b74b
tests: Name tasks
...
For easier grep, and easier identification in task_profiler summaries.
3 years ago
Alex Willmer
db0ffae352
tests: Enable stricter error handling, fix resulting failures
4 years ago
Alex Willmer
18c89de5a9
Remove unused module imports
4 years ago
Klaus Zerwes
2b4f04c554
Revert "Revert "fixed tests for ansible 2.12""
...
This reverts commit 478f286efb .
4 years ago
Klaus Zerwes
478f286efb
Revert "fixed tests for ansible 2.12"
...
include is deprecated and will be removed in 2.16, so there is some time to fix this left
This reverts commit 2d3970552e .
4 years ago
Klaus Zerwes
2d3970552e
fixed tests for ansible 2.12
4 years ago
Alex Willmer
e194a6367f
ci: Fix version comparisons involving double digits
...
See https://gist.github.com/moreati/e7507c5b606b12ec0ddafcb7c8debbf1
4 years ago
Alex Willmer
3c58215a91
tests: Tag Ansible tests
...
This makes it easier to run subsets using ANSIBLE_RUN_TAGS=...
4 years ago
Alex Willmer
147a716b28
CI: Handle NameError traceback on stdout in Ansible 2.10+
4 years ago
Alex Willmer
cfa5888547
tests: Print variables on failure of assert tasks
...
Fixes #852
4 years ago
Alex Willmer
ac7505d624
tests: Add centos 8; debian 10, 11; ubuntu 16.04, 18.04, 20.04 test images
5 years ago
Steven Robertson
741e99f698
ansible 2.10 no longer has a at the end of the error msg... 🤦
5 years ago
Steven Robertson
e6d7cd3aff
skip vanilla Ansible 2.10 hanging task if not is_mitogen
5 years ago
Steven Robertson
d978dffe4e
fix ansible version check error
5 years ago
David Wilson
d6329f3446
Merge devel/290 @ 79b979ec8544ef5d8620c64068d4a42fabf50415
6 years ago
David Wilson
ee7dae7514
ci: Another round of fixes for random Ansible UI breakage in 2.7/2.8
7 years ago
David Wilson
a3be746865
issue #587 : update MODULE FAILURE message format for post >2.7
7 years ago
David Wilson
2bd0bbd4df
issue #555 : ansible: workaround ancient reload(sys) hack.
...
This is the most minimal change for what might be relatively minimal
edge case. Alternative is replacing reload(), but let's not do that yet.
Closes #555
7 years ago
David Wilson
954f874085
issue #527 : catch new-style module tracebacks like vanilla.
7 years ago
David Wilson
a7da1b048b
tests: just disable the test.
7 years ago
David Wilson
cdb1434809
tests: hopefully fix this dumb test for the final time
7 years ago
David Wilson
a67cc85bdb
issue #477 : use MITOGEN_INVENTORY_FILE everywhere.
7 years ago
David Wilson
b67e4e118e
issue #477 : update forking_correct_parent for subprocess isolation
7 years ago
David Wilson
abb0319bbb
issue #477 : get rid of perl JSON module requirement.
7 years ago
David Wilson
51294db52d
issue #477 : fix 2 runner tests on Ansible 2.7.
7 years ago
David Wilson
dc01f9e47e
issue #477 : Ansible 2.3 module output format difference.
...
Don't test for keys it doesn't set.
7 years ago
David Wilson
b6062afe24
issue #477 : Ansible 2.3 cannot use when: on an include.
...
So just use our magic action module to reset the connection instead.
7 years ago
David Wilson
c1a4597e32
issue #477 : tests: use Ansible 2.3-compatible include rather than import
...
This will break with Ansible 2.8. Probably going to end up with a regex
hack for CI.
7 years ago
David Wilson
b0e7c1a315
tests: fix /etc/environment test on vanilla
...
Use "meta: reset_connection" to ensure /etc/environment is reloaded.
Looks like this entire feature can be ripped out!
7 years ago
David Wilson
3179951f5c
issue #454 : fix AttributeError and atexit.yml test.
7 years ago
David Wilson
a717c5406c
tests: split etc_environment test in two
...
Turns out nobody supports ~/.pam_environment any more. Keep the
behaviour around for the time being.
7 years ago
David Wilson
7fd9fb0014
issue #397 : fix another case where stray tmpdirs can be left behind.
...
Newer Ansibles use atexit.register() to invoke cleanup, so we need to
run those registrations after each run.
7 years ago
David Wilson
2eb3ea78d6
tests: remove a bunch of stray debug
7 years ago
David Wilson
dfb4930fce
tests: import custom binaries for tests
...
It means Linux<->OS X runs work fine without manual hackery.
7 years ago
David Wilson
705d77a9be
ansible: remove a bunch more aliasing from connection.py.
7 years ago