From a48b08bf239a7479497265ddb586daa677b0edc1 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Wed, 5 Aug 2009 11:49:56 +0200 Subject: [PATCH] Fix detecting of errors in export This should fix issue 61, by explicitely calling bash (which is is now a non-explicit dependency) and setting the pipefail command. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/backend.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/backend.py b/lib/backend.py index c865b0fc1..2ef35fb0b 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" -- GitLab