aboutsummaryrefslogtreecommitdiff
path: root/rumba/testbeds/qemu.py
diff options
context:
space:
mode:
Diffstat (limited to 'rumba/testbeds/qemu.py')
-rw-r--r--rumba/testbeds/qemu.py32
1 files changed, 25 insertions, 7 deletions
diff --git a/rumba/testbeds/qemu.py b/rumba/testbeds/qemu.py
index 5636e75..218f3e1 100644
--- a/rumba/testbeds/qemu.py
+++ b/rumba/testbeds/qemu.py
@@ -46,9 +46,27 @@ logger = log.get_logger(__name__)
class Testbed(mod.Testbed):
+ """
+ Represents a QEMU testbed.
+ """
def __init__(self, exp_name, bzimage_path=None, initramfs_path=None,
proj_name="ARCFIRE", password="root", username="root",
use_vhost=True):
+ """
+ Initializes the testbed class.
+
+ :param exp_name: The experiment name.
+ :param bzimage_path: Path of the bzimage.
+ :param initramfs_path: Path of the initramfs.
+ :param proj_name: Project name of the experiment.
+ :param password: Password of the user.
+ :param username: User of the VM.
+ :param use_vhost: Use virtual hosting or not?
+
+ .. note:: In case no bzimage or initramfs is provided, Rumba
+ will automatically download the latest version available
+ from a repository.
+ """
mod.Testbed.__init__(self, exp_name,
username, password,
proj_name, system_logs=['/var/log/messages'])
@@ -63,7 +81,7 @@ class Testbed(mod.Testbed):
self.executor = SSHExecutor(self)
# Prepend sudo to all commands if the user is not 'root'
- def may_sudo(self, cmds):
+ def _may_sudo(self, cmds):
if os.geteuid() != 0:
for i, cmd in enumerate(cmds):
cmds[i] = "sudo %s" % cmd
@@ -106,7 +124,7 @@ class Testbed(mod.Testbed):
else:
results_queue.put("Command chain ran with %d error(s)" % errors)
- def recover_if_names(self, experiment):
+ def _recover_if_names(self, experiment):
for node in experiment.nodes:
for ipcp in node.ipcps:
if isinstance(ipcp, mod.ShimEthIPCP):
@@ -228,7 +246,7 @@ class Testbed(mod.Testbed):
executors = []
for i, script in enumerate(br_tab_scripts):
names.append(i)
- self.may_sudo(script)
+ self._may_sudo(script)
args.append(script)
executors.append(executor)
@@ -335,7 +353,7 @@ class Testbed(mod.Testbed):
logger.info('All VMs are running. Moving on...')
- self.recover_if_names(experiment)
+ self._recover_if_names(experiment)
for node in experiment.nodes:
pub_key = os.path.join(os.path.expanduser("~"),
@@ -349,7 +367,7 @@ class Testbed(mod.Testbed):
logger.info('Experiment has been successfully swapped in.')
- def swap_out(self, experiment):
+ def _swap_out(self, experiment):
"""
:rtype str
:return: The script to tear down the experiment
@@ -389,7 +407,7 @@ class Testbed(mod.Testbed):
'ip tuntap del mode tap name %(tap)s'
% {'tap': tap, 'br': shim.name}
).split('\n')
- self.may_sudo(commands)
+ self._may_sudo(commands)
names.append(index)
index += 1
@@ -412,7 +430,7 @@ class Testbed(mod.Testbed):
'brctl delbr %(br)s'
% {'br': shim.name}
).split('\n')
- self.may_sudo(commands)
+ self._may_sudo(commands)
names.append(index)
index += 1