issue #548: always treat transport=smart as 'ssh' for mitogen_via=.

The idea behind transport=smart is to select between paramiko and
OpenSSH given the availability of connection multiplexing and/or OSX
kernel bugs. We need to make no such choice.
This commit is contained in:
David Wilson 2019-02-19 16:26:47 +00:00
parent b7742a4b5f
commit 26e6194d0a
4 changed files with 52 additions and 0 deletions

View File

@ -356,6 +356,7 @@ CONNECTION_METHOD = {
'machinectl': _connect_machinectl,
'setns': _connect_setns,
'ssh': _connect_ssh,
'smart': _connect_ssh, # issue #548.
'su': _connect_su,
'sudo': _connect_sudo,
'doas': _connect_doas,

View File

@ -5,6 +5,7 @@
# tansport()
tc-transport-unset
tc-transport-local ansible_connection=local
tc-transport-smart ansible_connection=smart
# python_path()
tc-python-path-unset

View File

@ -8,3 +8,4 @@
- include: remote_addr.yml
- include: remote_user.yml
- include: transport.yml
- include: transport__smart.yml

View File

@ -0,0 +1,49 @@
# issue #548
# Each case is followed by mitogen_via= case to test hostvars method.
# When no ansible_connection= is set, transport comes via ansible.cfg ("smart"
# is parsed away to either paramiko or ssh).
- name: integration/transport_config/transport.yml
hosts: tc-transport-smart
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].method
right: "ssh"
- hosts: tc-transport-local
vars: {mitogen_via: tc-transport-smart}
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].method
right: "ssh"
- assert_equal:
left: out.result[1].method
right: "local"
# ansible_connection=local
- hosts: tc-transport-local
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].method
right: "local"
- hosts: tc-transport-smart
vars: {mitogen_via: tc-transport-local}
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].method
right: "local"
- assert_equal:
left: out.result[1].method
right: "ssh"