diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index e676d8fa50..f15c8e43e7 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -180,6 +180,7 @@ class Runner(object): self.accelerate = accelerate self.accelerate_port = accelerate_port self.callbacks.runner = self + self.original_transport = self.transport if self.transport == 'smart': # if the transport is 'smart' see if SSH can support ControlPersist if not use paramiko diff --git a/lib/ansible/runner/connection_plugins/accelerate.py b/lib/ansible/runner/connection_plugins/accelerate.py index e39d0d715b..d1ef23b10d 100644 --- a/lib/ansible/runner/connection_plugins/accelerate.py +++ b/lib/ansible/runner/connection_plugins/accelerate.py @@ -23,6 +23,7 @@ import struct import time from ansible.callbacks import vvv from ansible.runner.connection_plugins.ssh import Connection as SSHConnection +from ansible.runner.connection_plugins.paramiko_ssh import Connection as ParamikoConnection from ansible import utils from ansible import errors from ansible import constants @@ -59,14 +60,24 @@ class Connection(object): elif not isinstance(self.accport, int): self.accport = int(self.accport) - self.ssh = SSHConnection( - runner=self.runner, - host=self.host, - port=self.port, - user=self.user, - password=password, - private_key_file=private_key_file - ) + if self.runner.original_transport == "paramiko": + self.ssh = ParamikoConnection( + runner=self.runner, + host=self.host, + port=self.port, + user=self.user, + password=password, + private_key_file=private_key_file + ) + else: + self.ssh = SSHConnection( + runner=self.runner, + host=self.host, + port=self.port, + user=self.user, + password=password, + private_key_file=private_key_file + ) # attempt to work around shared-memory funness if getattr(self.runner, 'aes_keys', None):