Commit Graph

53 Commits (3944083effe6ed3bb7593d8530bdbdb79fa5b821)

Author SHA1 Message Date
Alex Willmer a5b9a68903 docs: Convert all URLs that support https://
Excluded: graphml XML namespaces, links to e.g. Fabric homepage

Fixes #128
8 years ago
David Wilson af25def01f ansible: disable host key checking for now
Need a better story (perhaps a callback function?) for handling this.
8 years ago
David Wilson 6a1e51c87a issue #110: _transfer_data() must handle dicts and Unicode(!) 8 years ago
David Wilson ec90bf66b5 issue #110: split process state out of strategy state
The strategy is reconstructed for every playbook that is included or
specified on the command line, therefore we can't store the global
Router there without losing all our SSH connections across playbooks.
8 years ago
David Wilson 12b422db94 ansible: _transfer_data() must return remote_path.
Fixes DebOps bug.
8 years ago
David Wilson 38dc7165ec ansible: instrument every ActionMixin override. 8 years ago
David Wilson d8a68c52a1 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.
8 years ago
David Wilson 978e0621d8 ansible: log ansible_mitogen.* to -v too. 8 years ago
David Wilson 01627991f3 docs: Ansible logging update (#111) 8 years ago
David Wilson 1149decb20 Log and track PIDs everywhere for Ansible. 8 years ago
David Wilson d04144e56c ansible: implement _transfer_data for <2.4 template action 8 years ago
David Wilson d3712bbacb ansible: redirect logging into display 'framework'. closes #111 8 years ago
David Wilson d89b214164 issue #109: do exactly what Ansible does
Could it be that some empty dict magically gets populated from somewhere
invisible?
8 years ago
David Wilson 49eef4c0ad ansible: correct sys.path fixup. 8 years ago
David Wilson a39ab8fa54 ansible: basic support for ssh_args 8 years ago
David Wilson 6bc0fd494a ansible: Support ansible_ssh_private_key_file 8 years ago
David Wilson 3beddf39be ansible: limited support for become_flags, more docs. 8 years ago
David Wilson 3a3356e52e ansible: teach ActionModule to disappear for non-Mitogen Connections
Closes #103.
8 years ago
David Wilson e77c8055fb 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().
8 years ago
David Wilson 1e20887416 ansible: mixins.py docstrings. 8 years ago
David Wilson 950e9f3364 ansible: support environment: too. 8 years ago
David Wilson 7785aa4ff8 ansible: Support many more common playbook variables. 8 years ago
David Wilson b9433d9969 ansible: one more cast() call.
Need a more general solution to littering the code with this crap.
8 years ago
David Wilson d0b58d176b ansible: initial support for async jobs
Running in a thread to begin with, but this must change.
8 years ago
David Wilson 220a41a2b3 tests: import ansible_helpers_test. 8 years ago
David Wilson 4807abadc4 ansible: fix bug in apply_mode_spec(). 8 years ago
David Wilson 277b8e4172 ansible: fix some flake8 errors
* Unused imports
* Undefined names in helpers.py
* Copyright header wrapping
8 years ago
David Wilson f81fe7eb32 ansible: inverted sense of execute paramter 8 years ago
David Wilson 6442aa47d1 ansible: fix become:true with sudo:true 8 years ago
David Wilson f649318707 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.
8 years ago
David Wilson 97ff132efd 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.
8 years ago
David Wilson 102f5f9f33 ansible: correct temp file cleanup for template action. 8 years ago
David Wilson 2e3ca8dbfe ansible: don't enable_debug_logging() for sudo 8 years ago
David Wilson 9e70a32567 ansible: log call timings 8 years ago
David Wilson fa0eb21120 ansible: Ansible 2.4 compatibility. 8 years ago
David Wilson 6a7930ae48 ansible: gracefully shut down the service thread at exit. 8 years ago
David Wilson 87db049669 ansible: delete utils.py and promote cast() to mitogen.utils 8 years ago
David Wilson 9d15d1fce8 ansible: document Strategy's implementation 8 years ago
David Wilson 7c1cc064a4 ansible: migrate logging variables into utils. 8 years ago
David Wilson 038cd02136 ansible: document the connection class. 8 years ago
David Wilson 4bd40bd257 ansible: remove old action subdirectory. 8 years ago
David Wilson 41b27d969c ansible: clean up, structure and document strategy module. 8 years ago
David Wilson c175fbfaf7 ansible: handle local connections and synchronize module too. 8 years ago
David Wilson 7a56ea46ed ansible: fix syntax error 8 years ago
David Wilson 698996dc27 ansible: support local connections too 8 years ago
David Wilson 9219e9a125 ansible: support class_only=True in wrapped loader 8 years ago
David Wilson 5d9363be79 ansible: blacklist everything except our own namespaces
Farewell, pointless roundtrips, we hardly knew ye.
8 years ago
David Wilson d0fbcc0f48 ansible: generalized action module wrapping. 8 years ago
David Wilson 371a259a5e ansible: remove hard-wired UNIX socket path. 8 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.
8 years ago