aboutsummaryrefslogtreecommitdiff
path: root/rumba/testbeds
diff options
context:
space:
mode:
authorVincenzo Maffione <v.maffione@gmail.com>2017-06-01 15:51:19 +0000
committerVincenzo Maffione <v.maffione@gmail.com>2017-06-01 15:51:19 +0000
commit430f1a369f9dbc1328abb3ea750cfcc0c4db0c3e (patch)
tree684e1fca97b1414843ef61a7840dceeeaa8c826b /rumba/testbeds
parent7d816ccc891934d34465fc30cc8de1b4d55381f6 (diff)
parent15687f1938dd5faa68eccfdcacc45fb4b0644b45 (diff)
downloadrumba-430f1a369f9dbc1328abb3ea750cfcc0c4db0c3e.tar.gz
rumba-430f1a369f9dbc1328abb3ea750cfcc0c4db0c3e.zip
Merge branch 'download' into 'master'
QEMU plugin: download buildroot images if not provided by the user See merge request !51
Diffstat (limited to 'rumba/testbeds')
-rw-r--r--rumba/testbeds/qemu.py24
1 files changed, 21 insertions, 3 deletions
diff --git a/rumba/testbeds/qemu.py b/rumba/testbeds/qemu.py
index a916525..b7ebef9 100644
--- a/rumba/testbeds/qemu.py
+++ b/rumba/testbeds/qemu.py
@@ -26,24 +26,25 @@ import os
import rumba.model as mod
import rumba.log as log
import rumba.ssh_support as ssh_support
+import wget
logger = log.get_logger(__name__)
class Testbed(mod.Testbed):
- def __init__(self, exp_name, bzimage, initramfs, proj_name="ARCFIRE",
+ def __init__(self, exp_name, bzimage=None, initramfs=None, proj_name="ARCFIRE",
password="root", username="root",
use_vhost=True, qemu_logs_dir=None):
mod.Testbed.__init__(self, exp_name, username, password, proj_name)
self.vms = {}
self.shims = []
- self.bzimage = bzimage
- self.initramfs = initramfs
self.vhost = use_vhost
self.qemu_logs_dir = os.getcwd() if qemu_logs_dir is None \
else qemu_logs_dir
self.boot_processes = []
+ self.bzimage = bzimage
+ self.initramfs = initramfs
@staticmethod
def _run_command_chain(commands, results_queue,
@@ -114,6 +115,23 @@ class Testbed(mod.Testbed):
raise Exception('Not authenticated')
logger.info("swapping in")
+
+ # Download the proper buildroot images, if the user did not specify
+ # local images
+ url_prefix = "https://bitbucket.org/vmaffione/rina-images/downloads/"
+ if not self.bzimage:
+ self.bzimage = '%s.bzImage' % (experiment.prototype_name())
+ if not os.path.exists(self.bzimage):
+ logger.info("Downloading %s" % (url_prefix + self.bzimage))
+ wget.download(url_prefix + self.bzimage)
+ print("\n")
+ if not self.initramfs:
+ self.initramfs = '%s.rootfs.cpio' % (experiment.prototype_name())
+ if not os.path.exists(self.initramfs):
+ logger.info("Downloading %s" % (url_prefix + self.initramfs))
+ wget.download(url_prefix + self.initramfs)
+ print("\n")
+
logger.info('Setting up interfaces.')
# Building bridges and taps