X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=nepi%2Futil%2Fsshfuncs.py;h=fa7df4b6834d80449db6644cbf7ad8d161a53c0b;hb=3dbce20386a19286b671fa93cbfed844718ffe68;hp=1b4d389b27e533eda55de1189ed5befcae3ee06c;hpb=a2a87833301e237bfa94bdad80c01190f6b4a04b;p=nepi.git diff --git a/nepi/util/sshfuncs.py b/nepi/util/sshfuncs.py index 1b4d389b..fa7df4b6 100644 --- a/nepi/util/sshfuncs.py +++ b/nepi/util/sshfuncs.py @@ -38,13 +38,15 @@ from six import PY2 _re_inet = re.compile("\d+:\s+(?P[a-z0-9_-]+)\s+inet6?\s+(?P[a-f0-9.:/]+)\s+(brd\s+[0-9.]+)?.*scope\s+global.*") +# to debug, just use +# logging.getLogger('sshfuncs').setLevel(logging.DEBUG) logger = logging.getLogger("sshfuncs") def log(msg, level = logging.DEBUG, out = None, err = None): if out: - msg += " - OUT: {} ".format(out) + msg += " - OUT is {} long".format(len(out)) if err: - msg += " - ERROR: {} ".format(err) + msg += " - ERR is {} long".format(len(err)) logger.log(level, msg) if hasattr(os, "devnull"): @@ -307,16 +309,14 @@ def rexec(command, host, user, args.append(command) - log_msg = " rexec - host {} - command {} ".format(host, " ".join(map(str, args))) + log_msg = " rexec - host {} - command {} ".format(host, pretty_args(args)) stdout = stderr = stdin = subprocess.PIPE if forward_x11: stdout = stderr = stdin = None return _retry_rexec(args, log_msg, - stderr = stderr, - stdin = stdin, - stdout = stdout, + stdin = stdin, stdout = stdout, stderr = stderr, env = env, retry = retry, tmp_known_hosts = tmp_known_hosts, @@ -407,7 +407,7 @@ def rcopy(source, dest, else: args.append(dest) - log_msg = " rcopy - host {} - command {} ".format(host, " ".join(map(str, args))) + log_msg = " rcopy - host {} - command {} ".format(host, pretty_args(args)) return _retry_rexec(args, log_msg, env = None, retry = retry, tmp_known_hosts = tmp_known_hosts, @@ -854,6 +854,7 @@ def _communicate(proc, input, timeout=None, err_on_timeout=True): proc.stdout.close() read_set.remove(proc.stdout) stdout.append(data) + log("have read {} bytes from stdout".format(len(stdout))) # likewise if proc.stderr in rlist: @@ -862,6 +863,7 @@ def _communicate(proc, input, timeout=None, err_on_timeout=True): proc.stderr.close() read_set.remove(proc.stderr) stderr.append(data) + log("have read {} bytes from stderr".format(len(stdout))) # All data exchanged. Translate lists into strings. if stdout is not None: