From 4bfc9fee5365f2a1aa13c8f8669e2fa3e6264b92 Mon Sep 17 00:00:00 2001 From: Vincenzo Maffione Date: Mon, 6 Feb 2017 18:24:50 +0100 Subject: move OuroborosExperiment class in its own file --- ouroboros_support.py | 50 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 16 deletions(-) (limited to 'ouroboros_support.py') 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") + -- cgit v1.2.3 From 64782b938b12a9c0f7b7bb7a152091f62e4db3a6 Mon Sep 17 00:00:00 2001 From: Vincenzo Maffione Date: Mon, 6 Feb 2017 21:33:04 +0100 Subject: rhumba: realize --> swap_in, fix double definition in IRATI class --- irati_support.py | 7 +------ ouroboros_support.py | 2 +- rhumba.py | 4 ++-- rlite_support.py | 2 +- 4 files changed, 5 insertions(+), 10 deletions(-) (limited to 'ouroboros_support.py') diff --git a/irati_support.py b/irati_support.py index 59e0c63..d5c66d2 100644 --- a/irati_support.py +++ b/irati_support.py @@ -27,11 +27,6 @@ class IRATIExperiment(rhumba.Experiment): def __init__(self, testbed, nodes = list()): rhumba.Experiment.__init__(self, testbed, nodes) - def run(self): - print("[IRATI experiment] start") - self.realize() - print("[IRATI experiment] end") - def setup(self): cmds = list() @@ -48,7 +43,7 @@ class IRATIExperiment(rhumba.Experiment): def run(self): print("[IRATI experiment] start") - self.realize() + self.swap_in() print("Setting up IRATI on the nodes...") self.setup() print("[IRATI experiment] end") diff --git a/ouroboros_support.py b/ouroboros_support.py index 8631ad0..aca1f5f 100644 --- a/ouroboros_support.py +++ b/ouroboros_support.py @@ -51,7 +51,7 @@ class OuroborosExperiment(rhumba.Experiment): def run(self): print("[Ouroboros experiment] start") print("Creating resources...") - self.realize() + self.swap_in() print("Setting up Ouroboros...") self.setup_ouroboros() print("Binding names...") diff --git a/rhumba.py b/rhumba.py index 688985c..1ffd092 100755 --- a/rhumba.py +++ b/rhumba.py @@ -292,8 +292,8 @@ class Experiment: def del_node(self, node): self.nodes.remove(node) - # Realize the experiment topology, using a testbed-specific setup - def realize(self): + # Realize the experiment, using a testbed-specific setup + def swap_in(self): self.links = get_links(self.nodes) self.testbed.create_experiment(self.nodes, self.links) diff --git a/rlite_support.py b/rlite_support.py index b34a2b1..ac1f081 100644 --- a/rlite_support.py +++ b/rlite_support.py @@ -44,7 +44,7 @@ class RLITEExperiment(rhumba.Experiment): def run(self): print("[RLITE experiment] start") - self.realize() + self.swap_in() print("Setting up rlite on the nodes...") self.setup() print("[RLITE experiment] end") -- cgit v1.2.3 From 0700292bbee309aab483692e98857018840f86ac Mon Sep 17 00:00:00 2001 From: Vincenzo Maffione Date: Tue, 7 Feb 2017 11:23:45 +0100 Subject: rename prototype files --- example.py | 6 +++--- irati_support.py | 50 ------------------------------------------- ouroboros_support.py | 60 ---------------------------------------------------- rhumba_irati.py | 50 +++++++++++++++++++++++++++++++++++++++++++ rhumba_ouroboros.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ rhumba_rlite.py | 51 ++++++++++++++++++++++++++++++++++++++++++++ rlite_support.py | 51 -------------------------------------------- 7 files changed, 164 insertions(+), 164 deletions(-) delete mode 100644 irati_support.py delete mode 100644 ouroboros_support.py create mode 100644 rhumba_irati.py create mode 100644 rhumba_ouroboros.py create mode 100644 rhumba_rlite.py delete mode 100644 rlite_support.py (limited to 'ouroboros_support.py') diff --git a/example.py b/example.py index 076bcc6..6013173 100644 --- a/example.py +++ b/example.py @@ -3,9 +3,9 @@ # An example script using rhumba.py from rhumba import * -import ouroboros_support as our -import rlite_support as rl -import irati_support as irati +import rhumba_ouroboros as our +import rhumba_rlite as rl +import rhumba_irati as irati n1 = NormalDIF("n1", policies = {"rmt.pff": "lfa", "security-manager": "passwd"}) diff --git a/irati_support.py b/irati_support.py deleted file mode 100644 index d5c66d2..0000000 --- a/irati_support.py +++ /dev/null @@ -1,50 +0,0 @@ -# -# Commands to setup and instruct IRATI -# -# Vincenzo Maffione -# -# 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 IRATI implementation -class IRATIExperiment(rhumba.Experiment): - def __init__(self, testbed, nodes = list()): - rhumba.Experiment.__init__(self, testbed, nodes) - - def setup(self): - cmds = list() - - cmds.append("sudo apt-get update") - cmds.append("sudo apt-get install g++ gcc " - "protobuf-compiler libprotobuf-dev git --yes") - cmds.append("sudo rm -rf ~/irati") - cmds.append("cd && git clone https://github.com/IRATI/stack irati") - cmds.append("cd ~/irati && sudo ./install-from-scratch") - cmds.append("sudo nohup ipcm &> ipcm.log &") - - for node in self.nodes: - ssh.execute_commands(self.testbed, node.full_name, cmds, time_out = None) - - def run(self): - print("[IRATI experiment] start") - self.swap_in() - print("Setting up IRATI on the nodes...") - self.setup() - print("[IRATI experiment] end") - diff --git a/ouroboros_support.py b/ouroboros_support.py deleted file mode 100644 index aca1f5f..0000000 --- a/ouroboros_support.py +++ /dev/null @@ -1,60 +0,0 @@ -# -# Commands to instruct Ouroboros -# -# Sander Vrijders -# -# 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") - diff --git a/rhumba_irati.py b/rhumba_irati.py new file mode 100644 index 0000000..d5c66d2 --- /dev/null +++ b/rhumba_irati.py @@ -0,0 +1,50 @@ +# +# Commands to setup and instruct IRATI +# +# Vincenzo Maffione +# +# 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 IRATI implementation +class IRATIExperiment(rhumba.Experiment): + def __init__(self, testbed, nodes = list()): + rhumba.Experiment.__init__(self, testbed, nodes) + + def setup(self): + cmds = list() + + cmds.append("sudo apt-get update") + cmds.append("sudo apt-get install g++ gcc " + "protobuf-compiler libprotobuf-dev git --yes") + cmds.append("sudo rm -rf ~/irati") + cmds.append("cd && git clone https://github.com/IRATI/stack irati") + cmds.append("cd ~/irati && sudo ./install-from-scratch") + cmds.append("sudo nohup ipcm &> ipcm.log &") + + for node in self.nodes: + ssh.execute_commands(self.testbed, node.full_name, cmds, time_out = None) + + def run(self): + print("[IRATI experiment] start") + self.swap_in() + print("Setting up IRATI on the nodes...") + self.setup() + print("[IRATI experiment] end") + 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 +# +# 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") + diff --git a/rhumba_rlite.py b/rhumba_rlite.py new file mode 100644 index 0000000..ac1f081 --- /dev/null +++ b/rhumba_rlite.py @@ -0,0 +1,51 @@ +# +# Commands to setup and instruct rlite +# +# Vincenzo Maffione +# +# 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 RLITE implementation +class RLITEExperiment(rhumba.Experiment): + def __init__(self, testbed, nodes = list()): + rhumba.Experiment.__init__(self, testbed, nodes) + + def setup(self): + cmds = list() + + cmds.append("sudo apt-get update") + cmds.append("sudo apt-get install g++ gcc cmake " + "linux-headers-$(uname -r) " + "protobuf-compiler libprotobuf-dev git --yes") + cmds.append("sudo rm -rf ~/rlite") + cmds.append("cd ~; git clone https://github.com/vmaffione/rlite") + cmds.append("cd ~/rlite && ./configure && make && sudo make install") + cmds.append("sudo nohup rlite-uipcps -v DBG -k 0 -U -A &> uipcp.log &") + + for node in self.nodes: + ssh.execute_commands(self.testbed, node.full_name, cmds, time_out = None) + + def run(self): + print("[RLITE experiment] start") + self.swap_in() + print("Setting up rlite on the nodes...") + self.setup() + print("[RLITE experiment] end") + diff --git a/rlite_support.py b/rlite_support.py deleted file mode 100644 index ac1f081..0000000 --- a/rlite_support.py +++ /dev/null @@ -1,51 +0,0 @@ -# -# Commands to setup and instruct rlite -# -# Vincenzo Maffione -# -# 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 RLITE implementation -class RLITEExperiment(rhumba.Experiment): - def __init__(self, testbed, nodes = list()): - rhumba.Experiment.__init__(self, testbed, nodes) - - def setup(self): - cmds = list() - - cmds.append("sudo apt-get update") - cmds.append("sudo apt-get install g++ gcc cmake " - "linux-headers-$(uname -r) " - "protobuf-compiler libprotobuf-dev git --yes") - cmds.append("sudo rm -rf ~/rlite") - cmds.append("cd ~; git clone https://github.com/vmaffione/rlite") - cmds.append("cd ~/rlite && ./configure && make && sudo make install") - cmds.append("sudo nohup rlite-uipcps -v DBG -k 0 -U -A &> uipcp.log &") - - for node in self.nodes: - ssh.execute_commands(self.testbed, node.full_name, cmds, time_out = None) - - def run(self): - print("[RLITE experiment] start") - self.swap_in() - print("Setting up rlite on the nodes...") - self.setup() - print("[RLITE experiment] end") - -- cgit v1.2.3