Releases: ParallelSSH/parallel-ssh
Releases · ParallelSSH/parallel-ssh
2.3.1
Changes
SSHClient.read_output
andread_stderr
now take buffer to read from as argument instead of channel.SSHClient.wait_finished
now takesHostOutput
argument instead of channel.
Fixes
- Output for multiple commands on one host run at the same time would be lost.
2.3.0
Changes
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 fromHostOutput
now read from the internal buffer rather than the SSH channel directly.ParallelSSHClient.join
no longer requiresconsume_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 usejoin
with a timeout and capture output afterjoin
completes.ParallelSSHClient.reset_output_generators
is now a no-op and no longer required to be called after timeouts.HostOutput.stdout
andstderr
are now dynamic properties.- Added
HostOutput.read_timeout
attribute. Can be used to see what read timeout was whenrun_command
was called and to change timeout when next reading fromHostOutput.stdout
andstderr
. - Added
HostOutput.encoding
attribute for encoding used whenrun_command
was called. Encoding can now be changed for when next reading output. ParallelSSHClient.join
with timeout no longer affectsstdout
orstderr
read timeout set whenrun_command
was called.- LibSSH clients under
pssh.clients.ssh
now allow output to be read as it becomes available without waiting for remote command to finish first. - Reading from output behaviour is now consistent across all client types - parallel and single clients under both
pssh.clients.native
andpssh.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.
2.2.0
Changes
- New single host tunneling, SSH proxy, implementation for increased performance.
- Native
SSHClient
now acceptsproxy_host
,proxy_port
and associated parameters - see API documentation - Proxy configuration can now be provided via
HostConfig
. - Added
ParallelSSHClient.connect_auth
function for connecting and authenticating to hosts in parallel.
2.1.0post1
Updated readme (#237)
2.1.0
2.0.0
Changes
See Upgrading to API 2.0 for examples of code that will need updating.
- Removed paramiko clients and dependency.
ParallelSSHClient.run_command
now always returns a list ofHostOutput
-return_list
argument is a no-op and will be removed in future releases.ParallelSSHClient.get_last_output
now always returns a list ofHostOutput
.SSHClient.run_command
now returnsHostOutput
.- Removed deprecated since
1.0.0
HostOutput
dictionary attributes. - Removed deprecated since
1.0.0
imports and modules. - Removed paramiko based
load_private_key
andread_openssh_config
functions frompssh.utils
. - Removed paramiko based
pssh.tunnel
. - Removed paramiko based
pssh.agent
. - Removed deprecated
ParallelSSHClient.get_output
function. - Removed deprecated
ParallelSSHClient.get_exit_code
andget_exit_codes
functions. - Removed deprecated
ParallelSSHClient
host_config
dictionary implementation - now list ofHostConfig
. - Removed
HostOutput.cmd
attribute. - Removed
ParallelSSHClient.host_clients
attribute. - Made
ParallelSSHClient(timeout=<seconds>)
a global timeout setting for all operations. - Removed
run_command(greenlet_timeout=<..>)
argument - now uses global timeout setting. - Renamed
run_command
timeout
toread_timeout=<seconds>)
for setting output read timeout individually - defaults to global timeout setting. - Removed
pssh.native
package and native code. ParallelSSHClient.scp_send
now supportscopy_args
keyword argument for providing per-host file name arguments like rest ofscp_*
andcopy_*
functionality.- Changed exception names to end in
Error
fromException
- backwards compatible. UnknownHostException
,AuthenticationException
,ConnectionErrorException
,SSHException
no longer available as importsfrom pssh
- usefrom pssh.exceptions
.
Fixes
- Removed now unnecessary locking around SSHClient initialisation so it can be parallelised - #219.
ParallelSSHClient.join
with encoding would not pass on encoding when reading from output buffers - #214.- Clients could raise
Timeout
early when timeout settings were used with many hosts.
Packaging
- Package architecture has changed to
none-any
.
2.0.0 RC1
Changes
See Upgrading to API 2.0 <upgrade-link>
_ for examples of code that will need updating.
- Removed paramiko clients and dependency.
ParallelSSHClient.run_command
now always returns a list ofHostOutput
-return_list
argument is a no-op and may be removed.ParallelSSHClient.get_last_output
now always returns a list ofHostOutput
.SSHClient.run_command
now returnsHostOutput
.- Removed deprecated since
1.0.0
HostOutput
dictionary attributes. - Removed deprecated since
1.0.0
imports and modules. - Removed paramiko based
load_private_key
andread_openssh_config
functions frompssh.utils
. - Removed paramiko based
pssh.tunnel
. - Removed paramiko based
pssh.agent
. - Removed deprecated
ParallelSSHClient.get_output
function. - Removed deprecated
ParallelSSHClient.get_exit_code
andget_exit_codes
functions. - Removed deprecated
ParallelSSHClient
host_config
dictionary implementation - now list ofHostConfig
. - Removed
HostOutput.cmd
attribute. - Removed
ParallelSSHClient.host_clients
attribute. - Made
ParallelSSHClient(timeout=<seconds>)
a global timeout setting for all operations. - Removed
run_command(greenlet_timeout=<..>)
argument - now uses global timeout setting. - Renamed
run_command
timeout
toread_timeout=<seconds>)
for setting output read timeout individually - defaults to global timeout setting. - Removed
pssh.native
package and native code. - No native code means package architecture has changed to
none-any
.
Fixes
2.0.0b3
2.0.0b2
2.0.0b1: Version 2 API changes (#221)
* Removed paramiko clients, tests and embedded server. Removed deprecated imports test. * Removed paramiko agent and utility functions. Removed deprecated modules. Updated docstrings. * Updated utils tests. * Updated imports * Made single client return host output objects from run_command. Removing deprecated output. * Updated tests for new API version. Removed deprecated functions. * Removed deprecated dictionary output support. Updated tests. * Updated libssh client tests * Updated output test * Updated libssh clients, parallel base client. * Updated changelog, setup.py. docstrings * Updated documentation * Added upgrade guide. * Updated finished and unfinished arguments to join timeout exception to be easier to use - added test. * Updated changelog. Removed unused host_clients from parallel clients. Updated make ssh client to not use locks since no longer using old host clients. * Updated circleci cfg * Updated tunnel tests and code to cleanup more safely