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

Reply via email to