aboutsummaryrefslogtreecommitdiff
path: root/rumba/model.py
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@ugent.be>2017-10-26 15:30:44 +0200
committerSander Vrijders <sander.vrijders@ugent.be>2017-10-26 15:30:44 +0200
commite5429581fe53d9008e5adc87634b7c29f243d412 (patch)
tree0fc1efcb16fc3fe02ec01367d010427469195237 /rumba/model.py
parentebb5bdaa08b38fa8a63fb68d23384f5cd62b412d (diff)
downloadrumba-e5429581fe53d9008e5adc87634b7c29f243d412.tar.gz
rumba-e5429581fe53d9008e5adc87634b7c29f243d412.zip
rumba: Add persistent SSH connections
This adds persistent SSH connections to Rumba. A new SSH client will be opened for every node in the experiment, which is closed after all experimentation is done.
Diffstat (limited to 'rumba/model.py')
-rw-r--r--rumba/model.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/rumba/model.py b/rumba/model.py
index 7d7e214..b44da88 100644
--- a/rumba/model.py
+++ b/rumba/model.py
@@ -198,6 +198,8 @@ class SSHConfig:
self.hostname = hostname
self.port = port
self.proxy_server = proxy_server
+ self.client = None
+ self.proxy_client = None
def set_username(self, username):
self.username = username
@@ -809,6 +811,11 @@ class Experiment:
self.dump_ssh_info()
def swap_out(self):
+ for node in self.nodes:
+ if node.ssh_config.client is not None:
+ node.ssh_config.client.close()
+ if node.ssh_config.proxy_client is not None:
+ node.ssh_config.proxy_client.close()
# Undo the testbed (testbed-specific)
self.testbed.swap_out(self)