Переглянути джерело

Merge pull request #266 from OneBuildMan/ssh_fix

added a try-block to catch the SSH error
Daniel Vincze 2 роки тому
батько
коміт
364d60737a
1 змінених файлів з 9 додано та 5 видалено
  1. 9 5
      coriolis/providers/replicator.py

+ 9 - 5
coriolis/providers/replicator.py

@@ -17,7 +17,6 @@ import requests
 from coriolis import exception
 from coriolis import exception
 from coriolis import utils
 from coriolis import utils
 
 
-
 LOG = logging.getLogger(__name__)
 LOG = logging.getLogger(__name__)
 
 
 HASH_METHOD_SHA256 = "sha256"
 HASH_METHOD_SHA256 = "sha256"
@@ -470,10 +469,14 @@ class Replicator(object):
         """
         """
         gets a paramiko SSH client
         gets a paramiko SSH client
         """
         """
-        ssh = paramiko.SSHClient()
-        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-        ssh.connect(**args)
-        return ssh
+        try:
+            ssh = paramiko.SSHClient()
+            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+            ssh.connect(**args)
+            return ssh
+        except paramiko.ssh_exception.SSHException as ex:
+            raise exception.CoriolisException(
+                "Failed to setup SSH client: %s" % str(ex)) from ex
 
 
     def _parse_source_ssh_conn_info(self, conn_info):
     def _parse_source_ssh_conn_info(self, conn_info):
         # if we get valid SSH connection info we can
         # if we get valid SSH connection info we can
@@ -507,6 +510,7 @@ class Replicator(object):
             "password": password,
             "password": password,
             "pkey": pkey,
             "pkey": pkey,
             "port": port,
             "port": port,
+            "banner_timeout": CONF.replicator.default_requests_timeout,
         }
         }
         return args
         return args