aboutsummaryrefslogtreecommitdiff
path: root/ouroboros_support.py
diff options
context:
space:
mode:
Diffstat (limited to 'ouroboros_support.py')
-rw-r--r--ouroboros_support.py50
1 files changed, 34 insertions, 16 deletions
diff --git a/ouroboros_support.py b/ouroboros_support.py
index 061c097..8631ad0 100644
--- a/ouroboros_support.py
+++ b/ouroboros_support.py
@@ -19,24 +19,42 @@
# MA 02110-1301 USA
import ssh_support as ssh
+import rhumba
-def setup_ouroboros(testbed, nodes):
- 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 &")
+# An experiment over the Ouroboros implementation
+class OuroborosExperiment(rhumba.Experiment):
+ def __init__(self, testbed, nodes = list()):
+ rhumba.Experiment.__init__(self, testbed, nodes)
- for node in nodes:
- ssh.execute_commands(testbed, node.full_name, cmds, time_out = None)
- return
-
-def bind_names(testbed, nodes):
- for node in nodes:
+ def setup_ouroboros(self):
cmds = list()
- for name, ap in node.bindings.items():
- cmds.append("irm b ap " + ap + " n " + name)
- ssh.execute_commands(testbed, node.full_name, cmds, time_out = None)
+ 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.realize()
+ print("Setting up Ouroboros...")
+ self.setup_ouroboros()
+ print("Binding names...")
+ self.bind_names()
+ print("[Ouroboros experiment] end")
+