diff options
author | Marco Capitani <m.capitani@nextworks.it> | 2017-11-07 11:40:54 +0100 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@ugent.be> | 2017-11-15 18:59:11 +0100 |
commit | 2da15caf24a8b2da70d755e065a5dc3d770c6454 (patch) | |
tree | 292456db4acc4ab8f4afffad50113cc7e219b6cd /rumba/model.py | |
parent | 2e91ca33f90f7c74887013e08c95bb00cdd4fc00 (diff) | |
download | rumba-2da15caf24a8b2da70d755e065a5dc3d770c6454.tar.gz rumba-2da15caf24a8b2da70d755e065a5dc3d770c6454.zip |
prototypes: Add parallel installation for IRATI
This adds parallel installation for IRATI, it also adds support for
multithread/multiprocess logging. Furthermore prototype-agnostic
utilities for multiprocessing have been added. Caching of clients has
been re-enabled for the ssh connections.
Diffstat (limited to 'rumba/model.py')
-rw-r--r-- | rumba/model.py | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/rumba/model.py b/rumba/model.py index 4e2591a..6ba93b0 100644 --- a/rumba/model.py +++ b/rumba/model.py @@ -200,6 +200,7 @@ class SSHConfig: self.proxy_server = proxy_server self.client = None self.proxy_client = None + self.http_proxy = None def set_username(self, username): self.username = username @@ -207,6 +208,9 @@ class SSHConfig: def set_password(self, password): self.password = password + def set_http_proxy(self, proxy): + self.http_proxy = proxy + # A node in the experiment # @@ -534,8 +538,8 @@ class Experiment: self.dt_strategy = 'full-mesh' # 'minimal', 'manual' self.dif_ordering = [] self.enrollments = [] # a list of per-DIF lists of enrollments - self.dt_flows = [] # a list of per-DIF lists of data transfer flows - self.mgmt_flows = [] # a list of per-DIF lists of management flows + self.dt_flows = [] # a list of per-DIF lists of data transfer flows + self.mgmt_flows = [] # a list of per-DIF lists of management flows # Generate missing information self.generate() @@ -881,8 +885,8 @@ class ClientProcess(Client): try: self.pid = self.node.execute_command(cmd) except SSHException: - logger.warn('Could not start client %s on node %s.', - self.ap, node.name) + logger.warning('Could not start client %s on node %s.', + self.ap, node.name) logger.debug('Client app %s on node %s got pid %s.', self.ap, self.node.name, self.pid) @@ -894,8 +898,8 @@ class ClientProcess(Client): try: self.node.execute_command("kill %s" % self.pid) except SSHException: - logger.warn('Could not kill client %s on node %s.', - self.ap, self.node.name) + logger.warning('Could not kill client %s on node %s.', + self.ap, self.node.name) def kill_check(self): """Check if the process should keep running, stop it if not, @@ -957,8 +961,7 @@ class Server: """ number = poisson(self.arrival_rate * interval) number = int(min(number, self.max_clients)) - l = [self.make_client_process() for _ in range(number)] - return l + return [self.make_client_process() for _ in range(number)] def make_client_process(self): """Returns a client of this server""" @@ -983,8 +986,8 @@ class Server: try: self.pids[node] = (node.execute_commands(cmds)) except SSHException: - logger.warn('Could not start server %s on node %s.', - self.ap, node.name) + logger.warning('Could not start server %s on node %s.', + self.ap, node.name) def stop(self): for node, pid in self.pids.items(): @@ -995,8 +998,8 @@ class Server: try: node.execute_command("kill %s" % pid) except SSHException: - logger.warn('Could not kill server %s on node %s.', - self.ap, node.name) + logger.warning('Could not kill server %s on node %s.', + self.ap, node.name) # Base class for ARCFIRE storyboards |