diff --git a/daemons/import-export b/daemons/import-export index f2bf874cb1ac2040f622e2b9a6476d3891a48cee..428f5a6f6392f1e833e0a8e8149220cb68c2862a 100755 --- a/daemons/import-export +++ b/daemons/import-export @@ -267,10 +267,16 @@ def ProcessChildIO(child, socat_stderr_read_fd, dd_stderr_read_fd, timeout = None if listen_timeout and not exit_timeout: + assert mode == constants.IEM_IMPORT and options.connect_timeout if status_file.GetConnected(): listen_timeout = None elif listen_timeout.Remaining() < 0: - logging.info("Child process didn't establish connection in time") + errmsg = ("Child process didn't establish connection in time" + " (%0.0fs), sending SIGTERM" % options.connect_timeout) + logging.error(errmsg) + status_file.AddRecentOutput(errmsg) + status_file.Update(True) + child.Kill(signal.SIGTERM) exit_timeout = \ utils.RunningTimeout(constants.CHILD_LINGER_TIMEOUT, True) diff --git a/lib/client/gnt_instance.py b/lib/client/gnt_instance.py index 56f2b851c3afdd399509848aba20e506fe50ba6c..f0188a9aec4f2303a3d8ab371cebb8eb427ba3d1 100644 --- a/lib/client/gnt_instance.py +++ b/lib/client/gnt_instance.py @@ -25,7 +25,6 @@ # W0614: Unused import %s from wildcard import (since we need cli) # C0103: Invalid name gnt-instance -import os import itertools import simplejson from cStringIO import StringIO @@ -892,12 +891,12 @@ def ConnectToInstanceConsole(opts, args): if opts.show_command: ToStdout("%s", utils.ShellQuoteArgs(cmd)) else: - try: - os.execvp(cmd[0], cmd) - finally: - ToStderr("Can't run console command %s with arguments:\n'%s'", - cmd[0], " ".join(cmd)) - os._exit(1) # pylint: disable-msg=W0212 + result = utils.RunCmd(cmd, interactive=True) + if result.failed: + raise errors.OpExecError("Console command \"%s\" failed: %s" % + (utils.ShellQuoteArgs(cmd), result.fail_reason)) + + return constants.EXIT_SUCCESS def _FormatLogicalID(dev_type, logical_id, roman):