summaryrefslogtreecommitdiffstats
path: root/openshift-storage-libs/openshiftstoragelibs/command.py
diff options
context:
space:
mode:
authorValerii Ponomarov <vponomar@redhat.com>2019-05-22 18:01:14 +0530
committervponomar <vponomar@redhat.com>2019-05-24 11:14:15 +0000
commitdddf1ceb29e36c799d144d1a34b951af5d10cfb7 (patch)
tree5d2c8d9f48b53ecf0de2f7dcb7c991ad783cd48e /openshift-storage-libs/openshiftstoragelibs/command.py
parent6fbbd5f55db83fdaeff29e80582341b5116b616c (diff)
Make 'command.cmd_run' func be resistable to broken SSH connections
It happens that we get "No ssh connection" errors from time to time. So, avoid such errors recreating SSH connections if such error appears. Change-Id: Idc71c4ceece6b3040c396b25da1deadcefd29b60
Diffstat (limited to 'openshift-storage-libs/openshiftstoragelibs/command.py')
-rw-r--r--openshift-storage-libs/openshiftstoragelibs/command.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/openshift-storage-libs/openshiftstoragelibs/command.py b/openshift-storage-libs/openshiftstoragelibs/command.py
index 06912915..e75bbcaa 100644
--- a/openshift-storage-libs/openshiftstoragelibs/command.py
+++ b/openshift-storage-libs/openshiftstoragelibs/command.py
@@ -13,6 +13,10 @@ def cmd_run(cmd, hostname, raise_on_error=True):
str: Stripped shell command's stdout value if not None.
"""
ret, out, err = g.run(hostname, cmd, "root")
+ if ("no ssh connection" in err.lower() or
+ "tls handshake timeout" in err.lower()):
+ g.ssh_close_connection(hostname)
+ ret, out, err = g.run(hostname, cmd, "root")
if raise_on_error:
msg = ("Failed to execute command '%s' on '%s' node. Got non-zero "
"return code '%s'. Err: %s" % (cmd, hostname, ret, err))