community.general/lib/ansible/plugins/connection
Abhijit Menon-Sen ac98fe9e89 Implement ssh connection handling as a state machine
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.
2015-09-23 01:55:00 -04:00
..
__init__.py Implement ssh connection handling as a state machine 2015-09-23 01:55:00 -04:00
accelerate.py normalized plugin paths and names and configs 2015-09-15 11:44:09 -04:00
chroot.py corrected all missing paths changes 2015-09-15 11:57:54 -04:00
docker.py corrected all missing paths changes 2015-09-15 11:57:54 -04:00
funcd.py normalized plugin paths and names and configs 2015-09-15 11:44:09 -04:00
jail.py normalized plugin paths and names and configs 2015-09-15 11:44:09 -04:00
libvirt_lxc.py normalized plugin paths and names and configs 2015-09-15 11:44:09 -04:00
local.py corrected all missing paths changes 2015-09-15 11:57:54 -04:00
paramiko_ssh.py Reorganise ssh.py to cleanly separate responsibilities 2015-09-23 01:55:00 -04:00
ssh.py Implement ssh connection handling as a state machine 2015-09-23 01:55:00 -04:00
winrm.py Fix for user defined modules not overriding modules from core. 2015-09-22 09:07:37 -07:00
zone.py normalized plugin paths and names and configs 2015-09-15 11:44:09 -04:00