Commit Graph

605 Commits (038cd021363d511a58e90dfbf72a458b77c5ab89)
 

Author SHA1 Message Date
David Wilson 038cd02136 ansible: document the connection class. 7 years ago
David Wilson 4bd40bd257 ansible: remove old action subdirectory. 7 years ago
David Wilson 41b27d969c ansible: clean up, structure and document strategy module. 7 years ago
David Wilson 7fb0fa3872 examples: rename playbooks for clarity. 7 years ago
David Wilson 1ea97ea68f docs: add stats tracking 7 years ago
David Wilson e32d812769 core: add a nasty hack for Ansible modules. 7 years ago
David Wilson 6658596c38 docs: initial Ansible extension docs. 7 years ago
David Wilson c175fbfaf7 ansible: handle local connections and synchronize module too. 7 years ago
David Wilson 7f1315b3cb parent: simplify route() call
Doesn't need to go via defer() since it's always running on the broker
thread.
7 years ago
David Wilson 4144b8b417 Some gitignore extras 7 years ago
David Wilson 7e8ef4223c 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 a53e85ff69 tests: stubs for future whitelist/blacklist tests. 7 years ago
David Wilson 7a56ea46ed ansible: fix syntax error 7 years ago
David Wilson 81580c1b3f examples: add test case for local Ansible connections 7 years ago
David Wilson 3fc541ca45 docs: fix preamble_size.py after whitelist changes 7 years ago
David Wilson 7af97c0365 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 698996dc27 ansible: support local connections too 7 years ago
David Wilson 536fe9afb8 master: Select.all() sugar 7 years ago
David Wilson 28d5de77a3 ansible: we're gonna need more playbook steps 7 years ago
David Wilson 9219e9a125 ansible: support class_only=True in wrapped loader 7 years ago
David Wilson 5d9363be79 ansible: blacklist everything except our own namespaces
Farewell, pointless roundtrips, we hardly knew ye.
7 years ago
David Wilson a031f927d4 importer: share blacklist logic between master/parent 7 years ago
David Wilson 68b34fa8f2 importer: module whitelist/blacklist support
Hoped to avoid it, but it's the obvious solution for Ansible.
7 years ago
David Wilson 4a20a57552 core: wrap selects in EINTR handlers
This isn't nearly enough, but it catches the most common victim of
EINTR.
7 years ago
David Wilson 5529a4fba6 core: #39: don't call logging framework when logging is disabled
It looks ugly as sin, but this nets about a 20% drop in user CPU time,
and close to 15% increase in throughput.

The average log call is around 10 opcodes, prefixing with '_v and' costs
an extra 2, but both are simple operations, and the remaining 10 are
skipped entirely when _v or _vv are False.
7 years ago
David Wilson d0fbcc0f48 ansible: generalized action module wrapping. 7 years ago
David Wilson e5146df214 examples: import client/server.py test scripts as examples 7 years ago
David Wilson af04f24c95 docs: fix Select() example for new style API. 7 years ago
David Wilson 762dbcef3d examples: fix mitop example. 7 years ago
David Wilson fce44a5843 unix: add small explainer note until real docs exist 7 years ago
dw 3e20b5036f
Merge pull request #79 from moreati/doc-router-route
Fix indentation of Router.route anchor
7 years ago
dw feacb2bd40
Merge pull request #80 from moreati/sins-of-the-parent
Fix/split test_master tests following split of mitogen.master -> mitogen.parent
7 years ago
dw d708405126
Merge pull request #82 from moreati/imported-via-the-scenic-route
Fix TypeError while initiliazing ImporterMixin
7 years ago
dw 9d1859796c
Merge pull request #83 from moreati/msg-in-a-jar
Fix lingering references to mitogen.core.Receiver.get_data()
7 years ago
dw fdb379ba0b
Merge pull request #81 from moreati/django-unfound
FIx syntax error in FindRelatedImportsTest.test_django_db_models
7 years ago
David Wilson 0d57afc914 master: use queue-like Latch in Select() too. 7 years ago
Alex Willmer 3bf204f8d6 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
Alex Willmer c1e29783fb Fix AttributeError in mitogen.core.Context.send_await()
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 371a259a5e ansible: remove hard-wired UNIX socket path. 7 years ago
David Wilson a6324aaeb1 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
Alex Willmer 83c0111b51 Fix TypeError while initiliazing ImporterMixin
Since f44356af32 mitogen.core.Importer()
takes a Router instance.
7 years ago
Alex Willmer 49b6c586e3 FIx syntax error in FindRelatedImportsTest.test_django_db_models 7 years ago
Alex Willmer 5ba2db0794 Split IterReadTest & WriteAllTest into test_parent
This matches their respective functions under test, which now reside in
mitogen.parent.
7 years ago
Alex Willmer f114c5951b Adjust unittest for master -> parent split
Tests should now match changes in
4d31300dd0
7 years ago
Alex Willmer 631c97b143 Fix indentation of Router.route anchor 7 years ago
David Wilson 8121530144 core: replace Queue with Latch
On Python 2.x, operations on pthread objects with a timeout set actually
cause internal polling. When polling fails to yield a positive result,
it quickly backs off to a 50ms loop, which results in a huge amount of
latency throughout.

Instead, give up using Queue.Queue.get(timeout=...) and replace it with
the UNIX self-pipe trick. Knocks another 45% off my.yml in the Ansible
examples directory against a local VM.

This has the potential to burn a *lot* of file descriptors, but hell,
it's not the 1940s any more, RAM is all but infinite. I can live with
that.

This gets things down to around 75ms per playbook step, still hunting
for additional sources of latency.
7 years ago
David Wilson 1c6e529458 ansible: delete old needless host_vars directory 7 years ago
David Wilson bb662a1a0b master: helper functions to force disconnect everything 7 years ago
David Wilson 4a431a1a85 service: initial version 7 years ago
David Wilson d3e79fc240 ansible: support become:True and become_user 7 years ago