ssh: don't quote ~ in remotepaths 33/26333/2
authorRoss Brattain <ross.b.brattain@intel.com>
Wed, 21 Dec 2016 05:40:52 +0000 (21:40 -0800)
committerRoss Brattain <ross.b.brattain@intel.com>
Wed, 21 Dec 2016 05:47:37 +0000 (21:47 -0800)
commit48a7b4fa8a9cfa2db8c002ffb68c46345551ee2a
tree717c748b93e58c18aa7e790441727171cd50bfe5
parentcd34d540ce1d5da5ba5df0a2d169013b5b222418
ssh: don't quote ~ in remotepaths

~ is not expanded in double quotes, so we have a dilemma.

We need to quote in order to preserve filenames with spaces,
but we have to make sure we don't quote the ~ so it can be expanded.

To resolve this we use a regex to search for tidle-prefixes
and excluded them from quotes.

Added unittests for the cases:
path with tilde
path with space
path with tilde and space

see bash man page for details of tidle expansion

Tilde Expansion

    If  a word begins with an unquoted tilde character (`~'), all of the
characters preceding the first unquoted slash (or all characters, if there is
no unquoted slash) are considered a tilde-prefix.  If none of the characters in
the tilde-prefix are quoted, the characters in the tilde-prefix following the
tilde are treated as a possible login name.  If this login name is the null
string, the tilde is replaced with the value of the shell parameter HOME.  If
HOME is unset, the home directory of the user executing the shell is
substituted instead.  Otherwise, the  tilde-prefix  is  replaced  with  the
home directory associated with the specified login name.

JIRA: YARDSTICK-501

Change-Id: I324be20aba0dbd50434fbd8081685c598ebd8a84
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
tests/unit/test_ssh.py
yardstick/ssh.py