瀏覽代碼

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 utils
 
-
 LOG = logging.getLogger(__name__)
 
 HASH_METHOD_SHA256 = "sha256"
@@ -470,10 +469,14 @@ class Replicator(object):
         """
         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):
         # if we get valid SSH connection info we can
@@ -507,6 +510,7 @@ class Replicator(object):
             "password": password,
             "pkey": pkey,
             "port": port,
+            "banner_timeout": CONF.replicator.default_requests_timeout,
         }
         return args