Commit Graph

595 Commits (cab0b2cb9a9e7a8331cd1162cbeea8b198a8fa48)

Author SHA1 Message Date
David Wilson 44d6ca771a issue #426: fix local/delegate_to issue 6 years ago
David Wilson 934d8ac139 issue #426: fix 2->3 issue in plain_old_module. 6 years ago
David Wilson 3206d59c87 issue #426: teach DockerMixin to allow selecting interpreter 6 years ago
David Wilson f1661abe4e tests: make IterReadTest a little more robust 6 years ago
David Wilson bef4b0c962 tests: fix copy.yml title 6 years ago
David Wilson 2a6dbb038f Pythonize, split out and parallelize all jobs. 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 8f1f3de123 tests: Pythonize env_wrapper.sh, clean up local_test 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 4b61e5af02 tests: run FD and thread checks on every test case.
Trying to hunt down weirdness on Azure.
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 b29c8eaf2a tests: allow passing -vvv to build_docker_images. 6 years ago
David Wilson f87553b165 tests: must set ansible_become_pass in synchronize.yml. 6 years ago
David Wilson 816da64df5 tests: show task args in image_prep 6 years ago
David Wilson 174b685d16 tests: CentOS 6 lacks %wheel in sudo by default. 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 cd6486b0e9 tests: fix more DisconnectTest raciness. 6 years ago
David Wilson e180d310b5 tests: fix fork_test compat on 3.x. 6 years ago
David Wilson 3f46c9569c tests: 3.x syntax compat for tests/data/stubs/ 6 years ago
David Wilson 27a4001f4f tests: handle NameError when faulthandler is not installed. 6 years ago
David Wilson 5482b4d528 tests: poller_test 3.x fix. 6 years ago
David Wilson 3836c6a220 tests/bench: run roundtrip.py a ton more to reduce variance 6 years ago
David Wilson d1b7c232bf tests: image_prep needs sudo 6 years ago
David Wilson cf97932fad core: dead messages have optional body, use it everywhere; closes #387. 6 years ago
David Wilson 802de6a8d5 issue #406: clean up DiagLogStream handling and connect() failure.
When Stream.connect() fails, have it just use on_disconnect(). Now there
is a single disconnect cleanup path.

Remove cutpasted DiagLogStream setup/destruction, and move it into the
base class (temporarily), and only manage the lifetime of its underlying
FD via Side.close().  This cures another EBADF failure.
6 years ago
David Wilson e01c8f2891 issue #406: 3.x syntax fixes. 6 years ago
David Wilson 003526ef7b issue #406: fix thread leaks in unix_test too. 6 years ago
David Wilson eae1bdba4e tests: make minify_test print something useful on failure 6 years ago
David Wilson 802efa6ea6 issue #406: ensure broker_test waits for broker exit. 6 years ago
David Wilson 175fc377d2 tests: remove hard-wired SSL paths from fork_test. 6 years ago
David Wilson 3da4b1a420 tests: verify only main/watcher threads exist at teardown 6 years ago
David Wilson b0dd628f07 issue #406: parent_test fixes, NameError in log_fd_calls(). 6 years ago
David Wilson 6ff1e001da issue #406: log socketpair calls too. 6 years ago
David Wilson 70c550f50c issue #406: close stdout pipes in parent_test 6 years ago
David Wilson 9b3cb55a8b issue #4096: import log_fd_calls() helper. 6 years ago
David Wilson 8a0b343760 issue #406: test for FD leak after every TestCase 6 years ago
David Wilson e9a6e4c3d2 issue #406: add test. 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 5be9a55bf4 core: allow Context to be pickled by non-Mitogen pickler. 6 years ago
David Wilson c148c869e6 issue #76, #370: add disconnect cleanup test 6 years ago
David Wilson aeec2b5054 tests: pad out minify_test to verify all internal modules 6 years ago
David Wilson f2d288bb1e tests: ensure minify() result can be compiled for all of core. 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 fcdf4a0f35 Import missing stub-sudo.py. 6 years ago
David Wilson a6dd8bb2d0 issue #409: stub test for mitogen_sudo method. 6 years ago
David Wilson fadb9181bc issue #410: support sudo --user and SELinux options, add stub test. 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 429832b8f7 issue #409: add kubectl stub and constructor test. 6 years ago
David Wilson c51b67b863 issue #409: add test stubs to the PATH in run_ansible_playbook.py 6 years ago
David Wilson 51658fdd66 issue #409: name-prefix stubs so they can be added to PATH
Allows us to reference them from playbooks easily.
6 years ago
David Wilson 5b916fc556 issue #409: Pythonize run_ansible_playbook.sh
And add git_basedir extra variable.
6 years ago
David Wilson 48e8f1f7aa tests: Pythonize write_all_consumer.py 6 years ago
David Wilson f53e7dd637 tests: Pythonize another shell script. 6 years ago
David Wilson 332d128651 tests: get rid of some more shell 6 years ago
David Wilson 71f9e84ab3 Add EOF error hints for LXC/LXD; closes #373. 6 years ago
David Wilson d5a8293c91 issue #333: closure & data distinctness tests. 6 years ago
David Wilson 73cda2994f issue #333: add versioning, initial batch of poller tests
Now poller is start enough to know a start_receive() during an iteration
does not cause events yielded by that iteration to associate with the
wrong descriptor.

These changes are tangentially related to the associated ticket, but
event versioning is still the underlying issue.
6 years ago
David Wilson 96f000c5ea ansible: tilde-expand SSH key before passing to SSH; closes #334. 6 years ago
David Wilson 9aa76cf9ce tests: better Docker test key comment. 6 years ago
David Wilson 1cbff1011e core: send dead message if max message size exceeded; closes #405 6 years ago
David Wilson 1eae594e32 ssh: fix check_host_keys="accept" and test; closes #411
Add real accept/enforce tests.
6 years ago
David Wilson 16ca111ebd ssh: better OpenSSH 7.5+ permission denied handling
The user@host prefix in new-style OpenSSH messages unfortunately takes
the host part from ~/.ssh/config and friends. There is no way to know
which hostname will appear in this string without parsing the OpenSSH
config, nor which username will appear.

Instead just regex it.

Add SSH stub modes to print the new/old errors and add some simple
tests.

This extends the work done in b9112a9cbb
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 53d882dcbd tests: activate faulthandler if available 6 years ago
David Wilson 9ec360c26d core: split out & extend Broker.sync_call() 6 years ago
David Wilson 592d6fc8d3 tests: fix CaptureStreamHandler on 2.6. 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 b70c57a2cb tests: fix wstatus_to_str() test on 3.x
Now they use enums.
6 years ago
David Wilson c1c7e5171d tests: fix fork FD sharing in unix_test. 6 years ago
David Wilson 0cf6019bac tests: rename one more stubs/ssh.py reference. 6 years ago
David Wilson 778892eaaa issue #76: call_function_test fix. 6 years ago
David Wilson a7d635dff8 tests: import ara_env helper script. 6 years ago
David Wilson 4e3830d75e tests: add basic unix_test.py. 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 36e5ca4115 tests: import missing main_with_no_exec_guard.py. 6 years ago
David Wilson 3943634fa6 tests: import bench/large_messages.py. 6 years ago
David Wilson 73055150f3 tests: move stub tools, into subdir, import docker_test. 6 years ago
David Wilson 7647c95f34 issue #76: add one more test for indirect siblings 6 years ago
David Wilson 431051f69b issue #76: parent: broadcast DEL_ROUTE to interested parties
Now rather than simply propagate DEL_ROUTE upwards towards the parent,
we broadcast it downward to any stream that ever sent a message toward
any of the routes that have just become disconnected.
6 years ago
David Wilson babe3eec31 issue #76: record egress context IDs
Used in a subsequent change to broadcast DEL_ROUTE to potentially
interested children.
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 e45e5d3e06 tests: Document Python versions in build_docker_images.py 6 years ago
David Wilson 3aa5c4c53d issue #373: parse the child process wait status
Don't log the raw waitpid() result, convert it to a useful string first.
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 4146648759 master: log error an refuse __main__ import if no guard detected.
Closes #366.
6 years ago
David Wilson 6dddef0c45 Make image_prep work on Ubuntu. 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
dw 1a5dadf732
Merge pull request #383 from moreati/pytz-2018.05
Update pytz to 2018.05 (needed by babel 2.6.0)
6 years ago
Alex Willmer 03be0afeeb tests: Add tests of mitogen.utils.cast() 6 years ago
Alex Willmer 9fbcb67665 Update pytz to 2018.05 (needed by babel 2.6.0)
On Ubuntu 18.04 (others not tested) installing the dev requirements
fails with the following error

babel 2.6.0 has requirement pytz>=0a, but you'll have pytz 2012d which
is incompatible.

Despite the comment in dev_requirements.txt pytz-2012d is not the most
recent version to support Python 2.6. In fact the latest release of pytz
supports Python 2.6.
6 years ago
dw 4356fdf027
Merge pull request #376 from Yannig/kubectl
Kubernetes connection support for mitogen.
6 years ago
Yannig Perré 6828926a36 Kubernetes connection support for mitogen. 6 years ago
Brian Candler d1c84552ec Use `lxc exec --mode=noninteractive` which is more widely compatible
Closes #371
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 7cd4d0828d tests: data/fakessh.py 3.x fixes. 6 years ago
David Wilson 24a44499ca tests: verify Connection.put_file() for small/large files. 6 years ago
David Wilson 4d3873c784 core: call chains v3: abstract it into a new CallChain class. 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 a3957d6aaf parent: add Context.forget_chain(). 6 years ago
David Wilson 42b1b3d286 core: support mitogen_chain dispatcher option. 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 7d62a53264 issue #337: ssh: disabling PTYs round 2: make it automatic. 6 years ago
David Wilson 5004207705 issue #337: ssh: support disabling PTY allocation
`.ssh(batch_mode=True)`
6 years ago