datalad_next.patches.replace_sshremoteio
Provide a full replacement of SSHRemoteIO
First and foremost, this replacement no longer uses the remote shell implementation of the previous version, but is based on datalad_next.shell.
Moreover, the cmd
-argument for the shell ssh-process, is not correct, if
self.ssh
is an instance of NoMultiplexSSHConnection
.
The changes in this patch build the correct cmd
-argument by adding
additional arguments to cmd
, if self.ssh is an instance of
NoMultiplexSSHConnection
. More precisely, the arguments that are
required to open a "shell" in a NoMultiplexSSHConnection
are stored in
NoMultiplexSSHConnection._ssh_open_args
and not in
NoMultiplexSSHConnection._ssh_args
. This patch therefore provides
arguments from both lists, i.e. from _ssh_args
and _ssh_open_args
in
the call that opens a "shell", if self.ssh
is an instance of
NoMultiplexSSHConnection
.
The implementation also no longer assumes that local and remote platform are identical. This patch introduces an actual remote platform/system determination.
This patch also adds the method url2transport_path()
, which is used to
convert abstract paths, which are used in the patched RIA/ORA-code, into paths
that SSHRemoteIO can operate on.