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.