Asynchronous parallel SSH client library.
SSHClient
now starts buffering output from remote host, both standard output and standard error, when a command is run.SSHClient.read_output
, SSHClient.read_stderr
and iterating on stdout/stderr from HostOutput
now read from the internal buffer rather than the SSH channel directly.ParallelSSHClient.join
no longer requires consume_output
to be set in order to get exit codes without first reading output.ParallelSSHClient.join
with timeout no longer consumes output by default. It is now possible to use join
with a timeout and capture output after join
completes.ParallelSSHClient.reset_output_generators
is now a no-op and no longer required to be called after timeouts.HostOutput.stdout
and stderr
are now dynamic properties.HostOutput.read_timeout
attribute. Can be used to see what read timeout was when run_command
was called and to change timeout when next reading from HostOutput.stdout
and stderr
.HostOutput.encoding
attribute for encoding used when run_command
was called. Encoding can now be changed for when next reading output.ParallelSSHClient.join
with timeout no longer affects stdout
or stderr
read timeout set when run_command
was called.pssh.clients.ssh
now allow output to be read as it becomes available without waiting for remote command to finish first.pssh.clients.native
and pssh.clients.ssh
.ParallelSSHClient.join
can now be called without arguments and defaults to last ran commands.ParallelSSHClient.finished
can now be called without arguments and defaults to last ran commands.This is now possible:
output = client.run_command(<..>)
client.join(output)
assert output[0].exit_code is not None
As is this:
client.run_command(<..>, timeout=1)
client.join(output, timeout=1)
for line in output[0].stdout:
print(line)
Output can be read after and has separate timeout from join.
SSHClient
now accepts proxy_host
, proxy_port
and associated parameters - see API documentation
HostConfig
.ParallelSSHClient.connect_auth
function for connecting and authenticating to hosts in parallel.See Upgrading to API 2.0 for examples of code that will need updating.
ParallelSSHClient.run_command
now always returns a list of HostOutput
- return_list
argument is a no-op and will be removed in future releases.ParallelSSHClient.get_last_output
now always returns a list of HostOutput
.SSHClient.run_command
now returns HostOutput
.1.0.0
HostOutput
dictionary attributes.1.0.0
imports and modules.load_private_key
and read_openssh_config
functions from pssh.utils
.pssh.tunnel
.pssh.agent
.ParallelSSHClient.get_output
function.ParallelSSHClient.get_exit_code
and get_exit_codes
functions.ParallelSSHClient
host_config
dictionary implementation - now list of HostConfig
.HostOutput.cmd
attribute.ParallelSSHClient.host_clients
attribute.ParallelSSHClient(timeout=<seconds>)
a global timeout setting for all operations.run_command(greenlet_timeout=<..>)
argument - now uses global timeout setting.run_command
timeout
to read_timeout=<seconds>)
for setting output read timeout individually - defaults to global timeout setting.pssh.native
package and native code.ParallelSSHClient.scp_send
now supports copy_args
keyword argument for providing per-host file name arguments like rest of scp_*
and copy_*
functionality.Error
from Exception
- backwards compatible.UnknownHostException
, AuthenticationException
, ConnectionErrorException
, SSHException
no longer available as imports from pssh
- use from pssh.exceptions
.ParallelSSHClient.join
with encoding would not pass on encoding when reading from output buffers - #214.Timeout
early when timeout settings were used with many hosts.none-any
.See Upgrading to API 2.0 <upgrade-link>
_ for examples of code that will need updating.
ParallelSSHClient.run_command
now always returns a list of HostOutput
- return_list
argument is a no-op and may be removed.ParallelSSHClient.get_last_output
now always returns a list of HostOutput
.SSHClient.run_command
now returns HostOutput
.1.0.0
HostOutput
dictionary attributes.1.0.0
imports and modules.load_private_key
and read_openssh_config
functions from pssh.utils
.pssh.tunnel
.pssh.agent
.ParallelSSHClient.get_output
function.ParallelSSHClient.get_exit_code
and get_exit_codes
functions.ParallelSSHClient
host_config
dictionary implementation - now list of HostConfig
.HostOutput.cmd
attribute.ParallelSSHClient.host_clients
attribute.ParallelSSHClient(timeout=<seconds>)
a global timeout setting for all operations.run_command(greenlet_timeout=<..>)
argument - now uses global timeout setting.run_command
timeout
to read_timeout=<seconds>)
for setting output read timeout individually - defaults to global timeout setting.pssh.native
package and native code.none-any
.ParallelSSHClient.join
with encoding would not pass on encoding when reading from output buffers - #214.Timeout
early when timeout settings were used with many hosts.