Mirror of mitogen
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
David Wilson caffaa79f7 issue #186: rework async/forked tasks again.
The controller must know the ID of the forked child in order to
propagate dependencies to it, so forking+starting the module run cannot
happen entirely on the target, without some additional mechanism to
wait-and-repropagate the deps as they arrive on the target.

Rework things so that init_child() also handles starting the fork parent,
and returns it along with the context's home directory in a single round
trip.

Now master knows the identity of the fork parent, it can directly create
fork children and call run_module_async() in them. This necessitates 2
roundtrips to start an asynchronous task.

This whole thing sucks and entirely needs simplified, but for now things
almost work, so keeping it.

connection.py:
  * Expect ContextService to return the entire dict return value of
    init_child(). Store the fork_contxt from the return value.

planner.py:
  * Rework Planner to store the invocation as an instance attribute, to
    simplify method calls.
  * Add Planner.get_push_files() and Planner.get_module_deps().
  * Add _propagate_deps() which takes a Planner and ensures the deps it
    describes are sent to a (non forked or forked) context.
  * Move async task logic out of target.py and into invoke() /
    _invoke_*().

process.py:
  * Services no longer need references to each other. planner.py handles
    sending module deps with one extra RPC.

services.py:
  * Return "init_child_result" key instead of simple "home_dir" key.
  * Get rid of dep propagation from ModuleDepService, it lives in
    planner.py now.

target.py:
  * Get rid of async task start logic, lives in planner.py now.
7 years ago
.travis tests: paralellize vanilla Ansible run. 7 years ago
ansible_mitogen issue #186: rework async/forked tasks again. 7 years ago
docs core/parent: add Context.call_no_reply(). 7 years ago
examples service: v2. Closes #213 7 years ago
mitogen issue #186: PushFileService improvements. 7 years ago
tests tests: split runner_new_process out of runner_one_job 7 years ago
.gitignore docs: fix intensely annoying _prefix, 2 years later. 7 years ago
.lgtm.yml compat: ignore LGTM checks on third party 7 years ago
.travis.yml issue #179: ec0_receive() and connect_bootstrap() should use deadline. 7 years ago
ChangeLog docs: add initial ChangeLog. 7 years ago
LICENSE Add license text everywhere. 7 years ago
README.md README: move testing bits into tests directory. 7 years ago
dev_requirements.txt tests: add debops to requirements 7 years ago
preamble_size.py Add select to preamble_size 7 years ago
run_tests issue #164: rename 'test' to 'run_tests' to avoid tab complete conflict 7 years ago
setup.cfg Ignore another annoying flake8 message. 7 years ago
setup.py setup: Add missing os import 7 years ago
tox.ini tests: Switch to unit2 test runner, with coverage 7 years ago

README.md