Changes
- Added
pssh.config.HostConfigfor providing per-host configuration. Replaces dictionaryhost_configwhich is now deprecated. See per-host configuration - https://parallel-ssh.readthedocs.io/en/latest/advanced.html#per-host-configuration - documentation. ParallelSSHClient.scp_sendandscp_recvwith directory target path will now copy source file to directory keeping existing name instead of failing when recurse is off - #183.pssh.clients.ssh.SSHClientwait_finishedtimeout is now separate fromSSHClient(timeout=<timeout>)session timeout.ParallelSSHClient.joinwith timeout now has finished and unfinished commands asTimeoutexception arguments for use by client code.
Fixes
ParallelSSHClient.copy_filewith recurse enabled and absolute destination path would create empty directory in home directory of user - #197.ParallelSSHClient.copy_fileandscp_recvwith recurse enabled would not create remote directories when copying empty local directories.ParallelSSHClient.scp_sendwould require SFTP when recurse is off and remote destination path contains directory - #157.ParallelSSHClient.scp_recvcould block infinitely on large - 200-300MB or more - files.SSHClient.wait_finishedwould not apply timeout value given.
Assets
2
Fixes
- Reading from output streams with timeout via
run_command(<..>, timeout=<timeout>)would raise timeout early when trying to read from a stream with no data written to it while other streams have pending data - #180.
Assets
2
Changes
- Added
ssh-pythonbased native client withrun_commandimplementation. ParallelSSHClient.joinwith timeout no longer consumes output by default to allow reading of output after timeout.
Fixes
ParallelSSHClient.joinwith timeout would raiseTimeoutbefore value given when client was busy with other commands - #207
ssh-python client at pssh.clients.ssh.ParallelSSHClient is available for testing. Please report any issues.
To use:
from pssh.clients.ssh import ParallelSSHClient
This release adds (yet another) client, this one based on ssh-python (libssh). Key features of this client are more supported authentication methods compared to ssh2-python.
Future releases will also enable certificate authentication for the ssh-python client.
Please migrate to one of the two native clients if have not already as paramiko is very quickly accumulating yet more bugs and the 2.0.0 release which removes it is imminent.
Users that require paramiko for any reason can pin their parallel-ssh versions to parallel-ssh<2.0.0.
Assets
2
pkittenis
released this
Changes
- Improved packaging.
Assets
2
pkittenis
released this
Changes
- Moved socket polling to
gevent.select.pollto increase performance and better handle high number of sockets - #189 HostOutput.exit_codeis now a dynamic property returning eitherNonewhen exit code not ready or the exit code as reported by channel - #191ParallelSSHClient.get_exit_codesis now a no-op and scheduled to be removed in2.0.0.
Packaging
- Removed OSX Python 3.6 and 3.7 wheels. OSX wheels for brew python, currently 3.8, on OSX 10.14 and 10.15 are provided.
Fixes
- Native client would fail on using sockets with large file descriptor values - #189
Assets
2
pkittenis
released this
Changes
- Added
return_listoptional argument torun_commandto return list ofHostOutputobjects rather than dictionary - defaults toFalse. List output will become default starting from2.0.0. - Updated native clients for new version of
ssh2-python. - Manylinux 2010 wheels.
- Added OSX 10.14 and 10.15 wheels.
- Removed OSX < 10.14 wheels.
- Removed Windows 32 bit wheels.
- Removed Python 3.5 wheels for OSX and Windows.
- Added Python 3.8 support and wheels.
Fixes
Assets
2
pkittenis
released this
Fixes
- Native client SCP and SFTP uploads would not handle partial writes from waiting on socket correctly.
- Native client
copy_fileSFTP upload would get stuck repeating same writes until killed when copying multi-MB files from Windows clients - #148 - Native client
scp_sendwould not correctly preserve file mask of local file on the remote. - Native client tunnel, used for proxy implementation, would not handle partial writes from waiting on socket correctly.
Assets
10
pkittenis
released this
Changes
- Removed libssh2 native library dependency in favour of bundled
ssh2-pythonlibssh2 library. - Changed native client forward agent default behaviour to off due to incompatibility with certain SSH server implementations.
- Added keep-alive functionality to native client - defaults to
60seconds.ParallelSSHClient(<..>, keepalive_seconds=<interval>)to configure interval, Set to0to disable. - Added
~/.ssh/id_ecdsadefault identity location to native client.
Assets
10
pkittenis
released this
Fixes
- Native parallel client
forward_ssh_agentflag would not be applied correctly.