aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2019-04-02 15:57:15 +0200
committerDimitri Staessens <dimitri.staessens@ugent.be>2019-04-04 10:17:16 +0200
commit788589ae595d7a757209556ae2ca4a789db0929d (patch)
tree2a520b70c25719af30a55fca37e804d563df6dcf
parente85ae32074022f8212b01cb4b8829b7d16b8a23e (diff)
downloadrumba-788589ae595d7a757209556ae2ca4a789db0929d.tar.gz
rumba-788589ae595d7a757209556ae2ca4a789db0929d.zip
experiment: Add build_options and add_packages
This adds parameters build_options and add_packages that allows passing additional packages to install and a string of flags that can be processed by the prototypes. In the case of the Ouroboros prototype, it passes CMake build options.
-rw-r--r--rumba/elements/experimentation.py6
-rw-r--r--rumba/prototypes/ouroboros.py12
2 files changed, 15 insertions, 3 deletions
diff --git a/rumba/elements/experimentation.py b/rumba/elements/experimentation.py
index 92d39f5..bbb3310 100644
--- a/rumba/elements/experimentation.py
+++ b/rumba/elements/experimentation.py
@@ -111,6 +111,8 @@ class Experiment(object):
nodes=None,
git_repo=None,
git_branch=None,
+ build_options=None,
+ add_packages=[],
log_dir=None,
prototype_logs=None,
enrollment_strategy='minimal',
@@ -121,6 +123,8 @@ class Experiment(object):
:param nodes: The list of nodes in the experiment.
:param git_repo: The git repository of the prototype.
:param git_branch: The git branch of the repository.
+ :param build_options: Options for building the prototype.
+ :param add_packages: Additional packages to be installed.
:param log_dir: Where to log output of the experiment.
:param prototype_logs: Where the prototype logs its output.
:param enrollment_strategy: Can be 'full-mesh', 'minimal' or 'manual'.
@@ -138,6 +142,8 @@ class Experiment(object):
self.server_decorator = server_decorator
self.git_repo = git_repo
self.git_branch = git_branch
+ self.build_options = build_options
+ self.add_packages = add_packages
self.testbed = testbed
# the strategy employed for completing the enrollment phase in
# the different DIFs
diff --git a/rumba/prototypes/ouroboros.py b/rumba/prototypes/ouroboros.py
index 31e8571..b73e4b4 100644
--- a/rumba/prototypes/ouroboros.py
+++ b/rumba/prototypes/ouroboros.py
@@ -91,8 +91,10 @@ class Experiment(mod.Experiment):
def __init__(self,
testbed,
nodes=None,
- git_repo='git://ouroboros.rocks/ouroboros',
+ git_repo='https://ouroboros.rocks/git/ouroboros',
git_branch='master',
+ build_options='',
+ add_packages=[],
enrollment_strategy='minimal',
flows_strategy='full-mesh'):
"""
@@ -102,6 +104,8 @@ class Experiment(mod.Experiment):
:param nodes: The list of nodes.
:param git_repo: The git repository to use for installation.
:param git_branch: The branch of the git repository to use.
+ :param build_options: Options for CMake building
+ :param add_packages: Additional packages to be installed.
:param enrollment_strategy: Can be 'full-mesh', 'minimal' or 'manual'.
:param strategy: For flows, 'full-mesh', 'minimal' or 'manual'.
"""
@@ -111,6 +115,8 @@ class Experiment(mod.Experiment):
nodes,
git_repo,
git_branch,
+ build_options,
+ add_packages,
enrollment_strategy=enrollment_strategy,
flows_strategy=flows_strategy,
server_decorator=OurServer
@@ -160,7 +166,7 @@ class Experiment(mod.Experiment):
return
packages = ["cmake", "protobuf-c-compiler", "git", "libfuse-dev",
- "libgcrypt20-dev", "libssl-dev"]
+ "libgcrypt20-dev", "libssl-dev"] + self.add_packages
fs_loc = '/tmp/prototype'
@@ -169,7 +175,7 @@ class Experiment(mod.Experiment):
"git clone -b " + self.git_branch + " " + self.git_repo + \
" " + fs_loc,
"cd " + fs_loc + " && mkdir build && cd build && " +
- "cmake .. && " +
+ "cmake " + self.build_options + " .. && " +
"sudo make install -j$(nproc)"]
names = []