aboutsummaryrefslogtreecommitdiff
path: root/rumba/model.py
diff options
context:
space:
mode:
authorMarco Capitani <m.capitani@nextworks.it>2017-11-07 11:40:54 +0100
committerSander Vrijders <sander.vrijders@ugent.be>2017-11-15 18:59:11 +0100
commit2da15caf24a8b2da70d755e065a5dc3d770c6454 (patch)
tree292456db4acc4ab8f4afffad50113cc7e219b6cd /rumba/model.py
parent2e91ca33f90f7c74887013e08c95bb00cdd4fc00 (diff)
downloadrumba-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.py27
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