Commit Graph

3000 Commits (ebf628a812d88b871324bfbe0561254df6281364)
 

Author SHA1 Message Date
David Wilson e36c1763bd 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.
7 years ago
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 500c4f419c docs: update limitations list for Ansible. 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 6106c27707 ansible: repro for issue #118. 7 years ago
David Wilson 59dab72e29 ansible: log ansible_mitogen.* to -v too. 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 016d47aa91 Log and track PIDs everywhere for Ansible. 7 years ago
David Wilson 28afa955a3 importer: take priority over system packages when whitelisting is enabled
Might want to de-overload the meaning of whitelist in future, but in
the meantime it works fine for Ansible and I can't think of a
whitelisting use case that would break because of it.

Closes #114.
7 years ago
David Wilson b63af1de85 ansible: implement _transfer_data for <2.4 template action 7 years ago
David Wilson 7aca02c2c7 importer: don't include related modules that are blacklisted
Cuts down on even more spam
7 years ago
David Wilson 37d38f8d9f importer: _is_stdlib_name() needed to handle relative paths
Was causing tons of log spam due to 'skipping absent related name'
7 years ago
David Wilson 6ed731c088 Minor cleanup. 7 years ago
David Wilson cf01c6b710 importer: avoid duplicate module load(!); closes #113.
Amazed this one managed to scrape through for so long. Calling
__import__ from within find_module() was causing the target module, in
this case cookielib, to be loaded *then overwritten* by a subsequent
duplicate load higher in the stack.

The result is that cookielib was loaded twice, and, per usual Python
import semantics, a reference to the partially initialized first
cookielib was installed in sys.modules while its code executed.

At the end of cookielib on 2.x, it imports _LWPCookieJar, which in turn
imports the partially built cookielib from sys.modules, then subclasses
the CookieJar from /that/ module.

Everything is wonderful. Then the call returns back up into the import
mechanism which restarts the entire process -- only this time,
_LWPCookieJar is /not/ reinitialized, so the copy in sys.modules is
still left with types pointing at the old module!

So the duplicate import creates a new CookieJar which is not the base
class of LWPCookieJar. Tada! 3 hours debugging.

This is probably a performance fix in disguise, didn't realize things
were so broken. It may also be a regression elsewhere. Urgently need to
finish the tests.
7 years ago
David Wilson 316eebbe29 examples: enable the strategy by default 7 years ago
David Wilson 7ab1af043e ansible: redirect logging into display 'framework'. closes #111 7 years ago
David Wilson 5b0b973dba importer: quieten one more warning 7 years ago
David Wilson 4f352d7d4b Pin Sphinx version 7 years ago
David Wilson 57b9d59e90 issue #113: import crash reproduction 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 23d104f73b examples: beginnings of repro for issue #109 7 years ago
David Wilson 6ec349b386 importer: quieten 'cannot find source' warning, closes #110 7 years ago
David Wilson 53e51c4af8 docs: update Python 3 support to match reality. 7 years ago
David Wilson 0ef23d8644 parent: Add hack for OS X /usr/bin/python
It's a magical switcher that needs argv[0], which we don't provide.
7 years ago
David Wilson 88508fcb61 sudo: accept -n too (issue #108) 7 years ago
David Wilson 9cfcf79f43 sudo: accept but discard -S option. fixes #108 7 years ago
David Wilson ce9a1fef26 docs: fix float 7 years ago
David Wilson 23f78ca5a2 README: move testing bits into tests directory. 7 years ago
David Wilson 04bb5881b6 ansible: doc updates 7 years ago
David Wilson 95ea75907d ssh: Fix AttributeError. 7 years ago
David Wilson 9515291024 docs: small fix 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 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 e48b6ca7f4 test.sh: make it work on OS X out of the box 7 years ago
David Wilson 1b2cbf1e00 examples: longer (but still crap) async_polling.yml 7 years ago
David Wilson e010e68874 examples: import broken non_python_modules.yml. 7 years ago
David Wilson cd53023768 docs: Fix install docs now Ansible package layout changed. 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 03e51fdaa7 docs: mitogen.core.Latch docs 7 years ago
David Wilson f5b5e4849e tests: import very basic latch_test 7 years ago
David Wilson d348a826ff master: tidy up trixxy importer syntax slightly 7 years ago
David Wilson 7080751f13 ansible: support environment: too. 7 years ago