Commit Graph

188 Commits (c6284e00e99b36e88b888e70aa1dcd70af49feaf)

Author SHA1 Message Date
David Wilson c6284e00e9 Use subprocess to start child processes; closes #185. 8 years ago
David Wilson 1e882a72c0 tests: install virtualenv in the Docker images. 8 years ago
David Wilson b91785c9a1 tests: workaround for issue_109 8 years ago
David Wilson ce260933d9 tests: consistent play naming everywhere 8 years ago
David Wilson d827bdb848 tests: fixes to get regression/ running under vanilla Ansible 8 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.
8 years ago
David Wilson aeeba54d96 tests: better regression test for issue #109 8 years ago
David Wilson f4d791662e ansible: better planner logging, try again 8 years ago
David Wilson b4bb1c5a2a tests: fix suspected readdir() ordering issue (!) 8 years ago
David Wilson 0046a3de0b tests: insert debug print for travis :( 8 years ago
David Wilson ef47347cdf tests: raft of fixes for vanilla Ansible 8 years ago
David Wilson 89e11ed25c tests: make osx_setup a little more generic again 8 years ago
David Wilson 2c3d2db4ec tests: fix output checks for Linux 8 years ago
David Wilson 7e49e73683 tests: add perl-JSON to the test images too.
Needed for the runner tests.
8 years ago
David Wilson ac80bf12f0 tests: start making osx_setup.yml more generic 8 years ago
David Wilson 16b5aa2d10 tests: disable host key checking for Paramiko. 8 years ago
David Wilson 41d2661ecb tests: fix sudo rule order. 8 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.
8 years ago
David Wilson 6614d17021 tests: explicit sudo rules to require password from sudo_nopw
This account is used on Travis. It needs to be forced to type passwords
in some cases
8 years ago
David Wilson ba8022424b tests: more work to standardize user accounts. 8 years ago
David Wilson ce6fb05d87 tests: 'fix' responder test.
Needs a complete rewrite, but this will do for now.
8 years ago
David Wilson 00aef80fac tests: /bin/bash login shell for all users. 8 years ago
David Wilson 63e2ec6406 tests: expanduser lookup runs locally 8 years ago
David Wilson 472610805f tests: fix remote_tmp test on 2.5.x. 8 years ago
David Wilson e2eac65347 tests: import mitogen_ansible_playbook.sh helper 8 years ago
David Wilson 89676b1257 tests: put unittest.skip() around fakessh tests for the time being 8 years ago
David Wilson 6390e36a4e tests: document selecting a target distribution. 8 years ago
David Wilson f203a91e1a tests: support CentOS Docker images.
- namespace & document test accounts in README.md
- standardize the password format everywhere, and ensure the passwords
  differ everywhere.
- Add MITOGEN_TEST_DISTRO environment variable.
8 years ago
David Wilson 9f94fb78c8 issue #159: make LRU size configurable. 8 years ago
David Wilson 6394226722 issue #159: verify no more than 20 tasks exist on the remote 8 years ago
David Wilson 633cd888a0 issue #182: test for previous commit. 8 years ago
David Wilson 9acca37050 issue #159: lots more test users. 8 years ago
David Wilson 0c803141a7 tests: fix filename. 8 years ago
David Wilson ec720eab1a Merge commit 'refs/pull/178/head' of github.com:dw/mitogen 8 years ago
David Wilson 3682ac6e29 fork: ensure importer handle is installed on the new router. 8 years ago
David Wilson c14f6c98d1 ansible: import osx_setup.yml. 8 years ago
David Wilson 98ee3e177a ansible: tests for sudo behaviour; closes #143. 8 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.
8 years ago
Alex Willmer 1bc32adad4 Issue #160: Cache minimize_source()
Before

```
python tests/bench/local.py
0 120.245933533
1 119.300842285
2 118.355035782
3 123.839855194
```

After

```
python tests/bench/local.py
0 66.3640499115
1 65.9508705139
2 72.4799633026
3 65.7958984375
```
8 years ago
Alex Willmer dc3f5730a2 Merge branch 'master' into eye-of-the-token-its-the-thrill-of-the-light 8 years ago
David Wilson b247c320d2 issue #164: rename tests for clarity 8 years ago
David Wilson bc4a6b39bf issue #164: teach debops_tests.sh to use SSH
Login with a non-privileged account over SSH rather than just jumping
straight in as root via Docker.
8 years ago
David Wilson 35fdd97f9a issue #164: utility to print Docker hostname for use from shell scripts. 8 years ago
David Wilson b9d4ec57b3 issue #164: some more ActionMixin tests. 8 years ago
David Wilson 29288b236b issue #164: import run_ansible_playbook.sh. 8 years ago
David Wilson db894478f8 issue #164: make become_flags work without FOO=2 env var. 8 years ago
David Wilson e4b49997d6 issue #164: whups, delete checked in binaries. 8 years ago
David Wilson d068a36c1e issue #164: more dir layout contortions.
all.yml slurps in tests from each file/subdir in the CWD.
8 years ago
David Wilson 680dc1bf68 issue #164: basic connection loader tests. 8 years ago
David Wilson 20ecd0af02 issue #164: fix makefile 8 years ago