David Wilson
8ae6ca1d5b
tests/ansible: Spec.become_method() test & mitogen_via= fix.
...
ansible_become_method hostvar was not taken into account.
6 years ago
David Wilson
8ba75d82ec
tests/ansible: Spec.become() test
6 years ago
David Wilson
d1cadf8ac8
tests/ansible: Spec.password() test, document interactive pw limitation.
6 years ago
David Wilson
21ad299d7b
tests/ansible: Spec.remote_user() test & mitogen_via= fix.
...
ansible_ssh_user precedence was incorrect.
6 years ago
David Wilson
748f5f675d
tests/ansible: Spec.remote_addr() test & mitogen_via= fix.
...
ansible_ssh_host was not respected.
6 years ago
David Wilson
8fd641c442
tests/ansible: Spec.transport() test.
6 years ago
David Wilson
e1df98168c
issue #536 : add mitogen_via= tests too.
6 years ago
David Wilson
2f29c76eec
tests: for 2.3 compatibility, disable gcloud.py for now
6 years ago
David Wilson
b3f20f54e6
issue #536 : disable transport_config tests on vanilla
6 years ago
David Wilson
1d43e187e8
issue #536 : connection_delegation/ tests were erroneously broken
...
While fixing delegate_to, this un-hardwiring of /usr/bin/python
happened. It was always incorrect.
6 years ago
David Wilson
0dfcf5560b
tests: define MITOGEN_INVENTORY_FILE even if -i unspecified.
...
To fix running tests locally.
6 years ago
David Wilson
01faed708d
issue #536 : add tests for each ansible_python_interpreter case.
6 years ago
David Wilson
86f9572ef7
issue #536 : stop defining explicit localhost in inventory.
...
This was needed at some point in the past, but the tests don't seem to
care about it any more. We'll fix any CI breakage by changing the tests,
since verifying implicit localhost behaviour is important.
6 years ago
David Wilson
81e386586f
tests: allow running Ansible tests locally without -udmw again.
6 years ago
David Wilson
2aed0a0c6c
tests: add new compression parameter to mitogen_get_stack results
6 years ago
David Wilson
6859186069
tests: disable affinity_test on Travis :/
6 years ago
David Wilson
8026e54b9b
tests: move affinity_test to Ansible tests.
6 years ago
David Wilson
b2bae9deed
tests: pad out localhost-*
6 years ago
David Wilson
29adfbea59
tests: add localhost-x100
6 years ago
David Wilson
b72d139bd2
tests: make soak testing work reliably on vanilla.
...
It claims to disable host key checking, but it doesn't.
6 years ago
David Wilson
b59a47aecb
tests: make mitogen_shutdown_all be run_once by default.
6 years ago
David Wilson
2209d880e4
ansible/bench: make end= configurable.
6 years ago
David Wilson
954f874085
issue #527 : catch new-style module tracebacks like vanilla.
6 years ago
David Wilson
a40946297f
issue #497 : do our best to cope with crap upstream code
6 years ago
David Wilson
eb93f82d05
tests: ensure file is closed in connection_test.
6 years ago
David Wilson
73979043ad
gcloud: small updates
6 years ago
David Wilson
59068ca955
tests: give ansible/gcloud/ its own requirements file.
6 years ago
David Wilson
9df314f9c5
issue #499 : another totally moronic implementation difference
6 years ago
David Wilson
53794469a0
issue #499 : disable new test on vanilla.
6 years ago
David Wilson
a1121c5a84
issue #499 : respect C.BECOME_ALLOW_SAME_USER.
6 years ago
David Wilson
b254051416
ansible: add test to ensure UNIX socket is cleaned on exit; closes #488 .
6 years ago
David Wilson
628e8f4466
Bump PyYaML to a 3.7-compatible version.
6 years ago
David Wilson
a7da1b048b
tests: just disable the test.
6 years ago
David Wilson
cdb1434809
tests: hopefully fix this dumb test for the final time
6 years ago
David Wilson
a67cc85bdb
issue #477 : use MITOGEN_INVENTORY_FILE everywhere.
6 years ago
David Wilson
ea23d7fd54
issue #477 : hacksmash weird 2.3 inventory_file var issue.
6 years ago
David Wilson
9aff8edf50
issue #477 : one more conditional test.
6 years ago
David Wilson
e133b8dbb1
issue #477 : some more conditional tests.
6 years ago
David Wilson
599da0689a
issue #477 / ansible: avoid a race in async job startup.
...
Ansible 2.3/Python 2.4 work revealed there is no guarantee a slow target
will have written the initial job status file out before a fast
controller makes an initial check for it. Therefore, provide AsyncRunner
with a sender it should send a message to when the initial job file has
been written.
As a bonus, also catch and report exceptions happening early in
AsyncRunner, rather than leaving them to end up in -vvv output.
6 years ago
David Wilson
c61498202e
issue #477 : use assert_equal for nicer debug.
6 years ago
David Wilson
5e4066bb64
issue #477 : add Connection.homedir test.
6 years ago
David Wilson
8385c38cff
issue #477 : paper over Ansible 2.3 flag handling difference
6 years ago
David Wilson
b67e4e118e
issue #477 : update forking_correct_parent for subprocess isolation
6 years ago
David Wilson
abb0319bbb
issue #477 : get rid of perl JSON module requirement.
6 years ago
David Wilson
7d1b0e0807
issue #477 : Ansible 2.3 did not support gather_facts min subset.
6 years ago
David Wilson
2f087859bc
issue #477 : 2.4-compatible syntax.
6 years ago
David Wilson
7abe5ff564
issue #477 : clearing glibc caches is not possible on Py2.4.
6 years ago
David Wilson
51294db52d
issue #477 : fix 2 runner tests on Ansible 2.7.
6 years ago
David Wilson
c443244986
issue #477 : Ansible 2.3 compatible regression/all.yml.
6 years ago
David Wilson
532ae92029
issue #477 : Ansible 2.3 requires placeholder module for assert_equals
6 years ago
David Wilson
0b0ae5c971
issue #477 : backport various test modules to Python 2.4.
6 years ago
David Wilson
462a8567e5
issue #477 : add all() polyfill to custom_python_detect_environmnet
6 years ago
David Wilson
dc01f9e47e
issue #477 : Ansible 2.3 module output format difference.
...
Don't test for keys it doesn't set.
6 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.
6 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.
6 years ago
David Wilson
be8562ce09
issue #477 : Ansible 2.3 had stricter arg spec format.
6 years ago
David Wilson
66b64cae2c
issue #477 : older Ansibles had no vars plugin base class.
6 years ago
David Wilson
d6945443b7
tests: add exact test for issue 251; closes #251 .
6 years ago
David Wilson
23866084d7
issue #412 : promote "mitogen_get_stack" to the main extension.
...
This is to make it easier for users to diagnose their own problems.
6 years ago
David Wilson
2ad05f1238
issue #251 , #412 , #434 : fix connection configuration brainwrong
...
This refactors connection.py to pull the two huge dict-building
functions out into new transport_transport_config.PlayContextSpec and
MitogenViaSpec classes, leaving a lot more room to breath in both files
to figure out exactly how connection configuration should work.
The changes made in 1f21a30
/ 3d58832
are updated or completely removed,
the original change was misguided, in a bid to fix connection delegation
taking variables from the wrong place when delegate_to was active.
The Python path no longer defaults to '/usr/bin/python', this does not
appear to be Ansible's normal behaviour. This has changed several times,
so it may have to change again, and it may cause breakage after release.
Connection delegation respects the c.DEFAULT_REMOTE_USER whereas the
previous version simply tried to fetch whatever was in the
'ansible_user' hostvar. Many more connection delegation variables closer
match vanilla's handling, but this still requires more work. Some of the
variables need access to the command line, and upstream are in the
process of changing all that stuff around.
6 years ago
David Wilson
8414ff21ca
issue #434 : tests: set a default remote_user in ansible.cfg.
6 years ago
David Wilson
1b8748a8d9
tests: use assert_equal in more places.
6 years ago
David Wilson
d72567b15b
tests: make assert_equal work on newer Ansibles.
6 years ago
David Wilson
8891b48080
tests: convert stack_construction.yml to assert_equal.
6 years ago
David Wilson
4256d2aa4b
tests: make fork_histogram optional
6 years ago
David Wilson
17eff064b0
tests: use assert_equal in delegate_to_template.yml.
6 years ago
David Wilson
91c9aff9ff
tests: import assert_equal action.
6 years ago
David Wilson
630c058a89
tests: rename 'delegation/' to 'connection_delegation/'
6 years ago
David Wilson
0ba8cc7b61
tests: clean up / deduplicate Ansible inventory.
6 years ago
David Wilson
9d9add3339
issue #414 : reenable test.
6 years ago
David Wilson
4bdf60326c
issue #424 : ansible: make put_file() raise AnsibleFileNotFound
6 years ago
David Wilson
8380baf41b
issue #461 : Ansible 2.3 placeholder modules for action plug-ins.
6 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!
6 years ago
David Wilson
a8921bb6ff
tests: fix scaling in fork_histogram
6 years ago
David Wilson
6936b93b43
tests: import fork_histogram.py.
6 years ago
David Wilson
5a96d13fd8
issue #426 : fix all.yml sorting, one more delegate_to
6 years ago
David Wilson
bd82fa1986
issue #426 : fix low_level_execute_command.yml breakage.
6 years ago
David Wilson
a6e6bc4c71
issue #426 : to_text filter.
6 years ago
David Wilson
9d87f03ab4
issue #426 : disable Ansible smart transport.
6 years ago
David Wilson
49d37bfa2d
issue #426 : remove LANG and LC_ALL during tests.
6 years ago
David Wilson
a6e6fd14be
issue #426 : more 2->3 test fixes.
6 years ago
David Wilson
67f710fd9b
issue #426 : use delegate_to in fixup_perms2 and copy.yml
6 years ago
David Wilson
3179951f5c
issue #454 : fix AttributeError and atexit.yml test.
6 years ago
David Wilson
22de7f0e72
issue #436 : fix string parsing of mitogen_ssh_debug_level
...
It can be a string when specified on the command line.
6 years ago
David Wilson
44d6ca771a
issue #426 : fix local/delegate_to issue
6 years ago
David Wilson
bef4b0c962
tests: fix copy.yml title
6 years ago
David Wilson
b60a6d0f3b
Split dev_requirements.txt up according to test mode.
6 years ago
David Wilson
fccf424140
tests: Pythonize print_env.sh.
6 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.
6 years ago
David Wilson
374fd72dbb
tests: disable mtime test on vanilla
6 years ago
David Wilson
79ca67aadd
tests: disable connection tests for non-Mitogen
6 years ago
David Wilson
8972dbb7b9
tests: more Ansible fixes.
6 years ago
David Wilson
acf0b04876
tests: run some playbooks against only one target.
6 years ago
David Wilson
ee2d10375d
tests: don't run reset_connection tests on <2.5.6.
6 years ago
David Wilson
fcdfd5f107
tests: fix disconnect_cleanup.yml target count assumption
6 years ago
David Wilson
1bb239189b
tests: another attempt at working paths.
6 years ago
David Wilson
5f815ec6c4
tests: try to fix PATH problem on Travis.
6 years ago
David Wilson
f5f72b958f
tests: avoid -u command line parameter conflict
6 years ago
David Wilson
0c3e48468b
tests: run disconnect_during_module.yml in subprocess
...
Avoid entire run failing with unreachable
6 years ago
David Wilson
35092c5d35
tests: Unicode/bytes fixes for integration/connection/exec_command.yml
6 years ago
David Wilson
4d443e654b
tests: replace another shell script.
6 years ago
David Wilson
9ad022107e
issue #414 : disable test until rest of CI is healthy
6 years ago
David Wilson
f87553b165
tests: must set ansible_become_pass in synchronize.yml.
6 years ago
David Wilson
574fc27a9c
issue #414 : import test / reproduction.
6 years ago
David Wilson
c286f4f107
Add tests/ansible/requirements.txt to Tox.
6 years ago
David Wilson
5eff8ea4fb
tests: make result_shell_echo_hi compare less of the timedelta; closes #361
...
Assuming less than one second is too much to ask from Travis.
6 years ago
David Wilson
c148c869e6
issue #76 , #370 : add disconnect cleanup test
6 years ago
David Wilson
fd326f5ad7
tests: stub tests for doas/mitogen_doas
6 years ago
David Wilson
cbd4129cb9
tests: fix paramiko_unblemished.yml
6 years ago
David Wilson
e8fc9e490f
tests: update osa_delegate_to_self to match connection parameters
6 years ago
David Wilson
6c71c5bfef
issue #369 : disable reset_connection on Ansible<2.5.6
...
https://github.com/ansible/ansible/issues/27520
6 years ago
David Wilson
8ed72e7e7b
issue #369 : avoid Ansible 2.5 bug (cond_reset_warn missing method)
6 years ago
David Wilson
ab4ccc6b92
issue #369 : don't mass-kill all SSH clients in reconnection.yml
...
It breaks my new development environment :)
6 years ago
David Wilson
a6dd8bb2d0
issue #409 : stub test for mitogen_sudo method.
6 years ago
David Wilson
144685a327
issue #409 : more lxc/lxd stub tests, let tests run on vanilla.
6 years ago
David Wilson
0e8f451190
issue #409 : add stub LXC test, refactor playbooks.
6 years ago
David Wilson
e832ddec13
issue #409 : mark sudo test noninteractive
6 years ago
David Wilson
a77f07659e
issue #409 : make setns test to work anywhere sudo works.
6 years ago
David Wilson
f2294c1678
issue #409 : add new stub_connections/ test type.
6 years ago
David Wilson
c51b67b863
issue #409 : add test stubs to the PATH in run_ansible_playbook.py
6 years ago
David Wilson
5b916fc556
issue #409 : Pythonize run_ansible_playbook.sh
...
And add git_basedir extra variable.
6 years ago
David Wilson
96f000c5ea
ansible: tilde-expand SSH key before passing to SSH; closes #334 .
6 years ago
David Wilson
519faa3b3b
issue #369 : add Connection.reset() test.
6 years ago
David Wilson
89852db163
issue #370 : add 'disconnect resets connection' test
6 years ago
David Wilson
c510e58f9b
issue #352 : add test for disconnect message.
6 years ago
David Wilson
3429e57825
tests: fix target_test 3.x compat.
6 years ago
David Wilson
3585ee74f7
tests: split out ansible_tests requirements
...
Also remove hard-coded Ansible version, the tests don't need it, nor
does local testing most of the time
6 years ago
David Wilson
a7d635dff8
tests: import ara_env helper script.
6 years ago
David Wilson
918f709420
tests: import a bunch more random unchecked in pieces.
6 years ago
David Wilson
0d70fc1324
tests: import z hostfile
6 years ago
David Wilson
fd5066d671
tests: teach various tests to cleanup /tmp when they're done.
6 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.
6 years ago
David Wilson
1b17aa1d1a
ansible: fix temp cleanup regression and add test; closes #397 .
6 years ago
David Wilson
9d070541d9
ansible: try to create tempdir if missing.
...
Closes #358 .
6 years ago
David Wilson
6dd1001d7a
tests: move kubectl into new subdir
...
Fixes tab completion with tests/ dir :)
CC @yannig
6 years ago
David Wilson
130e42a932
tests: prevent compare_output_test running on import.
6 years ago
David Wilson
4c81eba599
Merge commit 'refs/pull/377/head' of github.com:dw/mitogen into dmw
...
(Pull #377 )
Changes:
- additional_parameters -> extra_args
- Merge with kubectl changes from dmw branch
- Update docs
- Remove unused username class member
- Avoid mutable kubectl_args class member
- Use six.iteritems
6 years ago
David Wilson
2eb3ea78d6
tests: remove a bunch of stray debug
6 years ago
David Wilson
21a7aac220
tests: import custom binaries for tests
...
Same for async tests.
6 years ago
David Wilson
dfb4930fce
tests: import custom binaries for tests
...
It means Linux<->OS X runs work fine without manual hackery.
6 years ago
David Wilson
564113874b
tests: explicitly define localhost in common-hosts
6 years ago
David Wilson
5521945bd2
ansible: temporary files take 5.
6 years ago
David Wilson
f6b74992e1
tests: fix apparently erroneous localhost delegation.
...
The stack delegates to localhost, which has ansible_python_interpreter
set.
6 years ago
David Wilson
e85760477b
tests: fix connection/_put_file.yml
...
Was statting wrong destination path, and comparing floats that don't
roundtrip serialization reliably.
6 years ago
David Wilson
638e473ff1
tests: hacksmash synchronize test to work
...
Avoid password typing idiocy.
6 years ago
Yannig Perré
17548d1e49
[Enhancement] handle kubectl vars from Ansible connector.
...
This change allows the kubectl connector to support the same options as
Ansible's original connector.
The playbook sample comes with an example of a pod containing two containers
and checking that moving from one container to another, the version of Python
changes as expected.
6 years ago
Yannig Perré
6828926a36
Kubernetes connection support for mitogen.
6 years ago
David Wilson
638b196a45
ansible: fix put_file() for large temporary files.
...
Reverts 49736b3a
, large file copies can't avoid the RTT.
The parent stack must be blocked while FileService progresses, as unlike
the small file path, it does not make a snapshot of the (possibly
temporary) file passed by the action plug-in. So we need to keep that
file alive while the service runs.
Add a new integration test and a new soak test to cover both.
6 years ago
David Wilson
001b63074c
tests: fix another typo.
6 years ago
David Wilson
d5524178bf
tests: fix bonehead syntax error.
6 years ago
David Wilson
65f03e03f5
tests: remote_tmp test fixes.
6 years ago
David Wilson
5eb41751f5
tests: import missing connection_passthrough
6 years ago
David Wilson
90f89f95fb
ansible: fix exec_command() regression.
6 years ago
David Wilson
24a44499ca
tests: verify Connection.put_file() for small/large files.
6 years ago
David Wilson
705d77a9be
ansible: remove a bunch more aliasing from connection.py.
6 years ago
David Wilson
66142e7d75
ansible: fork isolated tasks from correct parent.
...
Closes #355 .
6 years ago
David Wilson
e5d421e5f4
Update k3 inventory.
6 years ago
David Wilson
426cffd9f5
tests: set no_target_syslog
6 years ago
David Wilson
acf7fe56ee
tests: a few more inventory helpers.
6 years ago
David Wilson
b0ffc4e209
Copy random test setup changes out of linear2 branch.
6 years ago
David Wilson
e52684c186
tests: enable display_args_to_stdout
6 years ago
David Wilson
0a2ae4d597
tests: tidy up issue_140.yml
6 years ago
David Wilson
72fa129f8a
tests: fix clash when localhost is test-target
6 years ago
David Wilson
5bac246676
tests: make nice_stdout print failing task line number
6 years ago
David Wilson
9792b8b54f
ansible: use template-expanded delegate_to hostname in one more location.
6 years ago
David Wilson
3b012e5bce
tests: allow plugging in pprint/pprintpp via env.
6 years ago
David Wilson
90c2ed03d0
ansible: fix synchronize module
...
Broken by recent connection delegation fixes.
6 years ago
David Wilson
8e9b5ad576
tests: import template benchmark script.
6 years ago
David Wilson
084c0ac065
ansible: avoid roundtrip in copy action due to fixup_perms2().
...
On top of existing temporary files work, this reduces the number of
roundtrips required for "copy" and "template" actions from 6 to 3.
6 years ago
David Wilson
4098d45dac
tests: disable delegation tests on vanilla.
6 years ago
David Wilson
50e285f7ba
tests: update for identities_only change.
6 years ago
David Wilson
a4ed27fa63
tests: add playbook step to ensure key file perms.
6 years ago
David Wilson
ac9b84d237
issue #321 : 2.4+ compatibility fixes, disable test on Vanilla.
6 years ago
David Wilson
f24f02ba06
issue #321 : take remote_tmp and system_tmpdirs into account.
...
Can't simply ignore these settings as some users may have weird noexec
filesystems.
6 years ago
David Wilson
a2686b1a2c
issue #321 : simplify temp directory handling.
6 years ago
David Wilson
3d588323ff
issue #340 : use expanded delegate_to hostname, not template.
...
PlayContext.delegate_to is the unexpanded template, Ansible doesn't keep
a copy of it around anywhere convenient. We either need to re-expand it
or take the expanded version that was stored on the Task, which is what
is done here.
6 years ago
David Wilson
154dc2e119
tests: fix integration/runner/missing_module.yml on Travis.
6 years ago
David Wilson
a6995a5288
issue #338 : refactor env handling into class and fix tests.
6 years ago
David Wilson
06ae59702c
tests: rationalize matrix and rewrite ansible_tests
...
Now all distros run in parallel.
6 years ago
David Wilson
da391f0542
tests: fix host limit.
6 years ago
David Wilson
ce058eb8bd
Add 'clean' target to makefile.
6 years ago
David Wilson
8eb288856c
issue #338 : run /etc/environment test with become:true.
6 years ago
David Wilson
ad365dad56
issue #340 : one more test, update Changelog.
6 years ago
David Wilson
916e46621b
issue #340 : add connection delegation tests.
6 years ago
David Wilson
aed8fb531b
tests: unused imports
6 years ago
David Wilson
df112be704
tests: teach controller.yml to configure git too
6 years ago
David Wilson
49c804937d
tests: import 2 more simple benchmarks.
6 years ago
David Wilson
b521f215fd
ansible: handle >2.6 magic exceptions + sys.excepthook damage
...
Closes #332 .
6 years ago
David Wilson
a192935daf
tests: merge build_docker_images.py with osx_setup.yml
...
Hooray!
6 years ago
David Wilson
2c2fc73b0a
tests: whups, s/ansible_hostname/ansible_host/
6 years ago
David Wilson
6c4b01642c
ansible: don't crash when adhoc tries to run a missing module.
...
ansible-playbook prints a separate error during parsing stage, adhoc
performs no such check.
6 years ago
David Wilson
b964e647d2
tests: split inventory up slightly.
...
This makes it easier to run connection delegation tests against either
the local machine or a container.
6 years ago
David Wilson
1473f49505
ansible: emulate /etc/environment reloading behaviour of vanilla.
...
This change is relatively incomplete -- ideally we could snapshot
os.environ and /etc/environment at startup and respect key deletions
too, but that's a lot more work. Wait for a bug report instead.
Closes #338 .
6 years ago
David Wilson
3e0de9790c
issue #324 : fix Python 3 fallout for custom module_utils.
...
Also enable at last one of its tests.
6 years ago
David Wilson
1008cda93b
tests: add missing debops installs tep
6 years ago
David Wilson
b44b823c4a
ansible: make _remote_expand_user() pay attention to sudoable=..
6 years ago
David Wilson
a8e4dcc98d
issue #301 : correct remote_tmp evaluation context.
...
Vanilla Ansible expands remote_tmp variables in the context of the login
account, not any become_user account.
6 years ago
David Wilson
9410903f20
issue #301 : add related test.
6 years ago
David Wilson
b6d6468c92
issue #301 : support expandvars() for remote_tmp only.
...
Vanilla Ansible support expandvars-like expansions widely in a variety
of places. Prefer to whitelist those we need, rather than sprinkling
hellish semantics everywhere.
6 years ago
David Wilson
e39c602fd3
issue #291 : support UNIX hashbang syntax for ansible_*_interpreter.
...
Closes #291 .
6 years ago
David Wilson
15d68b3c32
issue #309 : fix environment cleanup regression.
...
Closes #309 .
6 years ago
David Wilson
0b1f92b59f
issue #297 : test fixes to match fixed CWD.
6 years ago
David Wilson
d8e0c9e12c
issue #297 : local commands must execute with WorkerProcess environment.
6 years ago
David Wilson
012745efea
issue #297 : local actions must execute with fixed directory.
...
Local actions must execute in the the parent directory of the playbook
that defines the action.
6 years ago
David Wilson
26ba3e4d83
issue #294 : stronger integration test
...
Run the tests in a brand new ansible-playbook invocation, and try both
linear->mitogen->linear and mitogen->linear->mitogen.
6 years ago
David Wilson
5b03e06457
issue #294 : ansible: fix mixed vanilla/Mitogen runs.
...
Don't bother trying to understand what damage PluginLoader has done to
ansible.plugins.* namespace, just ask it for the base class instead.
6 years ago
David Wilson
5668267f47
tests: import debug_ansible_playbook.sh.
6 years ago
David Wilson
8a2e8964a9
tests: import gce.yml
6 years ago
David Wilson
079dc95aef
tests: use nice_stdout in gcloud/ too
6 years ago
David Wilson
b21d51be47
ansible: fix test for 3.x.
6 years ago
David Wilson
410016ff47
Initial Python 3.x port work.
...
* ansible: use unicode_literals everywhere since it only needs to be
compatible back to 2.6.
* compat/collections.py: delete this entirely and rip out the parts of
functools that require it.
* Introduce serializable Kwargs dict subclass that translates keys to
Unicode on instantiation.
* enable_debug_logging() must set _v/_vv globals.
* cStringIO does not exist in 3.x.
* Treat IOLogger and LogForwarder input as latin-1.
* Avoid ResourceWarnings in first stage by explicitly closing fps.
* Fix preamble_size.py syntax errors.
6 years ago
David Wilson
4f57c59b7e
issue #275 : Don't run virtualnv test on 2.6.
6 years ago
David Wilson
9617f4d7bf
Revert "try to catch EINTR on travis"
...
This reverts commit 42797d5cff
.
6 years ago
David Wilson
fbb67e837e
tests: import nice_stdout plugin
6 years ago
David Wilson
42797d5cff
try to catch EINTR on travis
6 years ago
David Wilson
ffc7306cf8
tests: better runner_two_simultaneous_jobs.yml.
6 years ago
David Wilson
1d96d80e8d
tests: osx_setup.yml missing line
6 years ago
David Wilson
3994f1b30a
ansible: implment async job time limit.
6 years ago
David Wilson
df8fe59eda
tests: replace hard-coded sleep with a polling loop
6 years ago
David Wilson
64b60be50c
tests: split runner_new_process out of runner_one_job
6 years ago
David Wilson
cee76ee7b9
tests: gcloud setup fixes.
7 years ago
David Wilson
3b0addcfb0
service: v2. Closes #213
7 years ago
David Wilson
eac4cc7afe
tests: speed things up
7 years ago
David Wilson
b0aa413173
tests: import benchmark reproduction setup playbook
...
Incomplete, also needs to mess around with Gcloud routing and handle box
setup/teardown, because that's another "well engineered" waste of time.
7 years ago
David Wilson
a99c7a12f9
tests: output split groups in gcloud.py
7 years ago
David Wilson
dbcee4041a
tests: refactor gcloud.py to be dynamic inventory.
7 years ago
David Wilson
a3995f8e5f
ansible: remove hard-coded dw username.
7 years ago
David Wilson
2c58591129
Bump Ansible version in dev_requirements.txt
7 years ago
David Wilson
faaac43a78
Disable SSH variables test on vanilla Ansible.
7 years ago
David Wilson
68d6e6bf34
ansible: tests for all SSH variables.
...
Closes #184 .
7 years ago
David Wilson
2ad0d0521d
ansible: reload /etc/resolv.conf for each task.
...
The OpenShift installer modifies /etc/resolv.conf then tests the new
resolver configuration, however, there was no mechanism to reload
resolv.conf in our reuseable interpreter.
https://github.com/openshift/openshift-ansible/blob/release-3.9/roles/openshift_web_console/tasks/install.yml#L137
This inserts an explicit call to res_init() for every new style
invocation, with an approximate cost of ~1usec on Linux since glibc
verifies resolv.conf has changed before reloading it.
There is little to be done for users of the thread-safe resolver APIs,
their state is hidden from us. If bugs like that manifest, whack-a-mole
style 'del sys.modules[thatmod]' patches may suffice.
7 years ago
David Wilson
60781ecab6
tests: fix test for vanilla Ansible.
7 years ago
David Wilson
eb56a8f98d
tests: add debug
7 years ago
David Wilson
267f787d20
issue #217 : tests: import (unused) module_utils tests.
7 years ago
David Wilson
ee741da2b3
tests: reenable remaining Ansible tests.
7 years ago
David Wilson
be5c03c152
tests: many test fixes. Travis broken for >1 week.
7 years ago
David Wilson
69f58875c8
tests: more ansible fixes from recent brakage.
7 years ago
David Wilson
b20174729d
issue #199 : fix readonly_homedir test.
7 years ago
David Wilson
f98279fc95
tests: fix LRU test after splitting up Connection class.
...
The module the connection class is now loaded as is
"ansible.plugins.connection.mitogen_ssh", etc., which breaks the test.
Instead, check if the connection is an instance of the base Connection
class.
7 years ago
David Wilson
f9e1905ec6
issue #199 : ansible: stop writing temp files for new style modules
...
While adding support for non-new style module types, NewStyleRunner
began writing modules to a temporary file, and sys.argv was patched to
actually include the script filename. The argv change was never required
to fix any particular bug, and a search of the standard modules reveals
no argv users. Update argv[0] to be '', like an interactive interpreter
would have.
While fixing #210 , new style runner began setting __file__ to the
temporary file path in order to allow apt.py to discover the Ansiballz
temporary directory. 5 out of 1,516 standard modules follow this
pattern, but in each case, none actually attempt to access __file__,
they just call dirname on it. Therefore do not write the contents of
file, simply set it to the path as it would exist, within a real
temporary directory.
Finally move temporary directory creation out of runner and into target.
Now a single directory exists for the duration of a run, and is emptied
by runner.py as necessary after each task invocation.
This could be further extended to stop rewriting non-new-style modules
in a with_items loop, but that's another step.
Finally the last bullet point in the documentation almost isn't a lie
again.
7 years ago
David Wilson
6109de51a0
tests: Ansible SSH timeout test
...
Also change Docker image to new 'mitogen' organization.
7 years ago
David Wilson
b7fe0e09f4
tests: su integration test.
7 years ago
David Wilson
3203846708
issue #239 : ansible: ignore remote_tmp in new style runner.
7 years ago
David Wilson
baa4e75526
tests: tidy up thread_pileup for use as a toy benchmark.
7 years ago
David Wilson
fa4746f656
ansible: add connection delegation test targets.
...
For command line use only, no integration tests yet.
7 years ago
David Wilson
962ba862e9
tests: use test-targets group, not all group
7 years ago
David Wilson
86c9978e09
Ensure mod.__file__ is set; closes #210 .
7 years ago
David Wilson
6541779dd6
tests: import Ansible file transfer benchmark
7 years ago
David Wilson
8c3b1fcf15
ansible: disable script interpreter processing for new-style
...
Re: #199
7 years ago
David Wilson
2f02b5c0b1
ansible: prevent Unicode strings leaking into sys.argv
...
The module name comes from YAML via Jinja2.. it's always Unicode. Mixing
it into a temporary directory name produces a Unicode tempdir name,
which ends up in sys.argv via TemporaryArgv.
7 years ago
David Wilson
dc4433ace6
issue #202 : ansible: forget all dependent contexts on Stream disconnect
...
This is a partial fix, there are still at least 2 cases needing covered:
- In-progress connections must have CallError or similar sent to any
waiters
- Once connection delegation exists, it is possible for other worker
processes to be active (and in any step in the process), trying to
communicate with a context that we know can no longer be communicated
with. The solution to that isn't clear yet.
Additionally ensure root has /bin/bash shell in both Docker images.
7 years ago
David Wilson
e7831a801f
issue #195 : handle non-ASCII scripts in runner.py.
7 years ago
David Wilson
85e1f5f515
ansible: remove JobResultService, more compatible async jobs; closes #191 .
...
And by "compatible" I mean "terrible". This does not implement async job
timeouts, but I'm not going to bother, upstream async implementation is
so buggy and inconsistent it resists even having its behaviour captured
in tests.
7 years ago
David Wilson
6ad18b6719
issue #191 : move async tests to their own category
7 years ago
David Wilson
fca22efe90
tests: enable profile_tasks callback plugin
7 years ago
David Wilson
b91785c9a1
tests: workaround for issue_109
7 years ago
David Wilson
ce260933d9
tests: consistent play naming everywhere
7 years ago
David Wilson
d827bdb848
tests: fixes to get regression/ running under vanilla Ansible
7 years ago
David Wilson
b882b78d35
tests: clean up remaining reg tests
...
Delete some that are impossible to detect, fix up the remainder to
detect the condition they describe.
7 years ago
David Wilson
aeeba54d96
tests: better regression test for issue #109
7 years ago
David Wilson
f4d791662e
ansible: better planner logging, try again
7 years ago
David Wilson
b4bb1c5a2a
tests: fix suspected readdir() ordering issue (!)
7 years ago
David Wilson
0046a3de0b
tests: insert debug print for travis :(
7 years ago
David Wilson
ef47347cdf
tests: raft of fixes for vanilla Ansible
7 years ago
David Wilson
89e11ed25c
tests: make osx_setup a little more generic again
7 years ago
David Wilson
2c3d2db4ec
tests: fix output checks for Linux
7 years ago
David Wilson
ac80bf12f0
tests: start making osx_setup.yml more generic
7 years ago
David Wilson
16b5aa2d10
tests: disable host key checking for Paramiko.
7 years ago
David Wilson
ed915b6e63
tests: magic mitogen_shutdown_all action
...
LRU tests break when run as part of the whole suite rather than
individually, because LRU stuff is already happening for earlier tests.
7 years ago
David Wilson
ba8022424b
tests: more work to standardize user accounts.
7 years ago
David Wilson
63e2ec6406
tests: expanduser lookup runs locally
7 years ago
David Wilson
472610805f
tests: fix remote_tmp test on 2.5.x.
7 years ago
David Wilson
e2eac65347
tests: import mitogen_ansible_playbook.sh helper
7 years ago
David Wilson
9f94fb78c8
issue #159 : make LRU size configurable.
7 years ago
David Wilson
6394226722
issue #159 : verify no more than 20 tasks exist on the remote
7 years ago
David Wilson
633cd888a0
issue #182 : test for previous commit.
7 years ago
David Wilson
9acca37050
issue #159 : lots more test users.
7 years ago
David Wilson
0c803141a7
tests: fix filename.
7 years ago
David Wilson
c14f6c98d1
ansible: import osx_setup.yml.
7 years ago
David Wilson
98ee3e177a
ansible: tests for sudo behaviour; closes #143 .
7 years ago
David Wilson
3613162bc0
ansible: enable forking when requested and for async jobs.
...
Closes #105 .
References #155 .
mitogen/service.py:
Refactor services to support individually exposed methods with
different security policies for each method.
- @mitogen.service.expose() to expose a method and set its policy
- @mitogen.service.arg_spec() to validate input.
- Require basic service message format to be a tuple of
`(method, kwargs)`, where kwargs is always a dict.
- Update DeduplicatingService to match the new scheme.
ansible_mitogen/connection.py:
- Rename 'method' to 'method_name' to disambiguate it from the
service.call()'s method= argument.
ansible_mitogen/planner.py:
- Generate an ID for every job, sync or not, and fetch job results
from JobResultService rather than via the initiating function
call's return value.
- Planner subclasses now get to select whether their Runner should
run in a forked process. The base implementation requests this if
the 'mitogen_isolation_mode=fork' task variable is present.
ansible_mitogen/runner.py:
Teach runners to deliver their result via JobResultService executing
in their indirect parent mux process.
ansible_mitogen/plugins/actions/mitogen_async_status.py:
Split the implementation up into methods, and more compatibly
emulate Ansible's existing output.
ansible_mitogen/process.py:
Mux processes now host JobResultService.
ansible_mitogen/services.py:
Update existing services to the new mitogen.service scheme, and
implement JobResultService:
* listen() method for synchronous jobs. planner.invoke() registers a
Sender with the service prior to invoking the job, then sleeps
waiting for the service to write the job result to the
corresponding Receiver.
* Non-blocking get() method for implementing mitogen_async_status
action.
* Child-accessible push() method for delivering task results.
ansible_mitogen/target.py:
New helpers for spawning a virginal subprocess on startup, from
which asynchronous and mitogen_task_isolation=fork jobs are forked.
Necessary to avoid a task inheriting potentially
polluted/monkey-patched parent environment, since remaining jobs
continue to run in the original child process.
docs/ansible.rst:
Add/merge/remove some behaviours/risks.
tests/ansible/integration:
New tests for forking/async.
7 years ago
David Wilson
b247c320d2
issue #164 : rename tests for clarity
7 years ago
David Wilson
b9d4ec57b3
issue #164 : some more ActionMixin tests.
7 years ago
David Wilson
29288b236b
issue #164 : import run_ansible_playbook.sh.
7 years ago
David Wilson
db894478f8
issue #164 : make become_flags work without FOO=2 env var.
7 years ago
David Wilson
e4b49997d6
issue #164 : whups, delete checked in binaries.
7 years ago
David Wilson
d068a36c1e
issue #164 : more dir layout contortions.
...
all.yml slurps in tests from each file/subdir in the CWD.
7 years ago
David Wilson
680dc1bf68
issue #164 : basic connection loader tests.
7 years ago
David Wilson
20ecd0af02
issue #164 : fix makefile
7 years ago
David Wilson
48a0938d04
issue #164 : add action module to return active strategy.
7 years ago
David Wilson
0247561fc7
issue #164 : rename lib/modules
7 years ago
David Wilson
6aeb4e9f05
issue #164 : precisely emulate Ansible's stdio behaviour.
...
* Use identical logic to select when stdout/stderr are merged, so
'stdout', 'stdout_lines', 'stderr', 'stderr_lines' contain the same
output before/after the extension.
* When stdout/stderr are merged, synthesize carriage returns just like
the TTY layer.
* Mimic the SSH connection multiplexing message on stderr. Not really
for user code, but so compare_output_test.sh needs fewer fixups.
7 years ago
David Wilson
c5ca2e87ea
issue #164 : stop tests on first failure
7 years ago
David Wilson
26cc0f2724
issue #164 : fix remote_tmp handling on <2.5
7 years ago
David Wilson
3ebe600389
issue #164 : convert "examples" into actual tests
...
- Add new Travis mode, "ansible_tests.sh" that runs
integrations/all.yml. Slowly build this up over time to cover more of
the existing junk.
- Add basic assertions on the output of the existing runner__* files.
- Wire up 2.4.3/2.5.0 jobs in Travis.
7 years ago
David Wilson
ae75a0ca8c
issue #164 : rearrange playbooks a little more
7 years ago
David Wilson
563639961d
issue #164 : dir structure is gross, but at least tab completion works :>
7 years ago
David Wilson
49aa8834b0
issue #164 : split "examples" out into regression/integration tests.
7 years ago