Commit Graph

187 Commits (d4d4f46006fa1d479300e5661e2c0631bc435c01)

Author SHA1 Message Date
David Wilson a87b665099 ansible: limited support for become_flags, more docs. 7 years ago
David Wilson e0382ab2db ansible: teach ActionModule to disappear for non-Mitogen Connections
Closes #103.
7 years ago
David Wilson bde6f888a0 ansible: restructure package to avoid yet more madness
Ansible's PluginLoader makes up bullshit when it imports a module
(mostly because it has to make up something), therefore we ended up with
duplicate copies of ansible_mitogen loaded: one under
ansible.plugins.*.mitogen, and one under the canonical namespace.

Which broke isinstance().
7 years ago
David Wilson 734fb75203 ansible: mixins.py docstrings. 7 years ago
David Wilson 7080751f13 ansible: support environment: too. 7 years ago
David Wilson 7cf2edc3a8 ansible: Support many more common playbook variables. 7 years ago
David Wilson eca7805cba ansible: one more cast() call.
Need a more general solution to littering the code with this crap.
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 f6d87faf37 tests: import ansible_helpers_test. 7 years ago
David Wilson 207159cf1a ansible: fix bug in apply_mode_spec(). 7 years ago
David Wilson ff617824a1 ansible: fix some flake8 errors
* Unused imports
* Undefined names in helpers.py
* Copyright header wrapping
7 years ago
David Wilson 76e739a0ba ansible: inverted sense of execute paramter 7 years ago
David Wilson 1b090a6c0a ansible: fix become:true with sudo:true 7 years ago
David Wilson 83f2862431 ansible: _remote_chmod() / _fixup_perms2() can be called sometimes.
It's used at least by the copy module, even though the result is still
mostly a no-op. _remote_chmod() doesn't accept octal mode, it accepts
symbolic mode. So implement a symbolic parser in helpers.py.
7 years ago
David Wilson f3315fc172 ansible: better emulate _low_level_execute_command()
Still needs a ton of work to emulate argument handling, shell selection,
and output emulation in every case. Unsurprisingly, Ansible documents
none of this.
7 years ago
David Wilson cccfebec74 ansible: correct temp file cleanup for template action. 7 years ago
David Wilson 5dc2cc0726 ansible: don't enable_debug_logging() for sudo 7 years ago
David Wilson b221eaaa10 ansible: log call timings 7 years ago
David Wilson 1e9fd63343 ansible: Ansible 2.4 compatibility. 7 years ago
David Wilson 03221ee9ab ansible: gracefully shut down the service thread at exit. 7 years ago
David Wilson 91116810a1 ansible: delete utils.py and promote cast() to mitogen.utils 7 years ago
David Wilson a075cc0242 ansible: document Strategy's implementation 7 years ago
David Wilson 18eaf14dca ansible: migrate logging variables into utils. 7 years ago
David Wilson 5d8cb0f5fb ansible: document the connection class. 7 years ago
David Wilson b7f563a6f0 ansible: remove old action subdirectory. 7 years ago
David Wilson 5f45c2d49a ansible: clean up, structure and document strategy module. 7 years ago
David Wilson 84e9d42e71 ansible: handle local connections and synchronize module too. 7 years ago
David Wilson 74468abf0a ansible: fix syntax error 7 years ago
David Wilson 6e7bb4fd13 ansible: support local connections too 7 years ago
David Wilson 57894b18e0 ansible: support class_only=True in wrapped loader 7 years ago
David Wilson 54a3777ff3 ansible: blacklist everything except our own namespaces
Farewell, pointless roundtrips, we hardly knew ye.
7 years ago
David Wilson 331f77ee2b ansible: generalized action module wrapping. 7 years ago
David Wilson d13ab9a022 ansible: remove hard-wired UNIX socket path. 7 years ago
David Wilson e6a107c5aa 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 6059e0c1db ansible: support become:True and become_user 7 years ago
David Wilson ed09076bdd ansible: automatically configure connection plug-in. 7 years ago
David Wilson a35fcf44cc ansible: restructure to avoid intermediate imports 7 years ago