Commit Graph

758 Commits (a731be32a2ae92c590bf914d605c7f98c14ecbf3)
 

Author SHA1 Message Date
David Wilson a731be32a2 ansible: use _ansible_shell_executable in ScriptRunner.
Now we match Ansible error output and exit status. Ansible:

    $ ansible localhost -e end=2 -m custom_binary_single_null
    localhost | FAILED! => {
        "changed": false,
        "module_stderr": "Shared connection to localhost closed.\r\n",
        "module_stdout": "/bin/sh: /Users/dmw/.ansible/tmp/ansible-tmp-1522661797.42-158833651208060/custom_binary_single_null: cannot execute binary file\r\n",
        "msg": "MODULE FAILURE",
        "rc": 126
    }

Mitogen now:

    localhost | FAILED! => {
        "changed": false,
        "module_stderr": "/bin/sh: /var/folders/gw/f6w3dgy16fsg5y4kdthbqycw0000gn/T/ansible_mitogenAYF8LM-binary: cannot execute binary file\n",
        "module_stdout": "",
        "msg": "MODULE FAILURE",
        "rc": 126
    }

Previously:

    localhost | FAILED! => {
        "changed": false,
        "module_stderr": "<type 'exceptions.OSError'>: [Errno 8] Exec format error",
        "module_stdout": "",
        "msg": "MODULE FAILURE",
        "rc": 1
    }
6 years ago
David Wilson e2542c1683 "examples": add perl script regression tests. 6 years ago
David Wilson 20044ba956 "examples": import all.yml 6 years ago
David Wilson 293567e9d5 ansible: fix low_level_execute_command regression. 6 years ago
David Wilson fe9bf1d81d ansible: match Ansible behaviour when script lacks interpreter line. 6 years ago
David Wilson 1fab6d9c25 ansible: permit execve() of temporary files on Linux. 6 years ago
David Wilson d2c009f70f "examples": rename regtest.py -> compare_output_test.py
Incomplete, but getting better all the time.
6 years ago
David Wilson 8ca8b43df1 tests/bench: import "slightly more reliable time" script 6 years ago
David Wilson eb402c8bd4 tests/bench: import wrapper script used for blog charts 6 years ago
David Wilson 047458a8b3 "examples": start adding structure to regression tests. 6 years ago
David Wilson 95ca29262a examples: add README.md to playbook/. 6 years ago
David Wilson f6b82bb8db examples: add make output to gitignore. 6 years ago
David Wilson 380ef7376d ansible: Add support for free strategy. 6 years ago
David Wilson 586318c475 Fix preamble_size.py. 6 years ago
David Wilson 8425b196e7 docs: merge duplicate risks 6 years ago
David Wilson 470d8399a3 ansible: document planner.Planner. 6 years ago
David Wilson 6dcefd631a issue #106: docs: remove built-in only limitation :> 6 years ago
David Wilson c65911e811 Merge branch 'issue106' 6 years ago
David Wilson 822502125d issue #106: 2.3.x compatible get_shebang-alike. 6 years ago
David Wilson e5723e4f5f ansible: fix _make_tmp_path() regression on 2.3.x.
Due to issue #177.
6 years ago
David Wilson a5e4a6f346 issue #106: move helpers.get_bytecode() into NewStyleRunner 6 years ago
David Wilson 41ca3ad94b issue #106: delete junk from example module. 6 years ago
David Wilson 2c17d60ffd issue #106: import basic regtest.py 6 years ago
David Wilson a98a51a328 issue #106: handle JSONARGS modules too. 6 years ago
David Wilson 971b366162 issue #106: import many more test cases 6 years ago
David Wilson 8cc20856a8 issue #106: support custom new-style modules + 'reexec by default'
Rather than assume any structure about the Python code:

* Delete the exit_json/fail_json monkeypatches.
* Patch SystemExit rather than a magic monkeypatch-thrown exception
* Setup fake cStringIO stdin, stdout, stderr and return those along with
  SystemExit exit status
* Setup _ANSIBLE_ARGS as we used to, since we still want to override
  that with '{}' to prevent accidental import hangs, but also provide
  the same string via sys.stdin.
* Compile the module bytecode once and re-execute it for every
  invocation. May change this back again later, once some benchmarks are
  done.
* Remove the fixups stuff for now, it's handled by ^ above.

Should support any "somewhat new style" Python module, including those
that just give up and dump stuff to stdout directly.
6 years ago
David Wilson a954d54644 issue #106: support old-style too. 6 years ago
David Wilson 16b64392e2 issue #106: support WANT_JSON modules. 6 years ago
David Wilson df6daaf3c4 issue #106: working/semantically compatible binary support. 6 years ago
David Wilson 23366b4580 issue #106: import binary modules. 6 years ago
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.
6 years ago
David Wilson 1a040cf5c0 issue #106: get FileService working. 6 years ago
David Wilson 6aac37e157 issue #106: allow any context to contact FileService.
Also fix privilege check for register command.
6 years ago
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.
6 years ago
David Wilson dbaca05ac8 issue #106: Runner module docstring 6 years ago
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.
6 years ago
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.
6 years ago
David Wilson 17bfb596d0 issue #106: mitogen.service missing from modules list. 6 years ago
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.
6 years ago
David Wilson 43e4f5009a issue #106: remove 2 needless Invocation attributes. 6 years ago
David Wilson 2470f486e1 issue 106: ansible: make the context name available
For use later to track/deduplicate streaming uploads to targets.
6 years ago
David Wilson de27fb3a28 issue #174: test all io_op() logic. 6 years ago
David Wilson c891ab078a issue #106: working old-style native module execution
Still abusing Python import mechanism, but one big step closer to
eliminating that.
6 years ago
David Wilson 34a37a0ba5 issue #106: ansible: rename and significant pad out runners.py
Aiming to have working NativeRunner and BinaryRunner to begin with.
6 years ago
David Wilson 98c15942f7 issue #177: fix bizarre syntax error in last commit. 6 years ago
David Wilson 17b94c56f4 issue #177: import reproduction. 6 years ago
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.
6 years ago
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().
6 years ago
dw 772e229b7d
Merge pull request #180 from moreati/procedure-033-03
Switch to using unit2 test runner
6 years ago
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.
6 years ago