예제 #1
0
    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("planetlab::Node")
        ec.set(node1, "hostname", host1)
        ec.set(node1, "username", user1)
        ec.set(node1, "identity", identity1)
        ec.set(node1, "cleanExperiment", True)
        ec.set(node1, "cleanProcesses", True)

        tun1 = ec.register_resource("planetlab::Tun")
        ec.set(tun1, "ip", "%s.1" % self.netblock)
        ec.set(tun1, "prefix", "24")
        ec.register_connection(tun1, node1)

        node2 = ec.register_resource("linux::Node")
        ec.set(node2, "hostname", host2)
        ec.set(node2, "username", user2)
        ec.set(node2, "identity", identity2)
        ec.set(node2, "cleanExperiment", True)
        ec.set(node2, "cleanProcesses", True)

        tun2 = ec.register_resource("linux::Tun")
        ec.set(tun2, "ip", "%s.2" % self.netblock)
        ec.set(tun2, "prefix", "24")
        ec.register_connection(tun2, node2)

        gretun = ec.register_resource("linux::GRETunnel")
        ec.register_connection(tun1, gretun)
        ec.register_connection(tun2, gretun)

        app = ec.register_resource("linux::Application")
        # 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()
예제 #2
0
파일: gretunnel.py 프로젝트: phiros/nepi
    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("planetlab::Node")
        ec.set(node1, "hostname", host1)
        ec.set(node1, "username", user1)
        ec.set(node1, "identity", identity1)
        ec.set(node1, "cleanExperiment", True)
        ec.set(node1, "cleanProcesses", True)

        tun1 = ec.register_resource("planetlab::Tun")
        ec.set(tun1, "ip", "%s.1" % self.netblock)
        ec.set(tun1, "prefix", "24")
        ec.register_connection(tun1, node1)

        node2 = ec.register_resource("linux::Node")
        ec.set(node2, "hostname", host2)
        ec.set(node2, "username", user2)
        ec.set(node2, "identity", identity2)
        ec.set(node2, "cleanExperiment", True)
        ec.set(node2, "cleanProcesses", True)

        tun2 = ec.register_resource("linux::Tun")
        ec.set(tun2, "ip", "%s.2" % self.netblock)
        ec.set(tun2, "prefix", "24")
        ec.register_connection(tun2, node2)

        gretun = ec.register_resource("linux::GRETunnel")
        ec.register_connection(tun1, gretun)
        ec.register_connection(tun2, gretun)

        app = ec.register_resource("linux::Application")
        # 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()
예제 #3
0
    def t_tap_udp_tunnel(self, user1, host1, identity1, user2, host2, 
            identity2):

        ec = ExperimentController(exp_id="test-tap-udp-tunnel")
        
        node1 = ec.register_resource("linux::Node")
        ec.set(node1, "hostname", host1)
        ec.set(node1, "username", user1)
        ec.set(node1, "identity", identity1)
        ec.set(node1, "cleanExperiment", True)
        ec.set(node1, "cleanProcesses", True)

        tap1 = ec.register_resource("linux::Tap")
        ec.set(tap1, "ip", "%s.1" % self.netblock)
        ec.set(tap1, "prefix", "32")
        ec.register_connection(tap1, node1)

        node2 = ec.register_resource("linux::Node")
        ec.set(node2, "hostname", host2)
        ec.set(node2, "username", user2)
        ec.set(node2, "identity", identity2)
        ec.set(node2, "cleanExperiment", True)
        ec.set(node2, "cleanProcesses", True)

        tap2 = ec.register_resource("linux::Tap")
        ec.set(tap2, "ip", "%s.2" % self.netblock)
        ec.set(tap2, "prefix", "32")
        ec.register_connection(tap2, node2)

        udptun = ec.register_resource("linux::UdpTunnel")
        ec.register_connection(tap1, udptun)
        ec.register_connection(tap2, udptun)

        app = ec.register_resource("linux::Application")
        cmd = "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)
        
        vif_name = ec.get(tap1, "deviceName")
        self.assertTrue(vif_name.startswith("tap"))
        
        vif_name = ec.get(tap2, "deviceName")
        self.assertTrue(vif_name.startswith("tap"))

        ec.shutdown()
예제 #4
0
    def t_tap_create(self, host, user, identity):

        ec = ExperimentController(exp_id="test-tap-create")

        node = ec.register_resource("planetlab::Node")
        ec.set(node, "hostname", host)
        ec.set(node, "username", user)
        ec.set(node, "identity", identity)
        ec.set(node, "cleanExperiment", True)
        ec.set(node, "cleanProcesses", True)

        tap = ec.register_resource("planetlab::Tap")
        ec.set(tap, "ip", "%s.1" % self.netblock)
        ec.set(tap, "prefix", "24")
        ec.register_connection(tap, node)

        app = ec.register_resource("linux::Application")
        cmd = "ping -c3 %s.1" % self.netblock
        ec.set(app, "command", cmd)
        ec.register_connection(app, node)

        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(tap, "deviceName")
        self.assertTrue(if_name.startswith("tap"))

        ec.shutdown()
예제 #5
0
파일: tun.py 프로젝트: phiros/nepi
    def t_tun_create(self, host, user, identity):

        ec = ExperimentController(exp_id="test-un-create")
        
        node = ec.register_resource("planetlab::Node")
        ec.set(node, "hostname", host)
        ec.set(node, "username", user)
        ec.set(node, "identity", identity)
        ec.set(node, "cleanExperiment", True)
        ec.set(node, "cleanProcesses", True)

        tun = ec.register_resource("planetlab::Tun")
        ec.set(tun, "ip", "%s.1" % self.netblock)
        ec.set(tun, "prefix", "24")
        ec.register_connection(tun, node)

        app = ec.register_resource("linux::Application")
        cmd = "ping -c3 %s.1" % self.netblock
        ec.set(app, "command", cmd)
        ec.register_connection(app, node)

        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(tun, "deviceName")
        self.assertTrue(if_name.startswith("tun"))

        ec.shutdown()
예제 #6
0
    def t_deploy(self, host, user):
        from nepi.execution.resource import ResourceFactory
        
        ResourceFactory.register_type(LinuxNode)
        ResourceFactory.register_type(LinuxInterface)
        ResourceFactory.register_type(LinuxChannel)

        ec = ExperimentController()
        
        node = ec.register_resource("linux::Node")
        ec.set(node, "hostname", host)
        ec.set(node, "username", user)

        iface = ec.register_resource("linux::Interface")
        chan = ec.register_resource("linux::Channel")

        ec.register_connection(iface, node)
        ec.register_connection(iface, chan)

        ec.deploy()

        while not all([ ec.state(guid) == ResourceState.STARTED \
                for guid in [node, iface]]):
            time.sleep(0.5)

        self.assertTrue(ec.state(node) == ResourceState.STARTED)
        self.assertTrue(ec.state(iface) == ResourceState.STARTED)
        self.assertTrue(ec.get(iface, "deviceName") == "eth0")

        ec.shutdown()
예제 #7
0
	nodes.append(node)
	command_client = "iperf  -i 1 -f m -c %s -t %d -p %d  -y c > node%d.out " % (bonfire_host[1],seconds,port,node)
	app = create_app(ec,command_client,dependencies="iperf")
	ec.register_connection(app,node)
	#The app will be started once the app_bf application is running
	apps.append(app)
	node_app[node] = app
	ec.register_condition(app,ResourceAction.START, app_bonfire, ResourceState.STARTED)

#print "NODE under APP :" ,node_app	

# Deploy the experiment:

#pdb.set_trace()
ec.deploy()

ec.wait_finished(apps)


for node, app in node_app.iteritems():
#	print "iteration :",node,app
	trace=ec.trace(app,"node%d.out"%(node))
	f = open(ec.get(node,"country")+":"+ec.get(node,"ip")+":"+"node%d.out"%(node),"w")
	f.write(trace)
	f.close()
#print ec.trace(app1,"stdout")
# Do the experiment controller shutdown:
ec.shutdown()

# END
예제 #8
0
for host in nodes_customers:
    print host
    node = create_node(ec, slice, pleuser, plepass, host)
    nodes.append(node)
    command_client = "ping %s -w %d  > node%d.out " % ("ple6.ipv6.lip6.fr",
                                                       seconds, node)
    app = create_app(ec, command_client)
    ec.register_connection(app, node)
    apps.append(app)
    node_app[node] = app

#pdb.set_trace()
ec.deploy()

ec.wait_finished(apps)

for node, app in node_app.iteritems():
    #	print "iteration :",node,app
    trace = ec.trace(app, "node%d.out" % (node))
    f = open(
        ec.get(node, "country") + ":" + ec.get(node, "ip") + ":" +
        "node%d_PING.out" % (node), "w")
    f.write(trace)
    f.close()
#print ec.trace(app1,"stdout")
# Do the experiment controller shutdown:
ec.shutdown()

# END
예제 #9
0
class OMFEachTestCase(unittest.TestCase):
    def setUp(self):
        self.ec = ExperimentController(exp_id = "99999")

        self.node1 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node1, 'hostname', 'wlab12')
        self.ec.set(self.node1, 'xmppUser', "nepi")
        self.ec.set(self.node1, 'xmppServer', "xmpp-plexus.onelab.eu")
        self.ec.set(self.node1, 'xmppPort', "5222")
        self.ec.set(self.node1, 'xmppPassword', "1234")
        
        self.iface1 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface1, 'name', "wlan0")
        self.ec.set(self.iface1, 'mode', "adhoc")
        self.ec.set(self.iface1, 'hw_mode', "g")
        self.ec.set(self.iface1, 'essid', "vlcexp")
        self.ec.set(self.iface1, 'ip', "10.0.0.17/24")
        
        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")
        self.ec.set(self.channel, 'xmppUser', "nepi")
        self.ec.set(self.channel, 'xmppServer', "xmpp-plexus.onelab.eu")
        self.ec.set(self.channel, 'xmppPort', "5222")
        self.ec.set(self.channel, 'xmppPassword', "1234")
        
        self.app1 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app1, 'appid', 'Vlc#1')
        self.ec.set(self.app1, 'command', "/opt/vlc-1.1.13/cvlc /opt/10-by-p0d.avi --sout '#rtp{dst=10.0.0.37,port=1234,mux=ts}'")
        self.ec.set(self.app1, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.app2 = self.ec.register_resource("omf::Application")

        self.app3 = self.ec.register_resource("omf::Application")

        self.app4 = self.ec.register_resource("omf::Application")

        self.app5 = self.ec.register_resource("omf::Application")

        self.ec.register_connection(self.app1, self.node1)
        self.ec.register_connection(self.app2, self.node1)
        self.ec.register_connection(self.app3, self.node1)
        self.ec.register_connection(self.app4, self.node1)
        self.ec.register_connection(self.app5, self.node1)
        self.ec.register_connection(self.node1, self.iface1)
        self.ec.register_connection(self.iface1, self.channel)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "3s")
        self.ec.register_condition(self.app3, ResourceAction.START, self.app2, ResourceState.STARTED , "2s")
        self.ec.register_condition(self.app4, ResourceAction.START, self.app3, ResourceState.STARTED , "3s")
        self.ec.register_condition(self.app5, ResourceAction.START, [self.app3, self.app2], ResourceState.STARTED , "2s")
        self.ec.register_condition(self.app5, ResourceAction.START, self.app1, ResourceState.STARTED , "25s")

        self.ec.register_condition([self.app1, self.app2, self.app3,self.app4, self.app5], ResourceAction.STOP, self.app5, ResourceState.STARTED , "1s")

    def tearDown(self):
        self.ec.shutdown()

    def test_creation_and_configuration_node(self):
        self.assertEquals(self.ec.get(self.node1, 'hostname'), 'wlab12')
        self.assertEquals(self.ec.get(self.node1, 'xmppUser'), 'nepi')
        self.assertEquals(self.ec.get(self.node1, 'xmppServer'), 'xmpp-plexus.onelab.eu')
        self.assertEquals(self.ec.get(self.node1, 'xmppPort'), '5222')
        self.assertEquals(self.ec.get(self.node1, 'xmppPassword'), '1234')
        self.assertEquals(self.ec.get(self.node1, 'version'), '6')


    def test_creation_and_configuration_interface(self):
        self.assertEquals(self.ec.get(self.iface1, 'name'), 'wlan0')
        self.assertEquals(self.ec.get(self.iface1, 'mode'), 'adhoc')
        self.assertEquals(self.ec.get(self.iface1, 'hw_mode'), 'g')
        self.assertEquals(self.ec.get(self.iface1, 'essid'), 'vlcexp')
        self.assertEquals(self.ec.get(self.iface1, 'ip'), '10.0.0.17/24')
        self.assertEquals(self.ec.get(self.iface1, 'version'), '6')

    def test_creation_and_configuration_channel(self):
        self.assertEquals(self.ec.get(self.channel, 'channel'), '6')
        self.assertEquals(self.ec.get(self.channel, 'xmppUser'), 'nepi')
        self.assertEquals(self.ec.get(self.channel, 'xmppServer'), 'xmpp-plexus.onelab.eu')
        self.assertEquals(self.ec.get(self.channel, 'xmppPort'), '5222')
        self.assertEquals(self.ec.get(self.channel, 'xmppPassword'), '1234')
        self.assertEquals(self.ec.get(self.channel, 'version'), '6')


    def test_creation_and_configuration_application(self):
        self.assertEquals(self.ec.get(self.app1, 'appid'), 'Vlc#1')
        self.assertEquals(self.ec.get(self.app1, 'command'), "/opt/vlc-1.1.13/cvlc /opt/10-by-p0d.avi --sout '#rtp{dst=10.0.0.37,port=1234,mux=ts}'")
        self.assertEquals(self.ec.get(self.app1, 'env'), 'DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority')
        self.assertEquals(self.ec.get(self.app1, 'version'), '6')

    def test_connection(self):
        self.assertEquals(len(self.ec.get_resource(self.node1).connections), 6)
        self.assertEquals(len(self.ec.get_resource(self.iface1).connections), 2)
        self.assertEquals(len(self.ec.get_resource(self.channel).connections), 1)
        self.assertEquals(len(self.ec.get_resource(self.app1).connections), 1)
        self.assertEquals(len(self.ec.get_resource(self.app2).connections), 1)

    def test_condition(self):
        self.assertEquals(len(self.ec.get_resource(self.app1).conditions[ResourceAction.STOP]), 1)
        self.assertEquals(len(self.ec.get_resource(self.app2).conditions[ResourceAction.START]), 1)
        self.assertEquals(len(self.ec.get_resource(self.app3).conditions[ResourceAction.START]), 1)
        self.assertEquals(len(self.ec.get_resource(self.app4).conditions[ResourceAction.STOP]), 1)
        self.assertEquals(len(self.ec.get_resource(self.app5).conditions[ResourceAction.START]), 2)
예제 #10
0
파일: select_nodes.py 프로젝트: phiros/nepi
        ec.set(node, "country", country)
    if os:
        ec.set(node, "operatingSystem", os)

    ec.set(node, "cleanExperiment", True)
    ec.set(node, "cleanProcesses", True)

    return node


## Create the experiment controller
ec = ExperimentController(exp_id="host_select")

nodes = []

for i in xrange(node_count):
    node = add_node(ec, pl_slice, pl_ssh_key, pl_user, pl_password, country,
                    os)
    nodes.append(node)

ec.deploy()

ec.wait_deployed(nodes)

print "SELECTED HOSTS"

for node in nodes:
    print ec.get(node, "hostname")

ec.shutdown()
예제 #11
0
class OMFEachTestCase(unittest.TestCase):
    def setUp(self):
        self.ec = ExperimentController(exp_id="99999")

        self.node1 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node1, 'hostname', 'wlab12')
        self.ec.set(self.node1, 'xmppUser', "nepi")
        self.ec.set(self.node1, 'xmppServer', "xmpp-plexus.onelab.eu")
        self.ec.set(self.node1, 'xmppPort', "5222")
        self.ec.set(self.node1, 'xmppPassword', "1234")

        self.iface1 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface1, 'name', "wlan0")
        self.ec.set(self.iface1, 'mode', "adhoc")
        self.ec.set(self.iface1, 'hw_mode', "g")
        self.ec.set(self.iface1, 'essid', "vlcexp")
        self.ec.set(self.iface1, 'ip', "10.0.0.17/24")

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")
        self.ec.set(self.channel, 'xmppUser', "nepi")
        self.ec.set(self.channel, 'xmppServer', "xmpp-plexus.onelab.eu")
        self.ec.set(self.channel, 'xmppPort', "5222")
        self.ec.set(self.channel, 'xmppPassword', "1234")

        self.app1 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app1, 'appid', 'Vlc#1')
        self.ec.set(
            self.app1, 'command',
            "/opt/vlc-1.1.13/cvlc /opt/10-by-p0d.avi --sout '#rtp{dst=10.0.0.37,port=1234,mux=ts}'"
        )
        self.ec.set(self.app1, 'env',
                    "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.app2 = self.ec.register_resource("omf::Application")

        self.app3 = self.ec.register_resource("omf::Application")

        self.app4 = self.ec.register_resource("omf::Application")

        self.app5 = self.ec.register_resource("omf::Application")

        self.ec.register_connection(self.app1, self.node1)
        self.ec.register_connection(self.app2, self.node1)
        self.ec.register_connection(self.app3, self.node1)
        self.ec.register_connection(self.app4, self.node1)
        self.ec.register_connection(self.app5, self.node1)
        self.ec.register_connection(self.node1, self.iface1)
        self.ec.register_connection(self.iface1, self.channel)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1,
                                   ResourceState.STARTED, "3s")
        self.ec.register_condition(self.app3, ResourceAction.START, self.app2,
                                   ResourceState.STARTED, "2s")
        self.ec.register_condition(self.app4, ResourceAction.START, self.app3,
                                   ResourceState.STARTED, "3s")
        self.ec.register_condition(self.app5, ResourceAction.START,
                                   [self.app3, self.app2],
                                   ResourceState.STARTED, "2s")
        self.ec.register_condition(self.app5, ResourceAction.START, self.app1,
                                   ResourceState.STARTED, "25s")

        self.ec.register_condition(
            [self.app1, self.app2, self.app3, self.app4, self.app5],
            ResourceAction.STOP, self.app5, ResourceState.STARTED, "1s")

    def tearDown(self):
        self.ec.shutdown()

    def test_creation_and_configuration_node(self):
        self.assertEquals(self.ec.get(self.node1, 'hostname'), 'wlab12')
        self.assertEquals(self.ec.get(self.node1, 'xmppUser'), 'nepi')
        self.assertEquals(self.ec.get(self.node1, 'xmppServer'),
                          'xmpp-plexus.onelab.eu')
        self.assertEquals(self.ec.get(self.node1, 'xmppPort'), '5222')
        self.assertEquals(self.ec.get(self.node1, 'xmppPassword'), '1234')
        self.assertEquals(self.ec.get(self.node1, 'version'), '6')

    def test_creation_and_configuration_interface(self):
        self.assertEquals(self.ec.get(self.iface1, 'name'), 'wlan0')
        self.assertEquals(self.ec.get(self.iface1, 'mode'), 'adhoc')
        self.assertEquals(self.ec.get(self.iface1, 'hw_mode'), 'g')
        self.assertEquals(self.ec.get(self.iface1, 'essid'), 'vlcexp')
        self.assertEquals(self.ec.get(self.iface1, 'ip'), '10.0.0.17/24')
        self.assertEquals(self.ec.get(self.iface1, 'version'), '6')

    def test_creation_and_configuration_channel(self):
        self.assertEquals(self.ec.get(self.channel, 'channel'), '6')
        self.assertEquals(self.ec.get(self.channel, 'xmppUser'), 'nepi')
        self.assertEquals(self.ec.get(self.channel, 'xmppServer'),
                          'xmpp-plexus.onelab.eu')
        self.assertEquals(self.ec.get(self.channel, 'xmppPort'), '5222')
        self.assertEquals(self.ec.get(self.channel, 'xmppPassword'), '1234')
        self.assertEquals(self.ec.get(self.channel, 'version'), '6')

    def test_creation_and_configuration_application(self):
        self.assertEquals(self.ec.get(self.app1, 'appid'), 'Vlc#1')
        self.assertEquals(
            self.ec.get(self.app1, 'command'),
            "/opt/vlc-1.1.13/cvlc /opt/10-by-p0d.avi --sout '#rtp{dst=10.0.0.37,port=1234,mux=ts}'"
        )
        self.assertEquals(
            self.ec.get(self.app1, 'env'),
            'DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority')
        self.assertEquals(self.ec.get(self.app1, 'version'), '6')

    def test_connection(self):
        self.assertEquals(len(self.ec.get_resource(self.node1).connections), 6)
        self.assertEquals(len(self.ec.get_resource(self.iface1).connections),
                          2)
        self.assertEquals(len(self.ec.get_resource(self.channel).connections),
                          1)
        self.assertEquals(len(self.ec.get_resource(self.app1).connections), 1)
        self.assertEquals(len(self.ec.get_resource(self.app2).connections), 1)

    def test_condition(self):
        self.assertEquals(
            len(
                self.ec.get_resource(
                    self.app1).conditions[ResourceAction.STOP]), 1)
        self.assertEquals(
            len(
                self.ec.get_resource(
                    self.app2).conditions[ResourceAction.START]), 1)
        self.assertEquals(
            len(
                self.ec.get_resource(
                    self.app3).conditions[ResourceAction.START]), 1)
        self.assertEquals(
            len(
                self.ec.get_resource(
                    self.app4).conditions[ResourceAction.STOP]), 1)
        self.assertEquals(
            len(
                self.ec.get_resource(
                    self.app5).conditions[ResourceAction.START]), 2)
예제 #12
0
파일: ovs.py 프로젝트: phiros/nepi
    def t_ovs(self, user1, switch1, user2, switch2, user3, host1, user4, host2):

        ec = ExperimentController(exp_id = "test-ovs")
        
        node1 = ec.register_resource("planetlab::Node")
        ec.set(node1, "hostname", switch1)
        ec.set(node1, "username", user1)
        ec.set(node1, "cleanExperiment", True)
        ec.set(node1, "cleanProcesses", True)  

        ovs1 = ec.register_resource("planetlab::OVSSwitch")
        ec.set(ovs1, "bridge_name", "nepi_bridge")
        ec.set(ovs1, "virtual_ip_pref", "192.168.3.1/24")
        ec.set(ovs1, "controller_ip", "85.23.168.77")
        ec.set(ovs1, "controller_port", "6633")
        ec.register_connection(ovs1, node1)

        port1 = ec.register_resource("planetlab::OVSPort")
        ec.set(port1, "port_name", "port-1")
        ec.register_connection(port1, ovs1)

        port2 = ec.register_resource("planetlab::OVSPort")
        ec.set(port2, "port_name", "port-2")
        ec.register_connection(port2, ovs1)

        node2 = ec.register_resource("planetlab::PlanetlabNode")
        ec.set(node2, "hostname", switch2)
        ec.set(node2, "username", user2)
        ec.set(node2, "cleanExperiment", True)
        ec.set(node2, "cleanProcesses", True) 

        ovs2 = ec.register_resource("planetlab::OVSSwitch")
        ec.set(ovs2, "bridge_name", "nepi_bridge")
        ec.set(ovs2, "virtual_ip_pref", "192.168.3.2/24")
        ec.set(ovs2, "controller_ip", "85.23.168.77")
        ec.set(ovs2, "controller_port", "6633")
        ec.register_connection(ovs2, node2)

        port3 = ec.register_resource("planetlab::OVSPort")
        ec.set(port3, "port_name", "port-3")
        ec.register_connection(port3, ovs2)  

        port4 = ec.register_resource("planetlab::OVSPort")
        ec.set(port4, "port_name", "port-4")
        ec.register_connection(port4, ovs2)

        node3 = ec.register_resource("planetlab::Node")
        ec.set(node3, "hostname", host1)
        ec.set(node3, "username", user3)
        ec.set(node3, "cleanExperiment", True)
        ec.set(node3, "cleanProcesses", True)

        tap1 = ec.register_resource("planetlab::Tap")
        ec.set(tap1, "ip4", "192.168.3.3")
        ec.set(tap1, "pointopoint", "192.168.3.1")
        ec.set(tap1, "prefix4", 24)
        ec.register_connection(tap1, node3)

        node4 = ec.register_resource("planetlab::Node")
        ec.set(node4, "hostname", host2)
        ec.set(node4, "username", user4)
        ec.set(node4, "cleanExperiment", True)
        ec.set(node4, "cleanProcesses", True)

        tap2 = ec.register_resource("planetlab::Tap")
        ec.set(tap2, "ip4", "192.168.3.4")
        ec.set(tap2, "pointopoint", "192.168.3.2")
        ec.set(tap2, "prefix4", 24)
        ec.register_connection(tap2, node4)

        ovstun1 = ec.register_resource("planetlab::OVSTunnel")
        ec.register_connection(port1, ovstun1)
        ec.register_connection(tap1, ovstun1)

        ovstun2 = ec.register_resource("plantelab::OVSTunnel")
        ec.register_connection(port3, ovstun2)
        ec.register_connection(tap2, ovstun2)

        ovstun3 = ec.register_resource("planetlab::OVSTunnel")
        ec.register_connection(port2, ovstun3)
        ec.register_connection(port4, ovstun3)

        app1 = ec.register_resource("linux::Application")
        cmd = "ping -c3 192.168.3.2"
        ec.set(app1, "command", cmd)
        ec.register_connection(app1, node1)

        app2 = ec.register_resource("linux::Application")
        cmd = "ping -c3 192.168.3.4"
        ec.set(app2, "command", cmd)
        ec.register_connection(app2, node2)

        ec.deploy()

        ec.wait_finished(app2)
        
        if_name = ec.get(tap1, "deviceName")
        self.assertTrue(if_name.startswith("tap"))
        
        if_name = ec.get(tap2, "deviceName")
        self.assertTrue(if_name.startswith("tap"))

        ping1 = ec.trace(app1, 'stdout')
        expected1 = """3 packets transmitted, 3 received, 0% packet loss"""
        self.assertTrue(ping1.find(expected1) > -1)

        ping2 = ec.trace(app2, 'stdout')
        expected2 = """3 packets transmitted, 3 received, 0% packet loss"""
        self.assertTrue(ping2.find(expected2) > -1)

        ec.shutdown()
예제 #13
0
파일: ovs.py 프로젝트: phiros/nepi
    def t_ovs(self, user1, switch1, user2, switch2, user3, host1, user4,
              host2):

        ec = ExperimentController(exp_id="test-ovs")

        node1 = ec.register_resource("planetlab::Node")
        ec.set(node1, "hostname", switch1)
        ec.set(node1, "username", user1)
        ec.set(node1, "cleanExperiment", True)
        ec.set(node1, "cleanProcesses", True)

        ovs1 = ec.register_resource("planetlab::OVSSwitch")
        ec.set(ovs1, "bridge_name", "nepi_bridge")
        ec.set(ovs1, "virtual_ip_pref", "192.168.3.1/24")
        ec.set(ovs1, "controller_ip", "85.23.168.77")
        ec.set(ovs1, "controller_port", "6633")
        ec.register_connection(ovs1, node1)

        port1 = ec.register_resource("planetlab::OVSPort")
        ec.set(port1, "port_name", "port-1")
        ec.register_connection(port1, ovs1)

        port2 = ec.register_resource("planetlab::OVSPort")
        ec.set(port2, "port_name", "port-2")
        ec.register_connection(port2, ovs1)

        node2 = ec.register_resource("planetlab::PlanetlabNode")
        ec.set(node2, "hostname", switch2)
        ec.set(node2, "username", user2)
        ec.set(node2, "cleanExperiment", True)
        ec.set(node2, "cleanProcesses", True)

        ovs2 = ec.register_resource("planetlab::OVSSwitch")
        ec.set(ovs2, "bridge_name", "nepi_bridge")
        ec.set(ovs2, "virtual_ip_pref", "192.168.3.2/24")
        ec.set(ovs2, "controller_ip", "85.23.168.77")
        ec.set(ovs2, "controller_port", "6633")
        ec.register_connection(ovs2, node2)

        port3 = ec.register_resource("planetlab::OVSPort")
        ec.set(port3, "port_name", "port-3")
        ec.register_connection(port3, ovs2)

        port4 = ec.register_resource("planetlab::OVSPort")
        ec.set(port4, "port_name", "port-4")
        ec.register_connection(port4, ovs2)

        node3 = ec.register_resource("planetlab::Node")
        ec.set(node3, "hostname", host1)
        ec.set(node3, "username", user3)
        ec.set(node3, "cleanExperiment", True)
        ec.set(node3, "cleanProcesses", True)

        tap1 = ec.register_resource("planetlab::Tap")
        ec.set(tap1, "ip4", "192.168.3.3")
        ec.set(tap1, "pointopoint", "192.168.3.1")
        ec.set(tap1, "prefix4", 24)
        ec.register_connection(tap1, node3)

        node4 = ec.register_resource("planetlab::Node")
        ec.set(node4, "hostname", host2)
        ec.set(node4, "username", user4)
        ec.set(node4, "cleanExperiment", True)
        ec.set(node4, "cleanProcesses", True)

        tap2 = ec.register_resource("planetlab::Tap")
        ec.set(tap2, "ip4", "192.168.3.4")
        ec.set(tap2, "pointopoint", "192.168.3.2")
        ec.set(tap2, "prefix4", 24)
        ec.register_connection(tap2, node4)

        ovstun1 = ec.register_resource("planetlab::OVSTunnel")
        ec.register_connection(port1, ovstun1)
        ec.register_connection(tap1, ovstun1)

        ovstun2 = ec.register_resource("plantelab::OVSTunnel")
        ec.register_connection(port3, ovstun2)
        ec.register_connection(tap2, ovstun2)

        ovstun3 = ec.register_resource("planetlab::OVSTunnel")
        ec.register_connection(port2, ovstun3)
        ec.register_connection(port4, ovstun3)

        app1 = ec.register_resource("linux::Application")
        cmd = "ping -c3 192.168.3.2"
        ec.set(app1, "command", cmd)
        ec.register_connection(app1, node1)

        app2 = ec.register_resource("linux::Application")
        cmd = "ping -c3 192.168.3.4"
        ec.set(app2, "command", cmd)
        ec.register_connection(app2, node2)

        ec.deploy()

        ec.wait_finished(app2)

        if_name = ec.get(tap1, "deviceName")
        self.assertTrue(if_name.startswith("tap"))

        if_name = ec.get(tap2, "deviceName")
        self.assertTrue(if_name.startswith("tap"))

        ping1 = ec.trace(app1, 'stdout')
        expected1 = """3 packets transmitted, 3 received, 0% packet loss"""
        self.assertTrue(ping1.find(expected1) > -1)

        ping2 = ec.trace(app2, 'stdout')
        expected2 = """3 packets transmitted, 3 received, 0% packet loss"""
        self.assertTrue(ping2.find(expected2) > -1)

        ec.shutdown()