Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
apache-libcloud 0.14.1, Windows 7
Description
In the method compute.ssh.ParamikoSSHClient.put(..) the current directory (on the remote machine) is concatenated with the file name using os.path.join (aliased as pjoin.
If libcloud is used on Windows (local machine not the remote node), this will use a backslash as separator. Paramiko expects all paths with unix-style / separators independent of the platform (see comment on https://github.com/paramiko/paramiko/issues/278)
The problem can be reproduced with ScriptDeployment. If the name argument is not an absolute path, it will fail. It will try to execute /root\libcloud_deployment_xxx.sh. Linux will think this is an escaped l, not a separator. The result is a file-not-found message on stderr.