Commit Graph

698 Commits

Author SHA1 Message Date
David Wilson 6859186069 tests: disable affinity_test on Travis :/ 2019-02-09 22:45:50 +00:00
David Wilson 19ae7b7a84 issue #508: fix responder stats test due to new smaller parent.py. 2019-02-09 22:20:54 +00:00
David Wilson 953a910881 issue #508: tests: skip minify_test Py2.4/2.5 for profiler.py. 2019-02-09 22:20:48 +00:00
David Wilson 263f530496 tests: fix fallout from 36fb318adf5c56e729296c3efce84f4dd75ced4e 2019-02-09 22:20:47 +00:00
David Wilson 8026e54b9b tests: move affinity_test to Ansible tests. 2019-02-09 22:20:47 +00:00
David Wilson e703522010 issue #505: docs: add new detail graph for one scenario. 2019-02-09 22:20:47 +00:00
David Wilson b2bae9deed tests: pad out localhost-* 2019-02-09 22:20:47 +00:00
David Wilson fda7d5c276 bench: tidy up and cpu-pin some more files. 2019-02-09 22:20:40 +00:00
David Wilson 29adfbea59 tests: add localhost-x100 2019-02-09 22:20:40 +00:00
David Wilson 0e193c223c issue #508: master: minify all Mitogen/ansible_mitogen sources.
Minify-safe files are marked with a magical "# !mitogen: minify_safe"
comment anywhere in the file, which activates the minifier. The result
is naturally cached by ModuleResponder, therefore lru_cache is gone too.

Given:

    import os, mitogen
    @mitogen.main()
    def main(router):
        c = router.ssh(hostname='k3')
        c.call(os.getpid)
        router.sudo(via=c)

SSH footprint drops from 56.2 KiB to 42.75 KiB (-23.9%)
Ansible "shell: hostname" drops 149.26 KiB to 117.42 KiB (-21.3%)
2019-02-09 22:20:34 +00:00
David Wilson b72d139bd2 tests: make soak testing work reliably on vanilla.
It claims to disable host key checking, but it doesn't.
2019-02-09 22:04:19 +00:00
David Wilson b59a47aecb tests: make mitogen_shutdown_all be run_once by default. 2019-02-09 22:04:18 +00:00
David Wilson e77048ec2d utils: pad out reset_affinity() and integrate with detach_popen() 2019-02-09 22:04:18 +00:00
David Wilson 2209d880e4 ansible/bench: make end= configurable. 2019-02-09 22:04:18 +00:00
David Wilson 954f874085 issue #527: catch new-style module tracebacks like vanilla. 2019-02-09 19:43:35 +00:00
David Wilson 60fe3fd6f5 issue #429: enable en_US locale to unbreak debops test. 2019-01-29 06:01:48 +00:00
David Wilson 7531af3ee0 issue #499: fix another mind-numbingly stupid vanilla inconsistency 2019-01-29 06:01:48 +00:00
David Wilson a40946297f issue #497: do our best to cope with crap upstream code 2019-01-29 06:01:48 +00:00
David Wilson 2fdbd0cfcd ssh: fix test to match updated log format. 2019-01-29 06:01:48 +00:00
David Wilson 6e9f8e829e issue #429: teach sudo about every know i18n password string. 2019-01-29 06:01:48 +00:00
David Wilson 960e505f07 issue #429: install i18n-related bits in test images. 2019-01-29 06:01:48 +00:00
David Wilson eb93f82d05 tests: ensure file is closed in connection_test. 2019-01-29 06:01:48 +00:00
David Wilson 73979043ad gcloud: small updates 2019-01-29 06:01:48 +00:00
David Wilson 59068ca955 tests: give ansible/gcloud/ its own requirements file. 2019-01-29 06:01:48 +00:00
David Wilson 9df314f9c5 issue #499: another totally moronic implementation difference 2019-01-29 03:55:18 +00:00
David Wilson 53794469a0 issue #499: disable new test on vanilla. 2019-01-29 03:26:21 +00:00
David Wilson a1121c5a84 issue #499: respect C.BECOME_ALLOW_SAME_USER. 2019-01-29 02:53:21 +00:00
David Wilson b254051416 ansible: add test to ensure UNIX socket is cleaned on exit; closes #488. 2019-01-27 19:29:16 +00:00
David Wilson 628e8f4466 Bump PyYaML to a 3.7-compatible version. 2019-01-27 19:23:44 +00:00
David Wilson 3435f24e8d issue #479: ModuleFinder special case for __main__ on Py3.x. 2019-01-27 16:17:56 +00:00
David Wilson a7da1b048b tests: just disable the test. 2019-01-27 06:37:06 +00:00
David Wilson cdb1434809 tests: hopefully fix this dumb test for the final time 2019-01-27 06:21:14 +00:00
David Wilson a67cc85bdb issue #477: use MITOGEN_INVENTORY_FILE everywhere. 2019-01-27 05:45:24 +00:00
David Wilson ea23d7fd54 issue #477: hacksmash weird 2.3 inventory_file var issue. 2019-01-27 05:31:26 +00:00
David Wilson 9aff8edf50 issue #477: one more conditional test. 2019-01-27 04:44:50 +00:00
David Wilson e133b8dbb1 issue #477: some more conditional tests. 2019-01-27 04:43:12 +00:00
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.
2019-01-27 04:27:41 +00:00
David Wilson c61498202e issue #477: use assert_equal for nicer debug. 2019-01-27 03:50:41 +00:00
David Wilson 5e4066bb64 issue #477: add Connection.homedir test. 2019-01-27 03:30:30 +00:00
David Wilson 8385c38cff issue #477: paper over Ansible 2.3 flag handling difference 2019-01-27 02:30:59 +00:00
David Wilson b67e4e118e issue #477: update forking_correct_parent for subprocess isolation 2019-01-27 02:16:43 +00:00
David Wilson abb0319bbb issue #477: get rid of perl JSON module requirement. 2019-01-27 02:03:37 +00:00
David Wilson 7d1b0e0807 issue #477: Ansible 2.3 did not support gather_facts min subset. 2019-01-27 02:03:15 +00:00
David Wilson b0ec398755 issue #477: CentOS 5 image requires perl installed too. 2019-01-27 01:33:44 +00:00
David Wilson 0a9c3dcc40 issue #477: missing stub-su.py from 137f5fa6c5 2019-01-27 01:25:12 +00:00
David Wilson 2f087859bc issue #477: 2.4-compatible syntax. 2019-01-27 01:22:14 +00:00
David Wilson 7abe5ff564 issue #477: clearing glibc caches is not possible on Py2.4. 2019-01-27 01:21:37 +00:00
David Wilson 9377fed96b issue #477: install simplejson for vanilla tests. 2019-01-27 01:13:58 +00:00
David Wilson 137f5fa6c5 issue #477: add basic su_test and Py2.4 polyfill. 2019-01-27 00:56:19 +00:00
David Wilson d9efeb950a issue #477: import updated Python build scripts
Now using Docker to get correct libc.
2019-01-27 00:37:13 +00:00
David Wilson ba59b80bea issue #477: initial Python 2.4.6 build for CI. 2019-01-26 22:51:41 +00:00
David Wilson 217e65dcbc issue #477: enable git-lfs for tests/data/*.tar.bz2. 2019-01-26 22:02:54 +00:00
David Wilson ffb1b842db issue #477: import build script for Python 2.4.6. 2019-01-26 22:02:14 +00:00
David Wilson 767331d76f issue #477: disable Django parts of module_finder_test on 2.4. 2019-01-26 20:49:58 +00:00
David Wilson b6634194af issue #477: clean up globals after unix_test. 2019-01-26 20:39:24 +00:00
David Wilson 30d933b299 issue #477: remove unused pytest bits from importer_test. 2019-01-26 20:27:01 +00:00
David Wilson 69c27a33fc issue #477: remove fork use from unix_test. 2019-01-26 20:26:24 +00:00
David Wilson fedd294f96 issue #485: import new throuhgput bench 2019-01-26 19:14:28 +00:00
David Wilson 6281f231cb issue #477: more fork removal 2019-01-26 03:51:48 +00:00
David Wilson 25bffc424d issue #477: util/fakessh/two_three_compat fixes. 2019-01-26 02:56:35 +00:00
David Wilson 61297c24e5 issue #477: call_function_test fixes for 2.4. 2019-01-26 02:46:32 +00:00
David Wilson dd30a907ce issue #477: promote setup_gil() to mitogen.utils
This is since ansible_mitogen/process.py is 2.6-only, and I want to use
setup_gil() in 2.4 code.
2019-01-26 02:06:33 +00:00
David Wilson cef7c1ccc7 issue #477: fix lxc_test any polyfill import. 2019-01-26 01:59:42 +00:00
David Wilson f420d876f2 issue #477: stop using fork in responder_test. 2019-01-26 01:46:43 +00:00
David Wilson 9d5b3d9e02 issue #477: stop using fork in service_test. 2019-01-26 01:40:02 +00:00
David Wilson 101e1c17b1 issue #477: stop using fork() in parent_test, compatible enumerate(). 2019-01-26 01:39:07 +00:00
David Wilson 9f10695ee2 issue #477: Popen.terminate() polyfill for Py2.4. 2019-01-26 01:38:03 +00:00
David Wilson b7f39f26cd issue #477: stop using .fork() in router_test, one small 2.4 fix. 2019-01-26 01:14:37 +00:00
David Wilson 9248b6d2b6 issue #477: old Py zlib did not include extended exception text. 2019-01-26 00:49:18 +00:00
David Wilson b831b4ab31 issue #477: stop using router.fork() in receiver_test 2019-01-26 00:49:02 +00:00
David Wilson a33767d31e issue #477: any() polyfill for lxc_test. 2019-01-26 00:48:38 +00:00
David Wilson 3b4f184298 issue #477: replace type(e) -> __class__ for an exception
Due to old style exception classes.
2019-01-26 00:48:06 +00:00
David Wilson b985224ff6 issue #477: old Mock does not throw side_effect exceptions from a list 2019-01-26 00:47:35 +00:00
David Wilson 6a2f88d6a3 issue #477: make mitogen.fork unsupported on Py<2.6. 2019-01-25 23:47:08 +00:00
David Wilson 51294db52d issue #477: fix 2 runner tests on Ansible 2.7. 2019-01-25 16:17:29 +00:00
David Wilson 01db198122 issue #477: fix new KwargsTest on Python 3.x. 2019-01-25 16:02:26 +00:00
David Wilson d4897d37bb issue #477: ModuleFinder now returns Unicode module names. 2019-01-25 15:56:06 +00:00
David Wilson c443244986 issue #477: Ansible 2.3 compatible regression/all.yml. 2019-01-24 20:00:44 +00:00
David Wilson 532ae92029 issue #477: Ansible 2.3 requires placeholder module for assert_equals 2019-01-24 19:58:42 +00:00
David Wilson 572db1a385 issue #477: build a CentOS 5/Py2.4 container + playbook compat fixes. 2019-01-24 19:57:24 +00:00
David Wilson 0b0ae5c971 issue #477: backport various test modules to Python 2.4. 2019-01-24 17:21:07 +00:00
David Wilson 462a8567e5 issue #477: add all() polyfill to custom_python_detect_environmnet 2019-01-24 17:13:42 +00:00
David Wilson e9706a4a09 issue #477: _update_linecache() must append newlines. 2019-01-24 16:59:24 +00:00
David Wilson 19b708e141 issue #415, #477: Poller must handle POLLHUP too.
Linux will fire poll() with simply the POLLHUP bit set even though it
was not requested, resulting in an infinite loop.
2019-01-24 15:04:56 +00:00
David Wilson 97a96f5dd8 issue #477: rename and add tests for polyfill functions. 2019-01-24 13:27:05 +00:00
David Wilson dc01f9e47e issue #477: Ansible 2.3 module output format difference.
Don't test for keys it doesn't set.
2019-01-24 04:21:44 +00:00
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.
2019-01-24 04:21:02 +00:00
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.
2019-01-24 04:17:07 +00:00
David Wilson 83aff538b3 issue #477: testlib: Py2.4 did not have BaseException. 2019-01-24 03:40:59 +00:00
David Wilson be8562ce09 issue #477: Ansible 2.3 had stricter arg spec format. 2019-01-24 03:29:49 +00:00
David Wilson 0ee8ee78b8 issue #477: Py2.4 cannot tolerate unicode kwargs. 2019-01-23 23:48:09 +00:00
David Wilson 4388e794ce issue #477: Py2.4: enumerate() may return stopped threads. 2019-01-23 21:28:50 +00:00
David Wilson 07401d767a issue #477: Python 2.4 type(exc) returns old-style instance. 2019-01-23 18:45:46 +00:00
David Wilson 2ead451277 issue #477: Python 2.4 lacked str.partition. 2019-01-23 16:37:35 +00:00
David Wilson 2ec19f2374 issue #477: Python 2.4 lacked Thread.name. 2019-01-23 16:37:22 +00:00
David Wilson 2f016b5c7b issue #477: Python 2.4 lacked context managers. 2019-01-23 16:37:00 +00:00
David Wilson 66b64cae2c issue #477: older Ansibles had no vars plugin base class. 2019-01-23 14:34:51 +00:00
David Wilson d6945443b7 tests: add exact test for issue 251; closes #251. 2019-01-22 02:52:42 +00:00
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.
2019-01-22 01:42:15 +00:00
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.
2019-01-22 00:40:32 +00:00