aboutsummaryrefslogtreecommitdiff
path: root/rumba/testbeds/emulab.py
diff options
context:
space:
mode:
Diffstat (limited to 'rumba/testbeds/emulab.py')
-rw-r--r--rumba/testbeds/emulab.py74
1 files changed, 37 insertions, 37 deletions
diff --git a/rumba/testbeds/emulab.py b/rumba/testbeds/emulab.py
index 0d18892..605e326 100644
--- a/rumba/testbeds/emulab.py
+++ b/rumba/testbeds/emulab.py
@@ -42,16 +42,23 @@ logger = log.get_logger(__name__)
warnings.filterwarnings("ignore")
-
-# Represents an emulab testbed info
-#
-# @url [string] URL of the testbed
-# @image [string] specific image to use
-#
class Testbed(mod.Testbed):
+ """
+ Represents an emulab testbed.
+ """
def __init__(self, exp_name, username, password="",
proj_name="ARCFIRE", url="wall2.ilabt.iminds.be",
image="UBUNTU14-64-STD"):
+ """
+ Initializes the testbed class.
+
+ :param exp_name: The experiment name.
+ :param username: User of the experiment.
+ :param password: Password of the user.
+ :param proj_name: Project name of the experiment.
+ :param url: URL of the testbed.
+ :param image: Specific image to use.
+ """
mod.Testbed.__init__(self, exp_name, username, password, proj_name)
self.url = url
self.image = image
@@ -65,34 +72,28 @@ class Testbed(mod.Testbed):
def ops_server(self):
"""
- Return server name of the ops-server (is testbed specific)
+ Return server name of the ops-server (is testbed specific).
- @param self: testbed info
-
- @return: server name of the ops-server
+ :return: Server name of the ops-server.
"""
return 'ops.' + self.url
def full_name(self, node_name):
"""
- Return server name of a node
-
- @param node_name: name of the node
- @param self: testbed info
+ Return server name of a node.
- @return: server name of the node
+ :param node_name: Name of the node.
+ :return: Server name of the node.
"""
return node_name + '.' + self.exp_name + '.' + \
self.proj_name + '.' + self.url
def get_experiment_list(self, project_name=None):
"""
- Get list of made emulab experiments accessible with your credentials
+ Get list of made emulab experiments accessible with your credentials.
- @param self: testbed info
- @param project_name: optional filter on project
-
- @return: list of created experiments (strings)
+ :param project_name: Optional filter on project.
+ :return: List of created experiments.
"""
cmd = '/usr/testbed/bin/sslxmlrpc_client.py -m experiment getlist'
out = ssh.execute_command(self, self.ops_ssh_config, cmd)
@@ -107,11 +108,9 @@ class Testbed(mod.Testbed):
def swap_exp_in(self):
"""
- Swaps experiment in
+ Swaps experiment in.
- @param self: testbed info
-
- @return: Is the experiment newly swapped in
+ :return: Is the experiment newly swapped in?
"""
cmd = '/usr/testbed/bin/sslxmlrpc_client.py swapexp proj=' + \
self.proj_name + \
@@ -135,8 +134,7 @@ class Testbed(mod.Testbed):
"""
Creates an emulab experiment
- @param self: testbed info
- @param experiment: the experiment
+ :param experiment: The experiment.
"""
proj_name = self.proj_name
exp_name = self.exp_name
@@ -174,10 +172,8 @@ class Testbed(mod.Testbed):
Generate ns script based on network graph.
Enables to customize default node image.
- @param experiment: the experiment
- @param self: testbed info
-
- @return: ns2 script for Emulab experiment
+ :param experiment: The experiment.
+ :return: ns2 script for Emulab experiment.
"""
ns2_script = "# ns script generated by Rumba\n"
@@ -204,9 +200,7 @@ class Testbed(mod.Testbed):
def wait_until_nodes_up(self):
"""
- Checks if nodes are up
-
- @param self: testbed info
+ Checks if nodes are up.
"""
logger.info("Waiting until all nodes are up")
@@ -229,10 +223,9 @@ class Testbed(mod.Testbed):
def complete_experiment_graph(self, experiment):
"""
- Gets the interface (ethx) to link mapping
+ Gets the interface (ethx) to link mapping.
- @param self: testbed info
- @param experiment: the experiment
+ :param experiment: The experiment.
"""
for node in experiment.nodes:
@@ -272,6 +265,13 @@ class Testbed(mod.Testbed):
ipcp.ifname = item[0]
def _swap_in(self, experiment):
+ """
+ Swaps experiment in
+
+ :param experiment: The experiment.
+ """
+ mod.Testbed.swap_in(self, experiment)
+
self._create_experiment(experiment)
wait = self.swap_exp_in()
if wait:
@@ -282,7 +282,7 @@ class Testbed(mod.Testbed):
"""
Swaps experiment out
- @param self: testbed info
+ :param experiment: The experiment.
"""
cmd = '/usr/testbed/bin/sslxmlrpc_client.py swapexp proj=' + \
self.proj_name + \