diff options
Diffstat (limited to 'rumba/prototypes/ouroboros.py')
-rw-r--r-- | rumba/prototypes/ouroboros.py | 49 |
1 files changed, 17 insertions, 32 deletions
diff --git a/rumba/prototypes/ouroboros.py b/rumba/prototypes/ouroboros.py index 33ecd0b..97f6e1a 100644 --- a/rumba/prototypes/ouroboros.py +++ b/rumba/prototypes/ouroboros.py @@ -31,7 +31,8 @@ import rumba.ssh_support as ssh import rumba.model as mod import rumba.multiprocess as m_processing import rumba.log as log -import rumba.testbeds.faketestbed as fake +import rumba.testbeds.local as local +import rumba.testbeds.dockertb as docker logger = log.get_logger(__name__) @@ -45,6 +46,8 @@ class Experiment(mod.Experiment): mod.Experiment.__init__(self, testbed, nodes, git_repo, git_branch) self.r_ipcps = dict() + self.set_startup_command("irmd") + @staticmethod def make_executor(node, packages, testbed): def executor(commands): @@ -68,19 +71,20 @@ class Experiment(mod.Experiment): self.exec_local_cmd(cmd) def setup_ouroboros(self): - if isinstance(self.testbed, fake.Testbed): + if isinstance(self.testbed, docker.Testbed): + return + + if isinstance(self.testbed, local.Testbed): subprocess.check_call('sudo -v'.split()) self.irmd = subprocess.Popen(["sudo", "irmd"]) logger.info("Started IRMd, sleeping 2 seconds...") time.sleep(2) else: for node in self.nodes: - ssh.execute_command(self.testbed, node.ssh_config, - "sudo nohup irmd > /dev/null &", - time_out=None) + node.execute_command("sudo nohup irmd > /dev/null &", time_out=None) def install_ouroboros(self): - if isinstance(self.testbed, fake.Testbed): + if isinstance(self.testbed, local.Testbed): return packages = ["cmake", "protobuf-c-compiler", "git", "libfuse-dev", @@ -120,7 +124,7 @@ class Experiment(mod.Experiment): cmd = "irm i c n " + ipcp.name if isinstance(ipcp.dif, mod.ShimEthDIF): - if isinstance(self.testbed, fake.Testbed): + if isinstance(self.testbed, local.Testbed): cmd += " type local layer " + ipcp.dif.name else: cmd += " type eth-llc dev " + ipcp.ifname @@ -154,11 +158,7 @@ class Experiment(mod.Experiment): # Postpone registrations self.r_ipcps[ipcp] = cmds2 - if isinstance(self.testbed, fake.Testbed): - self.exec_local_cmds(cmds) - else: - ssh.execute_commands(self.testbed, node.ssh_config, cmds, - time_out=None) + node.execute_commands(cmds, time_out=None) def enroll_dif(self, el): for e in el: @@ -167,13 +167,8 @@ class Experiment(mod.Experiment): # Execute postponed registration if e['enroller'] in self.r_ipcps: - if isinstance(self.testbed, fake.Testbed): - self.exec_local_cmds(self.r_ipcps[e['enroller']]) - else: - ssh.execute_commands(self.testbed, - e['enroller'].node.ssh_config, - self.r_ipcps[e['enroller']], - time_out=None) + e['enroller'].node.execute_commands(self.r_ipcps[e['enroller']], + time_out=None) self.r_ipcps.pop(e['enroller'], None) cmd = "irm r n " + ipcp.name @@ -188,12 +183,7 @@ class Experiment(mod.Experiment): cmd += " layer " + dif_b.name cmds.append(cmd) - if isinstance(self.testbed, fake.Testbed): - self.exec_local_cmds(cmds) - else: - ssh.execute_commands(self.testbed, - e['enrollee'].node.ssh_config, - cmds, time_out=None) + e['enrollee'].node.execute_commands(cmds, time_out=None) def setup_flows(self, el, comp): for e in el: @@ -201,12 +191,7 @@ class Experiment(mod.Experiment): cmd = "irm i conn n " + ipcp.name + " comp " + \ comp + " dst " + e['dst'].name - if isinstance(self.testbed, fake.Testbed): - self.exec_local_cmd(cmd) - else: - ssh.execute_command(self.testbed, - ipcp.node.ssh_config, - cmd, time_out=None) + ipcp.node.execute_command(cmd, time_out=None) def _install_prototype(self): logger.info("Installing Ouroboros...") @@ -230,6 +215,6 @@ class Experiment(mod.Experiment): logger.info("All done, have fun!") def _terminate_prototype(self): - if isinstance(self.testbed, fake.Testbed): + if isinstance(self.testbed, local.Testbed): logger.info("Killing IRMd...") subprocess.check_call('sudo killall -15 irmd'.split()) |