-
Iustin Pop authored
Explanation: since we use lists and not a string, every argument we give is passed unchanged to the remote shell. So, for example, passing '/etc/init.d/ganeti restart' to the remote shell, it will try to run the path /etc/init.d/ganeti\ restart. With the s space included. This breaks, for example, gnt-node add and gnt-cluster command. The original problem with the backup routines that led to the "'" change is that they use a plain " ".join(list), but we don't need to quote the whole ssh remote command for this. We can simply use the existing utils.ShellQuoteCmd(list) which does the proper quoting of the ';' or '&&' metacharacters. With this change, both gnt-node add, gnt-cluster command and export/import work. This also improves the error-handling behaviour of one cat command by making it conditional on the preceding mkdir. Reviewed-by: ultrotter
72f0f7fd
backend.py 36.22 KiB