Skip to content

Releases: ParallelSSH/parallel-ssh

2.3.1

06 Dec 14:52
2e9fdb2
Compare
Choose a tag to compare

Changes

  • SSHClient.read_output and read_stderr now take buffer to read from as argument instead of channel.
  • SSHClient.wait_finished now takes HostOutput argument instead of channel.

Fixes

  • Output for multiple commands on one host run at the same time would be lost.

2.3.0

04 Dec 21:57
3b1d052
Compare
Choose a tag to compare

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 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.
  • Added 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.
  • Added 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.
  • 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 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.

See documentation for more examples on use of timeouts.

2.2.0

01 Dec 18:25
084696d
Compare
Choose a tag to compare

Changes

  • New single host tunneling, SSH proxy, implementation for increased performance.
  • Native SSHClient now accepts proxy_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

25 Oct 12:26
3ffb1d0
Compare
Choose a tag to compare
Updated readme (#237)

2.1.0

25 Oct 12:13
d973500
Compare
Choose a tag to compare

Changes

  • Added certificate authentication support for the pssh.clients.ssh clients.

2.0.0

06 Oct 12:52
6c0ebce
Compare
Choose a tag to compare

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 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.
  • Removed deprecated since 1.0.0 HostOutput dictionary attributes.
  • Removed deprecated since 1.0.0 imports and modules.
  • Removed paramiko based load_private_key and read_openssh_config functions from pssh.utils.
  • Removed paramiko based pssh.tunnel.
  • Removed paramiko based pssh.agent.
  • Removed deprecated ParallelSSHClient.get_output function.
  • Removed deprecated ParallelSSHClient.get_exit_code and get_exit_codes functions.
  • Removed deprecated ParallelSSHClient host_config dictionary implementation - now list of HostConfig.
  • 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 to read_timeout=<seconds>) for setting output read timeout individually - defaults to global timeout setting.
  • Removed 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.
  • Changed exception names to end in Error from Exception - backwards compatible.
  • UnknownHostException, AuthenticationException, ConnectionErrorException, SSHException no longer available as imports from pssh - use from 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

03 Oct 16:01
05b9318
Compare
Choose a tag to compare

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 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.
  • Removed deprecated since 1.0.0 HostOutput dictionary attributes.
  • Removed deprecated since 1.0.0 imports and modules.
  • Removed paramiko based load_private_key and read_openssh_config functions from pssh.utils.
  • Removed paramiko based pssh.tunnel.
  • Removed paramiko based pssh.agent.
  • Removed deprecated ParallelSSHClient.get_output function.
  • Removed deprecated ParallelSSHClient.get_exit_code and get_exit_codes functions.
  • Removed deprecated ParallelSSHClient host_config dictionary implementation - now list of HostConfig.
  • 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 to read_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

  • 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.

2.0.0b3

18 Sep 12:31
eb0feb8
Compare
Choose a tag to compare
Updated ci cfg (#225)

2.0.0b2

18 Sep 11:59
7794f69
Compare
Choose a tag to compare
Updated circle ci, travis cfgs. Updated tunnel run method. (#224)

2.0.0b1: Version 2 API changes (#221)

18 Sep 10:15
f8bc2aa
Compare
Choose a tag to compare
* 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