Prechádzať zdrojové kódy

added a try-block to catch the SSH error

Golubov 2 rokov pred
rodič
commit
4a09421fcd
1 zmenil súbory, kde vykonal 9 pridanie a 5 odobranie
  1. 9 5
      coriolis/providers/replicator.py

+ 9 - 5
coriolis/providers/replicator.py

@@ -16,7 +16,7 @@ import requests
 
 
 from coriolis import exception
 from coriolis import exception
 from coriolis import utils
 from coriolis import utils
-
+from coriolis.exception import NotAuthorized
 
 
 LOG = logging.getLogger(__name__)
 LOG = logging.getLogger(__name__)
 
 
@@ -470,10 +470,13 @@ 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 NotAuthorized("Failed to setup SSH client: %s" % str(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