David Wilson
d34025fae9
ansible: _transfer_data() must return remote_path.
...
Fixes DebOps bug.
7 years ago
David Wilson
a9db27d424
ansible: instrument every ActionMixin override.
7 years ago
David Wilson
9b7991cd45
issue #118 : log exceptions for emulated commands, fix AttributeError in helpers.py
...
Turns out Ansible can't be trusted to actually check the result
dictionary everywhere it expects one, so put the real exception text
into -vvv output too.
7 years ago
David Wilson
59dab72e29
ansible: log ansible_mitogen.* to -v too.
7 years ago
David Wilson
6bd4c5ead5
docs: Ansible logging update ( #111 )
7 years ago
David Wilson
016d47aa91
Log and track PIDs everywhere for Ansible.
7 years ago
David Wilson
b63af1de85
ansible: implement _transfer_data for <2.4 template action
7 years ago
David Wilson
7ab1af043e
ansible: redirect logging into display 'framework'. closes #111
7 years ago
David Wilson
b527628b17
issue #109 : do exactly what Ansible does
...
Could it be that some empty dict magically gets populated from somewhere
invisible?
7 years ago
David Wilson
485e489aa2
ansible: correct sys.path fixup.
7 years ago
David Wilson
3ddbf1a503
ansible: basic support for ssh_args
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
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