From 8c46f29b096c002d47bb497cb3b74c38206ddf45 Mon Sep 17 00:00:00 2001
From: Nicolas KAROLAK <nicolas@karolak.fr>
Date: Fri, 20 Apr 2018 09:04:30 +0200
Subject: [PATCH] fix ssh diag on error

---
 tests/test_backup.py      | 11 ++++++-----
 tests/test_mediaworker.py |  9 +++++----
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/tests/test_backup.py b/tests/test_backup.py
index d95ba357..37cd11ca 100755
--- a/tests/test_backup.py
+++ b/tests/test_backup.py
@@ -31,17 +31,18 @@ def test_ssh(ip):
     cmd = 'ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no %s ls /tmp' % ip
     print('Connecting to MediaVault: %s' % cmd)
     try:
-        subprocess.check_output(cmd, shell=True, timeout=2)
+        subprocess.check_output(cmd, shell=True, timeout=5)
         print('%sLogged in successfully%s' % (GREEN, DEF))
     except subprocess.CalledProcessError:
-        # do some diagnostics
+        print('%sFailed to login using SSH, run ssh-copy-id %s %s' % (RED, ip, DEF))
+        return False
+    except subprocess.TimeoutExpired:
         try:
             cmd_port = 'nc -z -w2 {} 22'.format(ip)
             subprocess.check_output(cmd_port, shell=True, timeout=5)
-        except subprocess.CalledProcessError:
+        except Exception:
             cmd_ping = 'ping -c2 -w4 {}'.format(ip)
-            subprocess.check_output(cmd_ping, shell=True, timeout=5)
-        print('%sFailed to login using SSH, run ssh-copy-id %s %s' % (RED, ip, DEF))
+            subprocess.check_output(cmd_ping, shell=True, timeout=15)
         return False
     return True
 
diff --git a/tests/test_mediaworker.py b/tests/test_mediaworker.py
index fbeb064c..3d04a30c 100755
--- a/tests/test_mediaworker.py
+++ b/tests/test_mediaworker.py
@@ -40,14 +40,15 @@ def check_ssh(ip):
         subprocess.check_output(cmd, shell=True, timeout=5)
         print('%sLogged in successfully in "%s".%s' % (GREEN, ip, DEF))
     except subprocess.CalledProcessError:
-        # do some diagnostics
+        print('%sFailed to login using SSH, run "ssh-copy-id %s".%s' % (RED, ip, DEF))
+        return False
+    except subprocess.TimeoutExpired:
         try:
             cmd_port = 'nc -z -w2 {} 22'.format(ip)
             subprocess.check_output(cmd_port, shell=True, timeout=5)
-        except subprocess.CalledProcessError:
+        except Exception:
             cmd_ping = 'ping -c2 -w4 {}'.format(ip)
-            subprocess.check_output(cmd_ping, shell=True, timeout=5)
-        print('%sFailed to login using SSH, run "ssh-copy-id %s".%s' % (RED, ip, DEF))
+            subprocess.check_output(cmd_ping, shell=True, timeout=15)
         return False
     return True
 
-- 
GitLab