Skip to content

Releases: ParallelSSH/parallel-ssh

0.91.2

06 Jul 09:35
Compare
Choose a tag to compare

Changes:

  • allow_agent optional parameter added to turn off/on use of SSH agent, defaulting to True as per existing behaviour
  • Unicode output unit testing

0.91.1

03 May 16:41
Compare
Choose a tag to compare

Changes:

  • Added per-host configuration override capability in the library - #20
  • Added SSH channel timeout optional parameter - #35

0.91.0

24 Mar 18:43
Compare
Choose a tag to compare

Changes:

  • Bug fix for multiple single quotes in cmd string not being handled correctly - #39
  • run_command now correctly uses the login user's defined shell. Previously bash was always used.
  • run_command has gained a new parameter, use_shell. When set to False, command is run without a shell. Defaults to True which is existing behaviour. Useful for cases where, for example, commands run by the library are exposed to user input and could lead to shell injection vulnerabilities.
  • run_command has gained shell parameter to allow overriding of the shell to use. For example, run_command(<..>, shell='zsh -c') or run_command(<..>, shell='bash -c').

0.90.0

04 Mar 22:09
Compare
Choose a tag to compare

Slight backwards incompatible change in order to make command start and remote connection initiation asynchronous.

Exit code will now not be immediately available even for commands that exit immediately.

At least one of

  • Iterating over stdout/stderr
  • Calling client.join(output)

is now necessary to cause parallel-ssh to wait for commands to finish and be able to gather exit codes.

This was already covered in documentation so no API change has happened.

However, since behaviour has in fact changed version has been bumped to a new series.

Example of code that needs changing

output = client.run_command('exit 1')
exit_code = output[<host>]['exit_code']

exit_code above will now be None. The above needs changing to

output = client.run_command('exit 1')
client.join(output)
exit_code = output[<host>]['exit_code']

or iterating over either stdout/stderr.

Iterating over stdout/stderr will automatically cause exit code(s) to be gathered without explicitly calling get_exit_codes. See documentation for more examples.

0.9x.y will be the last series before a 1.x release where remaining open, some quite old, issues will hopefully be resolved.

Contributions very much welcome and thank you so much again to all current and future contributors. 👍
Contributors either raised or provided PR for all bugs fixed in this release! 😆

Changes:

  • Commands with no output would cause client to block until completion - #56
  • Unicode in stdout would cause exception when reading stdout - #54
  • Failed hosts with stop_on_errors=False would cause join and get_exit_codes to throw exception - #53
  • More documentation, parallel commands example under examples directory of the repository. Examples and documentation of overriding host list on an existing client object, iterators for host list parameter and filtering host list.
  • Connection establishment and command execution are now much faster, 200ms at least for each, with no enforced delays.

0.80.7

03 Feb 23:45
Compare
Choose a tag to compare

Changes:

  • Official Py3 support with tests
  • Proxy exception handling - #49
  • ParallelSSHClient gets optional agent parameter for supplying SSH agents programmatically

0.80.6

10 Dec 17:54
Compare
Choose a tag to compare

Bug fix release:

  • Fixes SFTP copy file bug when using relative directory for destination file

0.80.5

10 Dec 11:52
Compare
Choose a tag to compare
  • Adds recursive SFTP copy - #45
  • Fixes misreporting error when creating directories with absolute paths - #41
  • Fixes gevent exception on exit - #46

0.80.3

20 Oct 17:10
Compare
Choose a tag to compare

Bug fix release:

  • Fixes parsing issue with double quoted string in command - #42

0.80.1

06 Oct 09:32
Compare
Choose a tag to compare
  • Bug fix release for pypi installs

0.80.0

02 Oct 16:24
Compare
Choose a tag to compare

New release, many fixes, one breaking change to ParallelSSHClient.get_output.

  • Getting output for hosts that have errors is now possible without stopping command executions on all hosts. Host exception is now returned in output when stop_on_errors=False - #32. See updated documentation of run_command. This has required a breaking change to ParallelSSHClient.get_output which will need updating if it is being used directly. Before: get_output(output). Now: get_output(output, greenlet). No changes are necessary if using ParallelSSHClient.run_command as recommended.
  • Host de-duplication in output - #32
  • Fix for lack of stdout causing client to hang - #37
  • Host logging now disabled by default - #29. Call pssh.utils.enable_host_logging() to enable.
  • Refactored module into separate packages, pssh.exceptions, pssh.pssh_client et al.
  • Fake server used for testing renamed to embedded server and gained shell support - #24