mirror of
https://github.com/Kkevsterrr/geneva
synced 2025-01-15 05:19:58 +01:00
Updated evaluator's handling of remote clients to prefer hostnames to IP addresses if they are defined
This commit is contained in:
parent
9874ce083e
commit
3b3fdff874
17
evaluator.py
17
evaluator.py
@ -25,6 +25,8 @@ import censors.censor_driver
|
||||
# Suppress unfixed Paramiko warnings (see Paramiko issue #1386)
|
||||
warnings.filterwarnings(action='ignore',module='.*paramiko.*')
|
||||
|
||||
# Placeholder for a docker import (see below why we cannot import docker here)
|
||||
docker = None
|
||||
BASEPATH = os.path.dirname(os.path.abspath(__file__))
|
||||
PROJECT_ROOT = BASEPATH
|
||||
|
||||
@ -755,9 +757,16 @@ class Evaluator():
|
||||
paramiko_logger = paramiko.util.logging.getLogger()
|
||||
paramiko_logger.setLevel(logging.WARN)
|
||||
worker = actions.utils.get_worker(self.external_client, self.logger)
|
||||
|
||||
if self.use_docker:
|
||||
worker["ip"] = "0.0.0.0"
|
||||
self.logger.debug("Connecting to worker %s@%s" % (worker["username"], worker["ip"]))
|
||||
|
||||
# Pull the destination to connect to this worker. Preference hostnames over IP addresses.
|
||||
destination = worker["hostname"]
|
||||
if not destination:
|
||||
destination = worker["ip"]
|
||||
|
||||
self.logger.debug("Connecting to worker %s@%s" % (worker["username"], destination))
|
||||
remote = paramiko.SSHClient()
|
||||
remote.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
max_tries = 5
|
||||
@ -766,12 +775,12 @@ class Evaluator():
|
||||
try:
|
||||
if "keyfile" in worker:
|
||||
k = paramiko.RSAKey.from_private_key_file(worker["keyfile"])
|
||||
remote.connect(worker["ip"], username=worker["username"], pkey=k, port=worker["port"], timeout=60)
|
||||
remote.connect(destination, username=worker["username"], pkey=k, port=worker["port"], timeout=60)
|
||||
else:
|
||||
remote.connect(worker["ip"], username=worker["username"], password=worker["password"], port=worker["port"], timeout=60)
|
||||
remote.connect(destination, username=worker["username"], password=worker["password"], port=worker["port"], timeout=60)
|
||||
break
|
||||
except socket.timeout:
|
||||
self.logger.error("Could not connect to worker %s" % worker["ip"])
|
||||
self.logger.error("Could not connect to worker %s" % destination)
|
||||
i += 1
|
||||
return remote
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user