diff options
author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2019-04-02 15:57:15 +0200 |
---|---|---|
committer | Dimitri Staessens <dimitri.staessens@ugent.be> | 2019-04-04 10:17:16 +0200 |
commit | 788589ae595d7a757209556ae2ca4a789db0929d (patch) | |
tree | 2a520b70c25719af30a55fca37e804d563df6dcf | |
parent | e85ae32074022f8212b01cb4b8829b7d16b8a23e (diff) | |
download | rumba-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.py | 6 | ||||
-rw-r--r-- | 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 = [] |