- 23 Sep, 2015 24 commits
-
-
Brian Coca committed
-
Fix typo in checking select results
James Cammarata committed -
We used to display input chunks earlier anyway, so this isn't making things more verbose.
Abhijit Menon-Sen committed -
It's possible for more than one fd to be set, so 'elif' is obviously not the right thing to use.
Abhijit Menon-Sen committed -
James Cammarata committed
-
Toshio Kuratomi committed
-
James Cammarata committed
-
Fix one more failing test on Python 3
Toshio Kuratomi committed -
James Cammarata committed
-
James Cammarata committed
-
Without this, we could execute «ssh -q ...» and call select(), which would timeout after the default 10s, and only then send initial data. (This is a relic of the earlier change where we always ran ssh with -vvv, so the situation where it would sit quietly never happened in practice; but this would have been the right thing to do even then.)
Abhijit Menon-Sen committed -
Fixes #12478
James Cammarata committed -
Fixes #12473
James Cammarata committed -
Fixes one failing test. The long series of module_utils/basic.py fixes were all because module_utils/basic is imported in ansible/inventory/script.py.
Marius Gedminas committed -
Because the builtin map() acts like an iterator already.
Marius Gedminas committed -
Even Python 2.4 automatically promotes int to long.
Marius Gedminas committed -
NB: we can't use 'from __future__ import print_function', but luckily print(one_thing) works fine on both Python 2 and Python 3 without that.
Marius Gedminas committed -
Marius Gedminas committed
-
Make the code compatible with Pythons 2.4 through 3.5 by using sys.exc_info()[1] instead. This is necessary but not sufficient for Python 3 compatibility.
Marius Gedminas committed -
James Cammarata committed
-
James Cammarata committed
-
The event loop (even after it was brought into one place in _run in the previous commit) was hard to follow. The states and transitions weren't clear or documented, and the privilege escalation code was non-blocking while the rest was blocking. Now we have a state machine with four states: awaiting_prompt, awaiting_escalation, ready_to_send (initial data), and awaiting_exit. The actions in each state and the transitions between then are clearly documented. The check_incorrect_password() method no longer checks for empty strings (since they will always match), and check_become_success() uses equality rather than a substring match to avoid thinking an echoed command is an indication of successful escalation. Also adds a check_missing_password connection method to detect the error from sudo -n/doas -n.
Abhijit Menon-Sen committed -
The main exec_command/put_file/fetch_file methods now _build_command and call _run to handle input from/output to the ssh process. The purpose is to bring connection handling together in one place so that the locking doesn't have to be split across functions. Note that this doesn't change the privilege escalation and connection IO code at all—just puts it all into one function. Most of the changes are just moving code from one place to another (e.g. from _connect to _build_command, from _exec_command and _communicate to _run), but there are some other notable changes: 1. We test for the existence of sshpass the first time we need to use password authentication, and remember the result. 2. We set _persistent in _build_command if we're using ControlPersist, for later use in close(). (The detection could be smarter.) 3. Some apparently inadvertent inconsistencies between put_file and fetch_file (e.g. argument quoting, sftp -b use) have been removed. Also reorders functions into a logical sequence, removes unused imports and functions, etc. Aside: the high-level EXEC/PUT/FETCH description should really be logged from ConnectionBase, while individual subclasses log transport-specific details.
Abhijit Menon-Sen committed -
Fixes #12484
James Cammarata committed
-
- 22 Sep, 2015 16 commits
-
-
* Make LookupBase an abc with required methods (run()) marked as an abstractmethod * Mark methods that don't use self as @staticmethod * Document how to implement the run method of a lookup plugin.
Toshio Kuratomi committed -
Add mention of roles_path parameter to `ansible-galaxy install` command
James Cammarata committed -
Jeff Widman committed
-
Toshio Kuratomi committed
-
Brian Coca committed
-
Fixes #12464
James Cammarata committed -
James Cammarata committed
-
Fix for user defined modules not overriding modules from core.
Toshio Kuratomi committed -
James Cammarata committed
-
This fix takes into account that powershell modules are somewhat different than regular modules and have to be kept separate.
Toshio Kuratomi committed -
Toshio Kuratomi committed
-
James Cammarata committed
-
Fixes #12465
James Cammarata committed -
Python 3: there's no basestring
James Cammarata committed -
Fix option descriptions in ansible-doc output
James Cammarata committed -
James Cammarata committed
-