Commit Graph

731 Commits

Author SHA1 Message Date
David Wilson 16b64392e2 issue #106: support WANT_JSON modules. 2018-04-01 18:19:34 +01:00
David Wilson df6daaf3c4 issue #106: working/semantically compatible binary support. 2018-04-01 16:39:10 +01:00
David Wilson 23366b4580 issue #106: import binary modules. 2018-04-01 16:39:10 +01:00
David Wilson 0dd5e04eae issue #106: partially working BinaryRunner/Planner.
Refactor planner.py to look a lot more like runner.py. This 'structural
cutpaste' looks messy -- probably we can simplify this code, even though
it's pretty simple already.
2018-04-01 16:39:10 +01:00
David Wilson 1a040cf5c0 issue #106: get FileService working. 2018-04-01 16:39:10 +01:00
David Wilson 6aac37e157 issue #106: allow any context to contact FileService.
Also fix privilege check for register command.
2018-04-01 16:39:10 +01:00
David Wilson 8fffb34752 issue #106: helpers.get_file(), command logging.
* Add helpers.get_file() that calls back up into FileService as
  necessary. This is a stopgap measure.

* Add logging to exec_args() to simplify debugging of binary runners.
2018-04-01 16:39:10 +01:00
David Wilson dbaca05ac8 issue #106: Runner module docstring 2018-04-01 16:39:10 +01:00
David Wilson f6d436783c issue #106: add Service.__repr__, reply to bad calls
* Don't hang callers that fail validate_args(), instead tell them their
  message was rejected.
* Add Service.repr for nicer logging.
2018-04-01 16:39:10 +01:00
David Wilson 8f175bf7a8 issue #106: _unpickle_context() did not allow nameless contexts.
These are generated by any child calling .context_by_id() without
previously knowing the context's name, such as Contexts set in
ExternalContext.master and ExternalContext.parent.
2018-04-01 16:39:10 +01:00
David Wilson 17bfb596d0 issue #106: mitogen.service missing from modules list. 2018-04-01 16:39:10 +01:00
David Wilson 504032e6e8 issue #106: has_parent_authority should accept own context ID.
When a stream (such as unix.connect()) has its auth_id set to the
current context's, we should allow those requests too, since the request
is working with the privilege of the current context.
2018-04-01 16:39:10 +01:00
David Wilson 43e4f5009a issue #106: remove 2 needless Invocation attributes. 2018-04-01 16:39:10 +01:00
David Wilson 2470f486e1 issue 106: ansible: make the context name available
For use later to track/deduplicate streaming uploads to targets.
2018-04-01 16:39:10 +01:00
David Wilson de27fb3a28 issue #174: test all io_op() logic. 2018-04-01 16:39:10 +01:00
David Wilson c891ab078a issue #106: working old-style native module execution
Still abusing Python import mechanism, but one big step closer to
eliminating that.
2018-04-01 16:39:10 +01:00
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 17b94c56f4 issue #177: import reproduction. 2018-04-01 15:59:58 +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
dw 772e229b7d
Merge pull request #180 from moreati/procedure-033-03
Switch to using unit2 test runner
2018-04-01 10:31:49 +01:00
Alex Willmer 0896e95e2c Set strict mode in test script
Exits with an error if a command is not found, any undefined variable is
used, or a command in a pipeline returns an error.

Should make Travis detect failed tests.
2018-04-01 02:11:37 +01:00
Alex Willmer f92d88c241 travis: Cache wheels and other pip artifacts
Should speedup builds
2018-04-01 02:05:36 +01:00
Alex Willmer 94a082177d tests: Add coverage as a dev requirement 2018-04-01 02:04:41 +01:00
Alex Willmer b5848e7116 Ignore compiled Python files 2018-04-01 01:45:22 +01:00
Alex Willmer 5e66f6c4fa Ignore hidden directory containing tox environments 2018-04-01 01:44:29 +01:00
Alex Willmer dc60f05a40 tests: Switch to unit2 test runner, with coverage
This means test files are imported as modules, not run as scripts. THey
can still be run individually if so desired. Test coverage is measured,
and an html report generated in htmlcov/. Test cases are automativally
discovered, so they need not be listed twice. An overall
passed/failed/skipped summary is printed, rather than for each file.

Arguments passed to ./test are passed on to unit2. For instance

    ./test -v

will print each test name as it is run.
2018-04-01 01:43:45 +01:00
Alex Willmer 7b8fef5284 tests: Make the tests directory an importable package
Required for test discovery by e.g. unit2, pytest
2018-04-01 01:32:13 +01:00
Alex Willmer a22294dda9 call_function_test: Fix assumption that we run as a script 2018-04-01 01:23:13 +01:00
Alex Willmer 0dcaeb21a2 master_test: Don't assume __file__ points to source code
When run under a test runner the unit tests are imported as modules.
This triggers .pyc generation, after which __file__ resolves to the .pyc
file.
2018-04-01 01:21:42 +01:00
Alex Willmer 841c2b13a1 fakessh_test: Apply timeout decorators to rsync tests
timeoutcontext.timeout uses SIGALRM, hence it will only work on Unix
like operating systems.
2018-04-01 01:17:29 +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
David Wilson 6958b8ff09 docs: More getting started. 2018-03-30 13:05:47 +05:45
David Wilson 76ac49dbdc examples: more comments. 2018-03-30 12:50:12 +05:45
David Wilson 9eccfb4972 examples: add top-level doc 2018-03-30 12:41:53 +05:45
David Wilson a68e833463 examples: add a ton of comments to mitop.py. 2018-03-30 12:35:41 +05:45
dw f440e88f2f
Merge pull request #175 from wezm/become-pass
Use become_pass for sudo password
2018-03-30 12:01:21 +05:45
Wesley Moore 3d5bbb9a63 Use become_pass for sudo password 2018-03-30 13:00:43 +11:00
David Wilson 682a4ca8d4 issue #174: reproduction. 2018-03-30 02:31:14 +05:45
David Wilson fa271fcc8e issue #174: select.error interface differs to OSError
Only OSError got the magical attribute treatment, select.error still
behaves like a tuple.
2018-03-30 02:25:09 +05:45
David Wilson ffdd192397 issue #155: must catch select.error too.
Regression caused by merging exception handlers in 9079176.
2018-03-30 02:22:07 +05:45
David Wilson 8674ec42dd docs: add new risk 2018-03-30 01:37:17 +05:45
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 bbb0f1bbd8 issue #155: fix double-fork behaviour and test it this time. 2018-03-29 23:57:24 +05:45
David Wilson 4c433dbed1 parent_test: Add explanation. 2018-03-29 23:49:45 +05:45
David Wilson bde1778373 tests: merge tty_create_child() test into parent_test and fix hang 2018-03-29 23:36:50 +05:45