aboutsummaryrefslogtreecommitdiff
path: root/rumba/testbeds
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@ugent.be>2017-10-25 18:35:42 +0200
committerSander Vrijders <sander.vrijders@ugent.be>2017-10-25 19:07:58 +0200
commit6503ca2369a5cc876f33bcbc41b10972602571ea (patch)
tree815635c0e5ce200f0a6737f6a7aff6076baba2d5 /rumba/testbeds
parent624a7885319ea71e0e1eef760d490871748d2967 (diff)
downloadrumba-6503ca2369a5cc876f33bcbc41b10972602571ea.tar.gz
rumba-6503ca2369a5cc876f33bcbc41b10972602571ea.zip
prototypes, testbeds, ssh_support: Add several fixes
This adds several fixes in order for rlite to function on the exogeni testbed.
Diffstat (limited to 'rumba/testbeds')
-rw-r--r--rumba/testbeds/jfed.py37
1 files changed, 16 insertions, 21 deletions
diff --git a/rumba/testbeds/jfed.py b/rumba/testbeds/jfed.py
index c79b1aa..8973335 100644
--- a/rumba/testbeds/jfed.py
+++ b/rumba/testbeds/jfed.py
@@ -231,23 +231,19 @@ class Testbed(mod.Testbed):
rspec = xml.parse(self.manifest)
xml_nodes = rspec.getElementsByTagName("node")
- # Complete details of the nodes after swapin
- logger.info("Sleeping for two seconds to avoid contacting jfed nodes "
- "too soon.")
- time.sleep(2)
for xml_node in xml_nodes:
n_name = xml_node.getAttribute("client_id")
intfs = xml_node.getElementsByTagName("interface")
- got = False
+ node_n = None
for node in experiment.nodes:
if node.name == n_name:
node_n = node
- got = True
- if not got:
- logger.error("Not found node %s", n_name)
+ break
+ if node_n is None:
+ logger.error("Didn't find node %s", n_name)
- hostname=None
+ hostname = None
if "wall" in self.auth_name:
hostname = node_n.name + "." + self.exp_name + "." + \
auth_name_r + "." + self.auth_name
@@ -258,29 +254,28 @@ class Testbed(mod.Testbed):
auth_name_r + "." + self.auth_name
if "exogeni" in self.auth_name:
- for services_node in xml_node.getElementsByTagName("services"):
- for login_node in services_node.getElementsByTagName("login"):
- hostname = login_node.getAttribute("hostname")
- break
+ s_node = xml_node.getElementsByTagName("services")[0]
+ l_node = s_node.getElementsByTagName("login")[0]
+ hostname = l_node.getAttribute("hostname")
node_n.ssh_config.hostname = hostname
for intf in intfs:
aux_mac_address = intf.getAttribute("mac_address")
- mac = ":".join(
- [aux_mac_address[i:i+2] for i in range(0, 12, 2)]
- )
+
+ if "wall" in self.auth_name:
+ mac = ":".join(
+ [aux_mac_address[i:i+2] for i in range(0, 12, 2)]
+ )
+ else:
+ mac = aux_mac_address
+
command = (
'echo "mac=\\"\$1\\"; cd / && ./sbin/ifconfig -a | '
'awk \'/^[a-z]/ { if ( \\"\'\\"\$mac\\"\'\\" == \$5 )'
' print \$1}\'" > mac2ifname.sh')
ssh_support.execute_command(self, node_n.ssh_config, command)
- # ssh_support.copy_path_to_testbed(
- # self,
- # node_n.ssh_config,
- # os.path.join(dir_path, 'mac2ifname.sh'),
- # '')
ssh_support.execute_command(
self,
node_n.ssh_config,