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