aboutsummaryrefslogtreecommitdiff
path: root/rhumba_ouroboros.py
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@intec.ugent.be>2017-02-07 10:34:36 +0000
committerSander Vrijders <sander.vrijders@intec.ugent.be>2017-02-07 10:34:36 +0000
commit46975a115ee68ed742bb01d203dd6ec3d84dfa6b (patch)
tree6a87235d1a4a848ed7f9ef90f399a0a8d8f0d99b /rhumba_ouroboros.py
parent06f455b9b47d9a902b67f06ba85af071e68e06ce (diff)
parent0700292bbee309aab483692e98857018840f86ac (diff)
downloadrumba-46975a115ee68ed742bb01d203dd6ec3d84dfa6b.tar.gz
rumba-46975a115ee68ed742bb01d203dd6ec3d84dfa6b.zip
Merge branch 'master-vincenzo' into 'master'
Master vincenzo See merge request !5
Diffstat (limited to 'rhumba_ouroboros.py')
-rw-r--r--rhumba_ouroboros.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/rhumba_ouroboros.py b/rhumba_ouroboros.py
new file mode 100644
index 0000000..aca1f5f
--- /dev/null
+++ b/rhumba_ouroboros.py
@@ -0,0 +1,60 @@
+#
+# Commands to instruct Ouroboros
+#
+# Sander Vrijders <sander.vrijders@intec.ugent.be>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+import ssh_support as ssh
+import rhumba
+
+
+# An experiment over the Ouroboros implementation
+class OuroborosExperiment(rhumba.Experiment):
+ def __init__(self, testbed, nodes = list()):
+ rhumba.Experiment.__init__(self, testbed, nodes)
+
+ def setup_ouroboros(self):
+ cmds = list()
+
+ cmds.append("sudo apt-get update")
+ cmds.append("sudo apt-get install cmake protobuf-c-compiler git --yes")
+ cmds.append("sudo rm -r ~/ouroboros/build")
+ cmds.append("cd ~/ouroboros; sudo ./install_release.sh")
+ cmds.append("sudo nohup irmd > /dev/null &")
+
+ for node in self.nodes:
+ ssh.execute_commands(self.testbed, node.full_name, cmds, time_out = None)
+ return
+
+ def bind_names(self):
+ for node in self.nodes:
+ cmds = list()
+ for name, ap in node.bindings.items():
+ cmds.append("irm b ap " + ap + " n " + name)
+
+ ssh.execute_commands(self.testbed, node.full_name, cmds, time_out = None)
+
+ def run(self):
+ print("[Ouroboros experiment] start")
+ print("Creating resources...")
+ self.swap_in()
+ print("Setting up Ouroboros...")
+ self.setup_ouroboros()
+ print("Binding names...")
+ self.bind_names()
+ print("[Ouroboros experiment] end")
+