Commit Graph

87 Commits

Author SHA1 Message Date
David Wilson 34a37a0ba5 issue #106: ansible: rename and significant pad out runners.py
Aiming to have working NativeRunner and BinaryRunner to begin with.
2018-04-01 16:39:10 +01:00
David Wilson 98c15942f7 issue #177: fix bizarre syntax error in last commit. 2018-04-01 16:38:22 +01:00
David Wilson cf25437019 issue #177: populate Shell.tempdir global on creating a tempdir.
It looks a lot like multiple calls to _make_tmp_path() will result in
multiple temporary directories on the remote machine, only the last of
which will be cleaned up.

We must be bug-for-bug compatible for now, so ignore the problem in the
meantime.
2018-04-01 15:58:44 +01:00
David Wilson 6eed3aa1fa issue #177: fetch and cache HOME value during connection setup.
This ensures only 1 roundtrip is required for every invocation of
_remote_expand_user().
2018-04-01 15:57:46 +01:00
David Wilson 3dc90b7618 issue #106: import skeletal planner module. 2018-03-30 16:06:23 +05:45
David Wilson 28cd17cf56 issue #106: import skeletal new executor. 2018-03-30 15:55:38 +05:45
David Wilson 9067a7b173 ansible: Move setLevel() bits together. 2018-03-30 14:42:54 +05:45
Wesley Moore 3d5bbb9a63 Use become_pass for sudo password 2018-03-30 13:00:43 +11:00
David Wilson 36e1ae15fd issue #172: prevent 'No handlers..' error being printed. 2018-03-30 01:10:30 +05:45
David Wilson e0c4d6b348 ansible: Quick fix for #172. 2018-03-30 00:13:22 +05:45
David Wilson 1ff27ada49 Add maximum message size checks. Closes #151. 2018-03-29 18:54:55 +05:45
David Wilson d6f49a003b issue #106: ansible: beginnings of FileService. 2018-03-29 13:52:19 +05:45
David Wilson cd1683b924 ansible: split environment editing into a separate class. 2018-03-27 15:03:46 +05:45
David Wilson 198bec3320 issue #168: ansible: Mitogen must also ignore the extra arguments. 2018-03-26 11:51:19 +05:45
David Wilson 26051caf4c ansible: Pass through connection loader kwargs; closes #168 2018-03-26 11:44:37 +05:45
David Wilson 749eddac71 ansible: fix flake8 errors in helpers.py. 2018-03-26 11:43:06 +05:45
David Wilson 3e384db7c2 service: add basic security policy types. 2018-03-25 13:52:07 +05:45
David Wilson 1777b8f42e ansible: use DeduplicatingService for ContextService; closes #162. 2018-03-23 09:30:41 +05:45
David Wilson 9e514240a1 issue #156: always enable microsecond logging 2018-03-20 09:12:38 +05:45
David Wilson 4d96d0c1af issue #156: fix duplicate -vvvv logging 2018-03-19 23:48:08 +05:45
David Wilson c183f06dfb issue #152: respect the Ansible-selected interpreter for local connections too. 2018-03-19 21:58:35 +05:45
David Wilson 89b0faae2f Workaround for global state in yum_repository module; closes #154. 2018-03-19 21:58:35 +05:45
David Wilson 4d8ccab2ca ansible: docstring fixes 2018-03-19 21:58:35 +05:45
David Wilson dec3af375a issue #144: ansible: increase default pool size to 16. 2018-03-19 21:58:35 +05:45
David Wilson 19632473dc issue #144: ansible: use service.Pool with default size=1. 2018-03-19 21:58:35 +05:45
David Wilson 858b01e78b issue #150: add docstrings. 2018-03-19 21:58:35 +05:45
David Wilson 6940b23013 issue #150: ansible: mark worker/child sock as CLOEXEC. 2018-03-19 21:58:35 +05:45
David Wilson 7a394dc73e ansible: allow establishment of duplicate SSH connections 2018-03-19 21:58:35 +05:45
David Wilson 86ede62241 issue #150: introduce separate connection multiplexer process
This is a work in progress.
2018-03-19 21:58:35 +05:45
David Wilson 4691ce0b95 issue #150: ansible: add basic Docker support. 2018-03-19 21:58:34 +05:45
David Wilson cd455e8c58 ansible: minor tidy up 2018-03-19 21:58:34 +05:45
David Wilson 3584084be6 issue #140: explicit Broker management, and guard against crap plug-ins.
Implement Connection.__del__, which is almost certainly going to trigger
more bugs down the line, because the state of the Connection instance is
not guranteed during __del__. Meanwhile, it is temporarily needed for
deployed-today Ansibles that have a buggy synchronize action that does
not call Connection.close().

A better approach to this would be to virtualize the guts of Connection,
and move its management to one central place where we can guarantee
resource destruction happens reliably, but that may entail another
Ansible monkey-patch to give us such a reliable hook.
2018-03-19 21:58:34 +05:45
David Wilson 88c198ea05 issue #141: copy Ansible's connect_timeout for sudo too. 2018-03-19 21:58:34 +05:45
Alex Willmer 1c20c61605 docs: Convert all URLs that support https://
Excluded: graphml XML namespaces, links to e.g. Fabric homepage

Fixes #128
2018-03-19 21:58:33 +05:45
David Wilson 7d12154a92 ansible: fix formatting 2018-03-19 21:58:33 +05:45
David Wilson 12c6e574fb ansible: disable host key checking for now
Need a better story (perhaps a callback function?) for handling this.
2018-03-19 21:58:33 +05:45
David Wilson 037bed895b issue #110: _transfer_data() must handle dicts and Unicode(!) 2018-03-19 21:58:33 +05:45
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.
2018-03-19 21:58:33 +05:45
David Wilson d34025fae9 ansible: _transfer_data() must return remote_path.
Fixes DebOps bug.
2018-03-19 21:58:33 +05:45
David Wilson a9db27d424 ansible: instrument every ActionMixin override. 2018-03-19 21:58:33 +05:45
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.
2018-03-19 21:58:33 +05:45
David Wilson 59dab72e29 ansible: log ansible_mitogen.* to -v too. 2018-03-19 21:58:33 +05:45
David Wilson 6bd4c5ead5 docs: Ansible logging update (#111) 2018-03-19 21:58:33 +05:45
David Wilson 016d47aa91 Log and track PIDs everywhere for Ansible. 2018-03-19 21:58:33 +05:45
David Wilson b63af1de85 ansible: implement _transfer_data for <2.4 template action 2018-03-19 21:58:33 +05:45
David Wilson 7ab1af043e ansible: redirect logging into display 'framework'. closes #111 2018-03-19 21:58:32 +05:45
David Wilson b527628b17 issue #109: do exactly what Ansible does
Could it be that some empty dict magically gets populated from somewhere
invisible?
2018-03-19 21:58:32 +05:45
David Wilson 485e489aa2 ansible: correct sys.path fixup. 2018-03-19 21:58:32 +05:45
David Wilson 3ddbf1a503 ansible: basic support for ssh_args 2018-03-19 21:58:32 +05:45
David Wilson da00437f1e ansible: Support ansible_ssh_private_key_file 2018-03-19 21:58:32 +05:45