From 788589ae595d7a757209556ae2ca4a789db0929d Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Tue, 2 Apr 2019 15:57:15 +0200 Subject: 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. --- rumba/elements/experimentation.py | 6 ++++++ rumba/prototypes/ouroboros.py | 12 +++++++++--- 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 = [] -- cgit v1.2.3