This should fix issue 61, by explicitely calling bash (which is is now a non-explicit dependency) and setting the pipefail command. --- lib/backend.py | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/backend.py b/lib/backend.py index c865b0f..2ef35fb 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -1838,8 +1838,8 @@ def ExportSnapshot(disk, dest_node, instance, cluster_name, idx): # the target command is built out of three individual commands, # which are joined by pipes; we check each individual command for # valid parameters - expcmd = utils.BuildShellCmd("cd %s; %s 2>%s", inst_os.path, - export_script, logfile) + expcmd = utils.BuildShellCmd("set -e; set -o pipefail; cd %s; %s 2>%s", + inst_os.path, export_script, logfile) comprcmd = "gzip" @@ -1852,7 +1852,7 @@ def ExportSnapshot(disk, dest_node, instance, cluster_name, idx): # all commands have been checked, so we're safe to combine them command = '|'.join([expcmd, comprcmd, utils.ShellQuoteArgs(remotecmd)]) - result = utils.RunCmd(command, env=export_env) + result = utils.RunCmd(["bash", "-c", command], env=export_env) if result.failed: logging.error("os snapshot export command '%s' returned error: %s" -- 1.6.3.3