e7325f82a3
See: https://bugzilla.redhat.com/show_bug.cgi?id=1489610 Also add patch to correctly log stderr from remote nodes when glusterfind fails. This, too, should be removed when fixed upstream.
49 lines
2 KiB
Diff
49 lines
2 KiB
Diff
From 92a6b84a37e7e2e0ec0655ca45cedb64ab72080e Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
|
|
Date: Fri, 8 Sep 2017 02:40:01 +0200
|
|
Subject: [PATCH] glusterfind: Log remote stderr on `node_cmd` error.
|
|
|
|
The problem of lost stderr was introduced in
|
|
commit feea851fad4f89b48bfe89fe3b75250cc7bd6501.
|
|
|
|
Change-Id: Ic98f9bc9682ae3bd9c3ebea3855667fc8ba2843d
|
|
---
|
|
tools/glusterfind/src/main.py | 17 ++++++++++++++++-
|
|
1 file changed, 16 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/tools/glusterfind/src/main.py b/tools/glusterfind/src/main.py
|
|
index c125f970a..6fffce4b3 100644
|
|
--- a/tools/glusterfind/src/main.py
|
|
+++ b/tools/glusterfind/src/main.py
|
|
@@ -75,12 +75,27 @@ def node_cmd(host, host_uuid, task, cmd, args, opts):
|
|
cmd = ["ssh",
|
|
"-oNumberOfPasswordPrompts=0",
|
|
"-oStrictHostKeyChecking=no",
|
|
+ # We force TTY allocation (-t -t) so that Ctrl+C is handed
|
|
+ # through; see:
|
|
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1382236
|
|
+ # Note that this turns stderr of the remote `cmd`
|
|
+ # into stdout locally.
|
|
"-t",
|
|
"-t",
|
|
"-i", pem_key_path,
|
|
"root@%s" % host] + cmd
|
|
|
|
- execute(cmd, exit_msg="%s - %s failed" % (host, task), logger=logger)
|
|
+ (returncode, err, out) = execute(cmd, logger=logger)
|
|
+ if returncode != 0:
|
|
+ # Because the `-t -t` above turns the remote stderr into
|
|
+ # local stdout, we need to log both stderr and stdout
|
|
+ # here to print all error messages.
|
|
+ fail("%s - %s failed; stdout (including remote stderr):\n"
|
|
+ "%s\n"
|
|
+ "stderr:\n"
|
|
+ "%s" % (host, task, out, err),
|
|
+ returncode,
|
|
+ logger=logger)
|
|
|
|
if opts.get("copy_outfile", False) and not localdir:
|
|
cmd_copy = ["scp",
|
|
--
|
|
2.12.0
|
|
|