X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=test%2Fresources%2Fplanetlab%2Fgretunnel.py;h=98ad8030eb7f71337deeb900f203aed6f0aacf02;hb=38575a0f27f26511965771dde8320060b10252dd;hp=1d69a698936af3d911b2013b7ca36d1f457ad101;hpb=731febb6e113ad858232827fd03f9a932dea16b5;p=nepi.git diff --git a/test/resources/planetlab/gretunnel.py b/test/resources/planetlab/gretunnel.py index 1d69a698..98ad8030 100755 --- a/test/resources/planetlab/gretunnel.py +++ b/test/resources/planetlab/gretunnel.py @@ -26,12 +26,14 @@ import os import time import unittest -class GRETunnelTestCase(unittest.TestCase): +class PlanetLabGRETunnelTestCase(unittest.TestCase): def setUp(self): #self.host1 = "nepi2.pl.sophia.inria.fr" #self.host2 = "nepi5.pl.sophia.inria.fr" + #self.host2 = "planetlab1.informatik.uni-goettingen.de" self.host1 = "planetlab1.informatik.uni-erlangen.de" - self.host2 = "planetlab1.informatik.uni-goettingen.de" + self.host2 = "planck227ple.test.ibbt.be" + self.host3 = "roseval.pl.sophia.inria.fr" self.user = "inria_nepi" self.identity = "%s/.ssh/id_rsa_planetlab" % (os.environ['HOME']) #self.netblock = "192.168.1" @@ -47,24 +49,26 @@ class GRETunnelTestCase(unittest.TestCase): ec.set(node1, "hostname", host1) ec.set(node1, "username", user1) ec.set(node1, "identity", identity1) - ec.set(node1, "cleanHome", True) + #ec.set(node1, "cleanHome", True) + ec.set(node1, "cleanExperiment", True) ec.set(node1, "cleanProcesses", True) tap1 = ec.register_resource("PlanetlabTap") - ec.set(tap1, "ip4", "%s.1" % self.netblock) - ec.set(tap1, "prefix4", 24) + ec.set(tap1, "endpoint_ip", "%s.1" % self.netblock) + ec.set(tap1, "endpoint_prefix", 24) ec.register_connection(tap1, node1) node2 = ec.register_resource("PlanetlabNode") ec.set(node2, "hostname", host2) ec.set(node2, "username", user2) ec.set(node2, "identity", identity2) - ec.set(node2, "cleanHome", True) + #ec.set(node2, "cleanHome", True) + ec.set(node2, "cleanExperiment", True) ec.set(node2, "cleanProcesses", True) tap2 = ec.register_resource("PlanetlabTap") - ec.set(tap2, "ip4", "%s.2" % self.netblock) - ec.set(tap2, "prefix4", 24) + ec.set(tap2, "endpoint_ip", "%s.2" % self.netblock) + ec.set(tap2, "endpoint_prefix", 24) ec.register_connection(tap2, node2) gretun = ec.register_resource("LinuxGRETunnel") @@ -102,24 +106,26 @@ class GRETunnelTestCase(unittest.TestCase): ec.set(node1, "hostname", host1) ec.set(node1, "username", user1) ec.set(node1, "identity", identity1) - ec.set(node1, "cleanHome", True) + #ec.set(node1, "cleanHome", True) + ec.set(node1, "cleanExperiment", True) ec.set(node1, "cleanProcesses", True) tun1 = ec.register_resource("PlanetlabTun") - ec.set(tun1, "ip4", "%s.1" % self.netblock) - ec.set(tun1, "prefix4", 24) + ec.set(tun1, "endpoint_ip", "%s.1" % self.netblock) + ec.set(tun1, "endpoint_prefix", 24) ec.register_connection(tun1, node1) node2 = ec.register_resource("PlanetlabNode") ec.set(node2, "hostname", host2) ec.set(node2, "username", user2) ec.set(node2, "identity", identity2) - ec.set(node2, "cleanHome", True) + #ec.set(node2, "cleanHome", True) + ec.set(node2, "cleanExperiment", True) ec.set(node2, "cleanProcesses", True) tun2 = ec.register_resource("PlanetlabTun") - ec.set(tun2, "ip4", "%s.2" % self.netblock) - ec.set(tun2, "prefix4", 24) + ec.set(tun2, "endpoint_ip", "%s.2" % self.netblock) + ec.set(tun2, "endpoint_prefix", 24) ec.register_connection(tun2, node2) udptun = ec.register_resource("LinuxGRETunnel") @@ -147,6 +153,65 @@ class GRETunnelTestCase(unittest.TestCase): ec.shutdown() + @skipIfAnyNotAliveWithIdentity + def t_tun_hybrid_gre_tunnel(self, user1, host1, identity1, + user2, host2, identity2): + + ec = ExperimentController(exp_id = "test-tap-hybrid-gre-tunnel") + + node1 = ec.register_resource("PlanetlabNode") + ec.set(node1, "hostname", host1) + ec.set(node1, "username", user1) + ec.set(node1, "identity", identity1) + #ec.set(node1, "cleanHome", True) + ec.set(node1, "cleanExperiment", True) + ec.set(node1, "cleanProcesses", True) + + tun1 = ec.register_resource("PlanetlabTun") + ec.set(tun1, "endpoint_ip", "%s.1" % self.netblock) + ec.set(tun1, "endpoint_prefix", 24) + ec.register_connection(tun1, node1) + + node2 = ec.register_resource("LinuxNode") + ec.set(node2, "hostname", host2) + ec.set(node2, "username", user2) + ec.set(node2, "identity", identity2) + #ec.set(node2, "cleanHome", True) + ec.set(node2, "cleanExperiment", True) + ec.set(node2, "cleanProcesses", True) + + tun2 = ec.register_resource("LinuxTun") + ec.set(tun2, "endpoint_ip", "%s.2" % self.netblock) + ec.set(tun2, "endpoint_prefix", 24) + ec.register_connection(tun2, node2) + + gretun = ec.register_resource("LinuxGRETunnel") + ec.register_connection(tun1, gretun) + ec.register_connection(tun2, gretun) + + app = ec.register_resource("LinuxApplication") + # It seems the hybrid tunnel takes some time to setup... we add a sleep 5 + # XXX: Debug this to see if it can be fixed on the RMs + cmd = "sleep 5; ping -c3 %s.2" % self.netblock + ec.set(app, "command", cmd) + ec.register_connection(app, node1) + + ec.deploy() + + ec.wait_finished(app) + + ping = ec.trace(app, 'stdout') + expected = """3 packets transmitted, 3 received, 0% packet loss""" + self.assertTrue(ping.find(expected) > -1) + + if_name = ec.get(tun1, "deviceName") + self.assertTrue(if_name.startswith("tun")) + + if_name = ec.get(tun2, "deviceName") + self.assertTrue(if_name.startswith("tun")) + + ec.shutdown() + def test_tap_gre_tunnel(self): self.t_tap_gre_tunnel(self.user, self.host1, self.identity, self.user, self.host2, self.identity) @@ -155,6 +220,11 @@ class GRETunnelTestCase(unittest.TestCase): self.t_tun_gre_tunnel(self.user, self.host1, self.identity, self.user, self.host2, self.identity) + def test_tun_hybrid_gre_tunnel(self): + self.t_tun_hybrid_gre_tunnel(self.user, self.host1, self.identity, + self.user, self.host3, self.identity) + + if __name__ == '__main__': unittest.main()