aboutsummaryrefslogtreecommitdiff
path: root/rumba/prototypes
diff options
context:
space:
mode:
authorMarco Capitani <m.capitani@nextworks.it>2017-05-31 17:31:27 +0200
committerMarco Capitani <m.capitani@nextworks.it>2017-05-31 17:31:27 +0200
commit95cfb3169e69b7771eef9d77cf6cd99c5357ad16 (patch)
treee59b395e4cf4ee4f2ec7ccc921c81a74278b1548 /rumba/prototypes
parent49c09c68da6b99c1c3b9b61df5547fbaf5ada712 (diff)
parent24c375545c6ef7d03e8a18dea2cb06763059b1b9 (diff)
downloadrumba-95cfb3169e69b7771eef9d77cf6cd99c5357ad16.tar.gz
rumba-95cfb3169e69b7771eef9d77cf6cd99c5357ad16.zip
Merge branch 'master' into jfed-irati-fixes
Diffstat (limited to 'rumba/prototypes')
-rw-r--r--rumba/prototypes/irati.py3
-rw-r--r--rumba/prototypes/rlite.py28
2 files changed, 22 insertions, 9 deletions
diff --git a/rumba/prototypes/irati.py b/rumba/prototypes/irati.py
index 7004831..b5f8f6b 100644
--- a/rumba/prototypes/irati.py
+++ b/rumba/prototypes/irati.py
@@ -158,12 +158,15 @@ class Experiment(mod.Experiment):
'')
cmds = [self.sudo('hostname %(name)s' % format_args),
+ self.sudo('modprobe rina-irati-core'),
self.sudo('chmod a+rw /dev/irati'),
self.sudo('mv %(genfilesconf)s /etc' % format_args),
self.sudo('mv %(genfilesbin)s /usr/bin') % format_args,
self.sudo('chmod a+x /usr/bin/enroll.py') % format_args]
cmds += [self.sudo('modprobe rina-default-plugin'),
+ self.sudo('modprobe shim-eth-vlan'),
+ self.sudo('modprobe normal-ipcp'),
self.sudo('%(installpath)s/bin/ipcm -a \"%(ipcmcomps)s\" '
'-c /etc/%(name)s.ipcm.conf -l %(verb)s &> log &'
% format_args)]
diff --git a/rumba/prototypes/rlite.py b/rumba/prototypes/rlite.py
index 8a06b44..625668d 100644
--- a/rumba/prototypes/rlite.py
+++ b/rumba/prototypes/rlite.py
@@ -38,17 +38,21 @@ class Experiment(mod.Experiment):
ssh.execute_commands(self.testbed, node.ssh_config,
cmds, time_out=None)
+ # Prepend sudo to all commands if the user is not 'root'
+ def may_sudo(self, cmds):
+ if self.testbed.username != 'root':
+ for i in range(len(cmds)):
+ cmds[i] = "sudo %s" % cmds[i]
+
def init_nodes(self):
+ # Load kernel modules and start the uipcps daemon
cmds = ["modprobe rlite",
"modprobe rlite-normal",
"modprobe rlite-shim-eth",
"modprobe rlite-shim-udp4",
"modprobe rlite-shim-loopback",
"rlite-uipcps -v DBG -k 0 &> uipcp.log &"]
-
- # Load kernel modules
-
- # Start the uipcps daemon
+ self.may_sudo(cmds)
for node in self.nodes:
self.execute_commands(node, cmds)
@@ -80,6 +84,7 @@ class Experiment(mod.Experiment):
cmds.append("rlite-ctl ipcp-config %s netdev %s"
% (ipcp.name, ipcp.ifname))
+ self.may_sudo(cmds)
self.execute_commands(node, cmds)
def register_ipcps(self):
@@ -91,6 +96,7 @@ class Experiment(mod.Experiment):
cmds.append("rlite-ctl ipcp-register %s %s"
% (ipcp.name, lower.name))
+ self.may_sudo(cmds)
self.execute_commands(node, cmds)
def enroll_ipcps(self):
@@ -103,18 +109,22 @@ class Experiment(mod.Experiment):
}
cmd = "rlite-ctl ipcp-enroll %(enrollee)s %(dif)s "\
"%(lower_dif)s %(enroller)s" % d
- self.execute_commands(e['enrollee'].node, [cmd])
+ cmds = [cmd]
+ self.may_sudo(cmds)
+ self.execute_commands(e['enrollee'].node, cmds)
time.sleep(1)
def install_prototype(self):
logger.info("installing rlite on all nodes")
- cmds = ["apt-get update",
- "apt-get install g++ gcc cmake "
+ cmds = ["sudo apt-get update",
+ "export https_proxy=\"https://proxy.atlantis.ugent.be:8080\"; sudo -E apt-get install g++ gcc cmake "
"linux-headers-$(uname -r) "
"protobuf-compiler libprotobuf-dev git --yes",
"rm -rf ~/rlite",
- "cd ~; git clone https://github.com/vmaffione/rlite",
- "cd ~/rlite && ./configure && make && sudo make install"]
+ "cd ~; export https_proxy=\"https://proxy.atlantis.ugent.be:8080\"; git clone https://github.com/vmaffione/rlite",
+ "cd ~/rlite && ./configure && make && sudo make install",
+ "cd ~/rlite && sudo make depmod"
+ ]
for node in self.nodes:
self.execute_commands(node, cmds)