David Wilson
54ff1c90fa
issue #155 : add DEL_ROUTE, propagate ADD_ROUTE upwards
...
* IDs are allocated by the parent responsible for contructing a new
child, using ALLOCATE_ID to the master as necessary to allocate new ID
ranges.
* ADD_ROUTE is sent up the tree rather than down. This permits
construction of the new context to complete concurrent to parent
contexts learning about its existence. Since all streams are strictly
ordered, it's not possible for any parent to observe messages from the
new context prior to arrival of an ADD_ROUTE from the parent notifying
of its existence.
If the new context, for example, implements an Ansible async task, its
parent can start executing that without waiting for any synchronous
confirmation from any parent or the master.
* Since routes propagate up, it's no longer possible for a plain
non-parent child to ever receive ADD_ROUTE, so that code can be moved
out of core.py and into parent.py (-0.2kb compressed).
* Add a .routes attribute to parent.Stream, and respond to disconnection
signal on the stream by propagating DEL_ROUTE for any ADD_ROUTE ever
received from that stream.
* Centralize route management in a new parent.RouteMonitor class
7 years ago
David Wilson
aeeeb45ccb
docs: farewell, glorious iframe!
7 years ago
David Wilson
1ed86774b5
issue #156 : document select exception
7 years ago
David Wilson
20f5d89dfa
issue #156 : fix several more races
...
* Don't need to sleep if queue>sleepers, can just pop the right queue
element and return it.
* If queue>sleeping and waking==sleeping, no mechanism existed to ensure
a thread newly added to sleeping would ever be woken. Above change
fixes that.
* Cannot trust select() return value, scheduler might sleep us
indefinitely while put() writes a byte.
* Sleeping threads didn't pop FIFO, they popped in whatever order
scheduler woke them up. Must recover index and use it to pick the pop
index.
7 years ago
David Wilson
526b0a514b
issue #156 : prevent Latch.close() triggering spurious wakeups
7 years ago
David Wilson
18e2977baf
docs: annoying phrasing
7 years ago
David Wilson
2c22c41819
issue #156 : don't decrement `waking` if we timed out rather than being woken.
7 years ago
David Wilson
07a8994ff5
issue #156 : waking thread result dictionary with an integer.
7 years ago
David Wilson
b5398bd17f
issue #156 : docs typo
7 years ago
David Wilson
512ff77a46
issue #156 : prevent non-sleeping threads from starving sleeping threads.
...
See new docs
7 years ago
David Wilson
148ce1d703
issue #155 : increase context ID width to 32 bits
...
Needed to make large range allocations (1000 per ALLOCATE_ID roundtrip)
feasible.
7 years ago
David Wilson
071d9fbfb3
docs: tidy ansible docs.
7 years ago
David Wilson
f241eac5ce
parent: allow Python to determine its install prefix from argv[0]
...
Fixes support for virtualenv. Closes #152 .
7 years ago
David Wilson
dec3af375a
issue #144 : ansible: increase default pool size to 16.
7 years ago
David Wilson
4f361be7e7
issue #144 : teach Select() to close its latch
...
Causes all threads sleeping on the select to wake.
7 years ago
David Wilson
8aada2646c
core: support throwing LatchError in every sleeping thread
...
This is to allow Select() to be used as a generic queueing primitive
that supports graceful shutdown.
7 years ago
David Wilson
7a74bb0a39
docs: update ansible risks/differences.
7 years ago
David Wilson
bcc15987fc
docs: extra ansible paragraph.
7 years ago
David Wilson
7a394dc73e
ansible: allow establishment of duplicate SSH connections
7 years ago
David Wilson
4691ce0b95
issue #150 : ansible: add basic Docker support.
7 years ago
David Wilson
67ff762ba5
issue #139 : docs: remove note about bad buffering
7 years ago
David Wilson
d1888f1908
docs: reorder sections
7 years ago
David Wilson
014247ce66
docs: another crazy Ansible success story
7 years ago
Alex Willmer
7063d172e9
tests: Add Tox config for Python 2.6 and 2.7
...
I could not get Python 2.5 or earlier to work. Too many packages
(critically docker) don't support it.
7 years ago
David Wilson
88c198ea05
issue #141 : copy Ansible's connect_timeout for sudo too.
7 years ago
David Wilson
63c3fc623c
docs: note the semantic difference in Mitogen vs. Ansible timeouts
...
Related to issue #141 .
7 years ago
David Wilson
8f85943083
issue #139 : mention relating buffering issue
7 years ago
David Wilson
1f1d691a28
docs: update to match @moreati's code golf birdies :)
7 years ago
Alex Willmer
9aa83ef77f
docs: First round of Pickle-likes survey
7 years ago
Alex Willmer
a1fc21bb06
docs: Maximum size of pencode values
7 years ago
Alex Willmer
e24db89f3a
docs: Disco comparison
7 years ago
Alex Willmer
04f4851138
docs: multiprocessing comparison
...
Not strictly a rival, but has enough commonalities to be worth noting
7 years ago
Alex Willmer
8c227b2bdd
docs: More detail about Baker
7 years ago
Alex Willmer
e06e438228
docs: More detail about execnet
7 years ago
Alex Willmer
da58f8595d
docs: More detail about chopsticks
7 years ago
Alex Willmer
d7fbb9aef6
docs: Link compared projects to their website
...
All outgoing links checked with
```bash
cd docs
make linkcheck
```
7 years ago
Alex Willmer
4615ab1a8e
docs: Enable sphinx-autobuild
...
```bash
cd docs
make
```
to run a webserver that automatically rerenders whenever the rST is
modified.
7 years ago
David Wilson
f8c85b549f
docs: typo
7 years ago
David Wilson
dc9dda08e1
Add link to IRC; closes #116
7 years ago
David Wilson
b2a433dcc4
ssh: CompressionLevel is a v1-only option.
...
It's ignored by newer SSHes, which only pay attention to Compression.
7 years ago
Alex Willmer
1c20c61605
docs: Convert all URLs that support https://
...
Excluded: graphml XML namespaces, links to e.g. Fabric homepage
Fixes #128
7 years ago
David Wilson
089f39716e
docs: beginnings of testimonials section
7 years ago
David Wilson
500c4f419c
docs: update limitations list for Ansible.
7 years ago
David Wilson
537a263261
docs: So many typos
7 years ago
David Wilson
6bd4c5ead5
docs: Ansible logging update ( #111 )
7 years ago
David Wilson
4f352d7d4b
Pin Sphinx version
7 years ago
David Wilson
53e51c4af8
docs: update Python 3 support to match reality.
7 years ago
David Wilson
ce9a1fef26
docs: fix float
7 years ago
David Wilson
04bb5881b6
ansible: doc updates
7 years ago
David Wilson
9515291024
docs: small fix
7 years ago
David Wilson
3ddbf1a503
ansible: basic support for ssh_args
7 years ago
David Wilson
1b28252ad0
docs: get rid of "medium risk" category
7 years ago
David Wilson
da00437f1e
ansible: Support ansible_ssh_private_key_file
7 years ago
David Wilson
a87b665099
ansible: limited support for become_flags, more docs.
7 years ago
David Wilson
235e1df987
sudo: support parsing sudo flags back out into parameters
7 years ago
David Wilson
cd53023768
docs: Fix install docs now Ansible package layout changed.
7 years ago
David Wilson
03e51fdaa7
docs: mitogen.core.Latch docs
7 years ago
David Wilson
712e5dfca1
docs: fix image labels
7 years ago
David Wilson
c2793b7102
docs: import but don't link compared.rst
7 years ago
David Wilson
2ecc6f43a4
docs: Import, but do not yet link signals.rst
7 years ago
David Wilson
7cf2edc3a8
ansible: Support many more common playbook variables.
7 years ago
David Wilson
ba644e184d
docs: Split up limitations list, add warning
7 years ago
David Wilson
3183dd4147
ansible: initial support for async jobs
...
Running in a thread to begin with, but this must change.
7 years ago
David Wilson
e913c11e50
docs: new Ansible limitation
7 years ago
David Wilson
860a635500
docs: remove delegate_to limitation
7 years ago
David Wilson
dfdb7ab128
docs: more Ansible
7 years ago
David Wilson
cf7f8ff490
docs: document one more Ansible limitation
7 years ago
David Wilson
7179ca163b
docs: Replace shifty hacker dude with plebey skater dude
...
Farewell, shifty hacker dude! May your 0days be many and your
indictments be few
7 years ago
David Wilson
0c056ddbe2
docs: new Ansible limitation, add new heading
...
Some differences are eventually likely to become permanent, because the
existing behaviour is unforgiveable.
7 years ago
David Wilson
14251539cd
docs: Docker typo.
7 years ago
David Wilson
5036a9448f
Add Docker method.
7 years ago
David Wilson
77f6b31e5c
docs: more images.
7 years ago
David Wilson
56b563161b
docs: single-threaded connection is the most important limitation
7 years ago
David Wilson
c1bea0dd49
docs: store blog images for fear of laptop crash
...
There is only so much trackpad-driven yEd work one man can handle
7 years ago
David Wilson
dd9d3494e0
docs: small ansible.rst updates
7 years ago
David Wilson
ce6648da51
docs: mention CPU usage reduction
7 years ago
David Wilson
270db025c0
docs: fix up Ansible install docs.
7 years ago
David Wilson
e9060b3b7f
docs: more modest and accurate numbers for Ansible
7 years ago
David Wilson
b221eaaa10
ansible: log call timings
7 years ago
David Wilson
a817f5e9e8
docs: more marketing, add lots of drama bold.
7 years ago
David Wilson
5933723d70
docs: a little more marketing
7 years ago
David Wilson
de1b3602e5
docs: tidy up ansible.rst
7 years ago
David Wilson
52da0d882e
ansible: add a new limitation
7 years ago
David Wilson
14b5c4d504
docs: remove fixed Ansible limitation
...
The solution was that Mitogen's loader should emulate the behaviour of
ansible.executor.module_common, which restricts dependency scanning to
the ansible.module_utils namespace.
7 years ago
David Wilson
91116810a1
ansible: delete utils.py and promote cast() to mitogen.utils
7 years ago
David Wilson
18eaf14dca
ansible: migrate logging variables into utils.
7 years ago
David Wilson
10c2de2845
examples: rename playbooks for clarity.
7 years ago
David Wilson
ea126bb7e8
docs: add stats tracking
7 years ago
David Wilson
875ee29d4f
docs: initial Ansible extension docs.
7 years ago
David Wilson
bdd8648bae
ssh: enable compression by default
...
Using the same test as in 7af97c0365
,
transmitted wire bytes drops from 135,531 to 133,071 (-1.81%), while
received drops from 21,073 to 14,775 (-30%).
Combined, both changes shave 13,914 bytes (-8.6%) off aggregate
bandwidth usage.
Make it configurable as compression hurts in some scenarios.
7 years ago
David Wilson
4d940f08ae
importer: drop redundant prefix from pkg_present
...
For the 52 submodules of ansible.modules.system, this produced a 1602
byte pkg_present list. After stripping it becomes 406 bytes, and the
entire LOAD_MODULE size drops from 1988 bytes to 792 bytes (-60%).
For the 68 submodules of ansible.module_utils, 1902 bytes pkg_present
becomes 474 bytes (-75%), and LOAD_MODULE size drops from 2867 bytes to
1439 bytes (-49%).
In a simple test running Ansible's "setup" module followed by its "apt"
module, wire bytes sent drops from 140,357 to 135,531 (-3.4%).
7 years ago
David Wilson
71a6b9e32a
master: Select.all() sugar
7 years ago
David Wilson
ac4a42a43e
docs: fix Select() example for new style API.
7 years ago
Alex Willmer
a69d9650ad
Fix indentation of Router.route anchor
7 years ago
Alex Willmer
eb1ad66469
docs: Fix out of date get_data() snippets
...
As of adc8fe3aed
Receiver objects do not
have a get_data() method and Receiver.get() does not unpickle the
message.
7 years ago
David Wilson
20afa5b90c
Latch v2: combined queue + one self-pipe-per-thread
...
Turns out it is far too easy to burn through available file descriptors,
so try something else: self-pipes are per thread, and only temporarily
associated with a Lack that wishes to sleep.
Reduce pointless locking by giving Latch its own queue, and removing
Queue.Queue() use in some places.
Temporarily undo merging of of Waker and Latch, let's do this one step
at a time.
7 years ago
David Wilson
e63e9d299e
docs: add Message documentation
7 years ago
David Wilson
dd088908df
select: clean up API.
7 years ago
David Wilson
a39cd44bf2
core: add auth_id field.
7 years ago
David Wilson
07d4d799f1
Add mitogen.main() decorator mainly for docs and demo use.
7 years ago