Exemplo n.º 1
0
    def test_stop_with_condition(self):
        from nepi.execution.resource import ResourceFactory

        ResourceFactory.register_type(Application)
        ResourceFactory.register_type(Node)
        ResourceFactory.register_type(Interface)

        ec = ExperimentController()

        node = ec.register_resource("Node")

        app1 = ec.register_resource("Application")
        ec.register_connection(app1, node)

        app2 = ec.register_resource("Application")
        ec.register_connection(app2, node)

        ec.register_condition(app2, ResourceAction.START, app1,
                              ResourceState.STOPPED)

        ec.deploy()

        ec.wait_finished([app1, app2])

        rmapp1 = ec.get_resource(app1)
        rmapp2 = ec.get_resource(app2)

        self.assertTrue(rmapp2.start_time > rmapp1.stop_time)

        ec.shutdown()
Exemplo n.º 2
0
    def test_ccnpeek(self):
        ec = ExperimentController(exp_id="test-linux-ccnpeek")

        node = ec.register_resource("linux::Node")
        ec.set(node, "hostname", self.fedora_host)
        ec.set(node, "username", self.fedora_user)
        ec.set(node, "identity", self.fedora_identity)
        #ec.set(node, "cleanProcesses", True)
        #ec.set(node, "cleanExperiment", True)

        ccnd = ec.register_resource("linux::CCND")
        ec.register_connection(ccnd, node)

        peek = ec.register_resource("linux::CCNPeek")
        ec.set(peek, "contentName", "ccnx:/chunk0")
        ec.register_connection(peek, ccnd)

        poke = ec.register_resource("linux::CCNPoke")
        ec.set(poke, "contentName", "ccnx:/chunk0")
        ec.set(poke, "content", "DATA")
        ec.register_connection(poke, ccnd)

        ec.register_condition(peek, ResourceAction.START, poke,
                              ResourceState.STARTED)

        ec.deploy()

        ec.wait_finished(peek)

        stdout = ec.trace(peek, "stdout")
        print stdout
        expected = "DATA"
        self.assertTrue(stdout.find(expected) > -1)

        ec.shutdown()
Exemplo n.º 3
0
    def test_stop_with_condition(self):
        from nepi.execution.resource import ResourceFactory
        
        ResourceFactory.register_type(Application)
        ResourceFactory.register_type(Node)
        ResourceFactory.register_type(Interface)

        ec = ExperimentController()

        node = ec.register_resource("Node")

        app1 = ec.register_resource("Application")
        ec.register_connection(app1, node)

        app2 = ec.register_resource("Application")
        ec.register_connection(app2, node)

        ec.register_condition(app2, ResourceAction.START, app1, 
                ResourceState.STOPPED)

        ec.deploy()

        ec.wait_finished([app1, app2])
        
        rmapp1 = ec.get_resource(app1)
        rmapp2 = ec.get_resource(app2)

        self.assertTrue(rmapp2.start_time > rmapp1.stop_time)
        
        ec.shutdown()
Exemplo n.º 4
0
    def test_ccnpeek(self):
        ec = ExperimentController(exp_id = "test-linux-ccnpeek")
        
        node = ec.register_resource("linux::Node")
        ec.set(node, "hostname", self.fedora_host)
        ec.set(node, "username", self.fedora_user)
        ec.set(node, "identity", self.fedora_identity)
        #ec.set(node, "cleanProcesses", True)
        #ec.set(node, "cleanExperiment", True)

        ccnd = ec.register_resource("linux::CCND")
        ec.register_connection(ccnd, node)

        peek = ec.register_resource("linux::CCNPeek")
        ec.set(peek, "contentName", "ccnx:/chunk0")
        ec.register_connection(peek, ccnd)

        poke = ec.register_resource("linux::CCNPoke")
        ec.set(poke, "contentName", "ccnx:/chunk0")
        ec.set(poke, "content", "DATA")
        ec.register_connection(poke, ccnd)

        ec.register_condition(peek, ResourceAction.START, poke,
            ResourceState.STARTED)
 
        ec.deploy()

        ec.wait_finished(peek)

        stdout = ec.trace(peek, "stdout")
        print stdout
        expected = "DATA"
        self.assertTrue(stdout.find(expected) > -1)

        ec.shutdown()
Exemplo n.º 5
0
    def t_condition(self, host, user, depends):

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

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

        server = ec.register_resource("linux::Application")
        cmd = "echo 'HOLA' | nc -l 3333"
        ec.set(server, "command", cmd)
        ec.set(server, "depends", depends)
        ec.register_connection(server, node)

        client = ec.register_resource("linux::Application")
        cmd = "nc 127.0.0.1 3333"
        ec.set(client, "command", cmd)
        ec.register_connection(client, node)

        ec.register_condition(client, ResourceAction.START, server,
                              ResourceState.STARTED)

        apps = [client, server]

        ec.deploy()

        ec.wait_finished(apps)

        self.assertTrue(ec.state(node) == ResourceState.STARTED)
        self.assertTrue(ec.state(server) == ResourceState.STOPPED)
        self.assertTrue(ec.state(client) == ResourceState.STOPPED)

        stdout = ec.trace(client, "stdout")
        self.assertTrue(stdout.strip() == "HOLA")

        ec.shutdown()
Exemplo n.º 6
0
    def t_condition(self, host, user, depends):

        ec = ExperimentController(exp_id="test-condition")
        
        node = ec.register_resource("linux::Node")
        ec.set(node, "hostname", host)
        ec.set(node, "username", user)
        ec.set(node, "cleanExperiment", True)
        ec.set(node, "cleanProcesses", True)

        server = ec.register_resource("linux::Application")
        cmd = "echo 'HOLA' | nc -l 3333"
        ec.set(server, "command", cmd)
        ec.set(server, "depends", depends)
        ec.register_connection(server, node)

        client = ec.register_resource("linux::Application")
        cmd = "nc 127.0.0.1 3333"
        ec.set(client, "command", cmd)
        ec.register_connection(client, node)

        ec.register_condition(client, ResourceAction.START, server, ResourceState.STARTED)

        apps = [client, server]
        
        ec.deploy()

        ec.wait_finished(apps)

        self.assertTrue(ec.state(node) == ResourceState.STARTED)
        self.assertTrue(ec.state(server) == ResourceState.STOPPED)
        self.assertTrue(ec.state(client) == ResourceState.STOPPED)

        stdout = ec.trace(client, "stdout")
        self.assertTrue(stdout.strip() == "HOLA")

        ec.shutdown()
Exemplo n.º 7
0
    def t_condition_serialize(self, host, user, depends):

        dirpath = tempfile.mkdtemp()

        ec = ExperimentController(exp_id="test-condition-serial")

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

        server = ec.register_resource("linux::Application")
        cmd = "echo 'HOLA' | nc -l 3333"
        ec.set(server, "command", cmd)
        ec.set(server, "depends", depends)
        ec.register_connection(server, node)

        client = ec.register_resource("linux::Application")
        cmd = "nc 127.0.0.1 3333"
        ec.set(client, "command", cmd)
        ec.register_connection(client, node)

        ec.register_condition(client, ResourceAction.START, server,
                              ResourceState.STARTED)

        apps = [client, server]

        filepath = ec.save(dirpath)

        ec.deploy()

        ec.wait_finished(apps)

        self.assertTrue(ec.state(node) == ResourceState.STARTED)
        self.assertTrue(ec.state(server) == ResourceState.STOPPED)
        self.assertTrue(ec.state(client) == ResourceState.STOPPED)

        stdout = ec.trace(client, "stdout")
        self.assertTrue(stdout.strip() == "HOLA")

        ec.shutdown()

        # Load serialized experiment
        ec2 = ExperimentController.load(filepath)

        ec2.deploy()
        ec2.wait_finished(apps)

        self.assertEquals(len(ec.resources), len(ec2.resources))

        self.assertTrue(ec2.state(node) == ResourceState.STARTED)
        self.assertTrue(ec2.state(server) == ResourceState.STOPPED)
        self.assertTrue(ec2.state(client) == ResourceState.STOPPED)

        stdout = ec2.trace(client, "stdout")

        self.assertTrue(stdout.strip() == "HOLA")

        ec2.shutdown()

        shutil.rmtree(dirpath)
Exemplo n.º 8
0
if mode == 'vod':
    update_file_wificenter = "echo -e 'new BUNNY vod enabled\\n"\
       "setup BUNNY input rtsp://128.232.103.203:5554/BUNNY' > /root/wificenter.vlm"
    command_wificenter =  "/root/vlc/vlc-1.1.13/cvlc --vlm-conf /root/wificenter.vlm --rtsp-host 192.168.0.1:5554"
elif mode == 'broadcast':
    update_file_wificenter = "echo -e 'new BUNNY broadcast enabled loop\\n"\
       "setup BUNNY input rtsp://128.232.103.203:8554/BUNNY\\n"\
       "setup BUNNY output #rtp{access=udp,mux=ts,sdp=rtsp://0.0.0.0:8554/BUNNY}\\n\\n"\
       "new test_sched schedule enabled\\n"\
       "setup test_sched append control BUNNY play' > /root/wificenter.vlm"
    command_wificenter =  "/root/vlc/vlc-1.1.13/cvlc --vlm-conf /root/wificenter.vlm --rtsp-host 192.168.0.1:8554"

upload_conf = create_omf_app(ec, update_file_wificenter , wifi_center)
vlc_wificenter = create_omf_app(ec, command_wificenter , wifi_center)

ec.register_condition(upload_conf, ResourceAction.START, vlc_server, ResourceState.STARTED , "2s")
ec.register_condition(vlc_wificenter, ResourceAction.START, upload_conf, ResourceState.STARTED , "2s")

# measurements in video server (PL node)
measure_videoserver = ec.register_resource("linux::Application")
ec.set(measure_videoserver, "depends", "tcpdump")
ec.set(measure_videoserver, "sudo", True)
command = "tcpdump -i eth0 not arp -n -w /tmp/capplserver_%s.pcap" % ("$(date +'%Y%m%d%H%M%S')")
ec.set(measure_videoserver, "command", command)
ec.register_connection(measure_videoserver, video_server)

# Deploy servers
ec.deploy([vlc_server, upload_conf, vlc_wificenter, measure_videoserver])

ec.wait_started([vlc_server, upload_conf, vlc_wificenter, measure_videoserver])
Exemplo n.º 9
0
ccnd1 = add_ccnd(ec, peers)
ec.register_connection(ccnd1, node1)

# Register content producer application (ccnseqwriter)
## Push the file into the repository
local_path_to_content = os.path.join(
        os.path.dirname(os.path.realpath(__file__)),
            "..", "big_buck_bunny_240p_mpeg4_lq.ts")

content_name = "ccnx:/test/FILE"

pub = add_publish(ec, local_path_to_content, content_name)
ec.register_connection(pub, node1)

# The movie can only be published after ccnd is running
ec.register_condition(pub, ResourceAction.START, 
        ccnd1, ResourceState.STARTED)

# Register Linux host
node2 = add_node(ec, hostname2, username, ssh_key)

# Register CCN setup for Linux host
peers = [hostname1]
ccnd2 = add_ccnd(ec, peers)
ec.register_connection(ccnd2, node2)
 
# Register consumer application (ccncat)
ccncat = add_ccncat(ec, content_name)
ec.register_connection(ccncat, node2)

# The file can only be retrieved after ccnd is running
ec.register_condition(ccncat, ResourceAction.START, 
Exemplo n.º 10
0
app1 = ec.register_resource("LinuxApplication")
file = "../big_file.geo"
ec.set(app1, "sources", file)
command = "scp $SRC/big_file.geo %s" % destination 
ec.set(app1, "command", command)
ec.register_connection(app1, node1)

app2 = ec.register_resource("LinuxApplication")
ec.set(app, "sudo", sudo)
ec.set(app, "depends", "ifstat")
command = "ifstat -b eth0 > ifstat.txt"
command = "iperf ..." 
ec.set(app2, "command", command)
ec.register_connection(app2, node1)

ec.register_condition(app2, ResourceAction.START, app1, ResourceState.STARTED)


# Deploy
ec.deploy()

ec.wait_finished([app1, app2])

trace_file = "examples/planetlab/ifstat.txt"
trace = ec.trace(app2, "ifstat.txt")
f = open(trace_file, "w")
f.write(trace)
f.close()

ec.shutdown()
Exemplo n.º 11
0
    command = "wget -O server.out ftp://159.226.40.196/server.out && echo \"$HOSTNAME is OK.\"               >report && chmod 777 server.out && ./server.out"
    #wangyang,create an app that will execute the command above,this function connect app and node and return a gid representing this connection
    app_getserver = add_app(ec,command,node)
#wangyang,other nodes in this slice,if there are 2 nodes,i from 0-1
i = 0    
for i in range(3) :
    node = create_node(ec, username, pl_user, pl_password)
    #second_set_nodes.append(node)
    command = "wget -O ~/client.out ftp://159.226.40.196/client.out && echo \"$HOSTNAME is OK.\" > ~/report"
    app_getclient = add_app(ec,command,node)
    apps.append(app_getclient)
    command = "chmod 777 ~/client.out && cd ~ && ./client.out 202.119.236.130"
    app_startclient = add_app(ec,command,node)
    apps.append(app_startclient)
    #wangyang,startclient must execute after getclient and startserver
    ec.register_condition(app_startclient, ResourceAction.START, app_getclient, ResourceState. STOPPED)
    ec.register_condition(app_startclient, ResourceAction.START, app_getserver, ResourceState. STARTED)

    
# Deploy the experiment:
#wangyang,run all apps 
ec.deploy()


# Wait until the applications are finish to retrive the traces:
ec.wait_finished(apps)
#wangyang,retrive the trace in the server node named report,then save this record into local machine
for trace in ec.get_traces(app_getserver):
    trace_stream = ec.trace(app_getserver, 'report')
    f = open("./report.txt", "w")
    f.write(trace_stream)
Exemplo n.º 12
0
    def test_deploy(self):
        ec = ExperimentController(exp_id="5421")

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

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

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

        self.app1 = ec.register_resource("omf::Application")
        ec.set(self.app1, 'appid', 'Vlc#1')
        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}'"
        )
        ec.set(self.app1, 'env',
               "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.app2 = ec.register_resource("omf::Application")
        ec.set(self.app2, 'appid', 'Test#1')
        ec.set(self.app2, 'command', "/usr/bin/test -1")
        ec.set(self.app2, 'env', " ")

        self.app3 = ec.register_resource("omf::Application")
        ec.set(self.app3, 'appid', 'Test#2')
        ec.set(self.app3, 'command', "/usr/bin/test -2")
        ec.set(self.app3, 'env', " ")

        self.app4 = ec.register_resource("omf::Application")
        ec.set(self.app4, 'appid', 'Test#3')
        ec.set(self.app4, 'command', "/usr/bin/test -3")
        ec.set(self.app4, 'env', " ")

        self.app5 = ec.register_resource("omf::Application")
        ec.set(self.app5, 'appid', 'Kill#2')
        ec.set(self.app5, 'command', "/usr/bin/killall vlc")
        ec.set(self.app5, 'env', " ")

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

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

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

        ec.deploy()

        ec.wait_finished(
            [self.app1, self.app2, self.app3, self.app4, self.app5])

        self.assertGreaterEqual(
            round(
                tdiffsec(
                    ec.get_resource(self.app2).start_time,
                    ec.get_resource(self.app1).start_time), 0), 3.0)
        self.assertGreaterEqual(
            round(
                tdiffsec(
                    ec.get_resource(self.app3).start_time,
                    ec.get_resource(self.app2).start_time), 0), 2.0)
        self.assertGreaterEqual(
            round(
                tdiffsec(
                    ec.get_resource(self.app4).start_time,
                    ec.get_resource(self.app3).start_time), 0), 3.0)
        self.assertGreaterEqual(
            round(
                tdiffsec(
                    ec.get_resource(self.app5).start_time,
                    ec.get_resource(self.app3).start_time), 0), 2.0)
        self.assertGreaterEqual(
            round(
                tdiffsec(
                    ec.get_resource(self.app5).start_time,
                    ec.get_resource(self.app1).start_time), 0), 25.0)

        self.assertEquals(
            ec.get_resource(self.node1).state, ResourceState.STARTED)
        self.assertEquals(
            ec.get_resource(self.iface1).state, ResourceState.STARTED)
        self.assertEquals(
            ec.get_resource(self.channel).state, ResourceState.STARTED)
        self.assertEquals(
            ec.get_resource(self.app1).state, ResourceState.STOPPED)
        self.assertEquals(
            ec.get_resource(self.app2).state, ResourceState.STOPPED)
        self.assertEquals(
            ec.get_resource(self.app3).state, ResourceState.STOPPED)
        self.assertEquals(
            ec.get_resource(self.app4).state, ResourceState.STOPPED)
        self.assertEquals(
            ec.get_resource(self.app5).state, ResourceState.STOPPED)

        ec.shutdown()

        self.assertEquals(
            ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.app2).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.app3).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.app4).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.app5).state, ResourceState.RELEASED)
Exemplo n.º 13
0
class OMFVLCWrongCaseWithNonCritical(unittest.TestCase):

    id = 2000

    def setUp(self):
        self.ec = ExperimentController(
            exp_id=str(OMFVLCWrongCaseWithNonCritical.id))
        OMFVLCWrongCaseWithNonCritical.id += 1

        self.node1 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node1, 'hostname', 'omf.plexus.wlab17')
        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.ec.set(self.node1, 'version', "5")

        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.ec.set(self.iface1, 'version', "5")

        self.app1 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app1, 'appid', 'Kill#1')
        self.ec.set(self.app1, 'command', "/usr/bin/test -1")
        self.ec.set(self.app1, 'env',
                    "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
        self.ec.set(self.app1, 'version', "5")

        self.ec.register_connection(self.app1, self.node1)
        self.ec.register_connection(self.node1, self.iface1)

    def test_deploy_with_node_nc(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.node2, 'version', "5")

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

        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.ec.set(self.channel, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "5s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.FAILED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

    def test_deploy_with_node_and_iface_nc(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.node2, 'version', "5")

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.37/24")
        self.ec.set(self.iface2, 'version', "5")

        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.ec.set(self.channel, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "5s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.FAILED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

    def test_deploy_with_node_iface_channel_nc(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.node2, 'hostname', 'omf.plexus.wlab37')
        self.ec.set(self.node2, 'version', "5")

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.37/24")
        self.ec.set(self.iface2, 'version', "5")

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")
        self.ec.set(self.channel, "critical", False)
        self.ec.set(self.channel, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "10s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.FAILED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.FAILED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

    def test_deploy_with_app_nc(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, 'hostname', 'omf.plexus.wlab37')
        self.ec.set(self.node2, 'xmppUser', "nepi")
        self.ec.set(self.node2, 'xmppServer', "xmpp-plexus.onelab.eu")
        self.ec.set(self.node2, 'xmppPort', "5222")
        self.ec.set(self.node2, 'xmppPassword', "1234")
        self.ec.set(self.node2, 'version', "5")

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

        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.ec.set(self.channel, 'version', "5")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, "critical", False)
        self.ec.set(self.app2, 'appid', 'Kill#22')
        self.ec.set(self.app2, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1,
                                   ResourceState.STARTED, "6s")
        self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP,
                                   self.app1, ResourceState.STARTED, "10s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2])

        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.STOPPED)
        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.RELEASED)

    def test_deploy_with_all_nc_and_app_critical(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.node2, 'hostname', 'omf.plexus.wlab37')
        self.ec.set(self.node2, 'version', "5")

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, "critical", False)
        self.ec.set(self.iface2, 'version', "5")

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, "critical", False)
        self.ec.set(self.channel, 'channel', "6")
        self.ec.set(self.channel, 'version', "5")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, 'appid', 'Kill#22')
        self.ec.set(self.app2, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1,
                                   ResourceState.STARTED, "6s")
        self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP,
                                   self.app1, ResourceState.STARTED, "10s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2])

        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
Exemplo n.º 14
0
            perfclient1 = add_app(ec, nodes[all_hosts[i]],  "#perfclient1", cmd, 
                            env, xmpp_slice, xmpp_host)
            iperfclient[all_hosts[i]].append(perfclient1)

        if i < (len(all_hosts)-1):
            cmd = "iperf -c " + all_ip[i+1] + " > /opt/iperclient2.txt"
            perfclient2 = add_app(ec, nodes[all_hosts[i]],  "#perfclient2", cmd, 
                            env, xmpp_slice, xmpp_host)
            iperfclient[all_hosts[i]].append(perfclient2)

        iperfserv[all_hosts[i]] = perfserv

    for i in xrange(len(all_hosts)):
         #ec.register_condition(iperfserv[all_hosts[i]], ResourceAction.START, link, ResourceState.STARTED, "2s")
         for elt in iperfclient[all_hosts[i]]:
             ec.register_condition(elt, ResourceAction.START, iperfserv[all_hosts[i]], ResourceState.STARTED, "3s")


## Streaming Server
#    pub = add_publish(ec, nodes[host5], movie, xmpp_slice, xmpp_host)

## Streaming client
#    stream = add_stream(ec, nodes[host6], xmpp_slice, xmpp_host)

## Streaming conditions
#    ec.register_condition(pub, ResourceAction.START, link, ResourceState.STARTED, "2s")
#    ec.register_condition(stream, ResourceAction.START, link, ResourceState.STARTED, "2s")
#    ec.register_condition(stream, ResourceAction.START, pub, ResourceState.STARTED, "2s")


Exemplo n.º 15
0
                         xmpp_host)
    ec.register_connection(ccndstart1, node1)

    peers = [receiver_ip]
    ccnd1 = add_ccnd(ec, peers, xmpp_slice, xmpp_host)
    ec.register_connection(ccnd1, node1)

    ccnr1 = add_app(ec, "#ccnr", "ccnr &", env, xmpp_slice, xmpp_host)
    ec.register_connection(ccnr1, node1)

    # Register content producer application (ccnseqwriter)
    pub = add_publish(ec, movie, xmpp_slice, xmpp_host)
    ec.register_connection(pub, node1)

    # The movie can only be published after ccnd is running
    ec.register_condition(ccnd1, ResourceAction.START, ccndstart1,
                          ResourceState.STARTED, "1s")
    ec.register_condition(ccnr1, ResourceAction.START, ccnd1,
                          ResourceState.STARTED, "1s")
    ec.register_condition(pub, ResourceAction.START, ccnr1,
                          ResourceState.STARTED, "2s")

    # CCN setup for the receiver
    ccndstart2 = add_app(ec, "#ccndstart", "ccndstart &", env, xmpp_slice,
                         xmpp_host)
    ec.register_connection(ccndstart2, node2)

    peers = [sender_ip]
    ccnd2 = add_ccnd(ec, peers, xmpp_slice, xmpp_host)
    ec.register_connection(ccnd2, node2)

    ccnr2 = add_app(ec, "#ccnr", "ccnr &", env, xmpp_slice, xmpp_host)
Exemplo n.º 16
0
    def test_deploy(self):
        ec = ExperimentController(exp_id = "5421" )

        self.node1 = ec.register_resource("omf::Node")
        ec.set(self.node1, 'hostname', 'wlab12')
        ec.set(self.node1, 'xmppUser', "nepi")
        ec.set(self.node1, 'xmppServer', "xmpp-plexus.onelab.eu")
        ec.set(self.node1, 'xmppPort', "5222")
        ec.set(self.node1, 'xmppPassword', "1234")
        
        self.iface1 = ec.register_resource("omf::WifiInterface")
        ec.set(self.iface1, 'name', "wlan0")
        ec.set(self.iface1, 'mode', "adhoc")
        ec.set(self.iface1, 'hw_mode', "g")
        ec.set(self.iface1, 'essid', "vlcexp")
        ec.set(self.iface1, 'ip', "10.0.0.17/24")
        
        self.channel = ec.register_resource("omf::Channel")
        ec.set(self.channel, 'channel', "6")
        ec.set(self.channel, 'xmppUser', "nepi")
        ec.set(self.channel, 'xmppServer', "xmpp-plexus.onelab.eu")
        ec.set(self.channel, 'xmppPort', "5222")
        ec.set(self.channel, 'xmppPassword', "1234")
        
        self.app1 = ec.register_resource("omf::Application")
        ec.set(self.app1, 'appid', 'Vlc#1')
        ec.set(self.app1, 'command', "ping -c5 10.0.0.17")

        ec.register_connection(self.app1, self.node1)
        ec.register_connection(self.node1, self.iface1)
        ec.register_connection(self.iface1, self.channel)

        ec.register_condition(self.app1, ResourceAction.STOP, self.app1, ResourceState.STARTED , "10s")

        ec.deploy()

        ec.wait_finished(self.app1)

        stdout_1 = ec.trace(self.app1, "stdout")
        stderr_1 = ec.trace(self.app1, "stderr")

        if stdout_1:
            f = open("app1_out.txt", "w")
            f.write(stdout_1)
            f.close()

        if stderr_1:
            f = open("app1_err.txt", "w")
            f.write(stderr_1)
            f.close()

        self.assertEquals(ec.get_resource(self.node1).state, ResourceState.STARTED)
        self.assertEquals(ec.get_resource(self.iface1).state, ResourceState.STARTED)
        self.assertEquals(ec.get_resource(self.channel).state, ResourceState.STARTED)
        self.assertEquals(ec.get_resource(self.app1).state, ResourceState.STOPPED)

        ec.shutdown()

        self.assertEquals(ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.app1).state, ResourceState.RELEASED)

        t = open("app1_out.txt", "r")
        l = t.readlines()
        self.assertEquals(l[0], "PING 10.0.0.17 (10.0.0.17) 56(84) bytes of data.\n")
        self.assertIn("5 packets transmitted, 5 received, 0% packet loss, time", l[-2])
        self.assertIn("rtt min/avg/max/mdev = ", l[-1])
        
        t.close()
        os.remove("app1_out.txt")
Exemplo n.º 17
0
class OMFVLCWrongCaseAllCritical(unittest.TestCase):

    id = 1000

    def setUp(self):
        self.ec = ExperimentController(exp_id = str(OMFVLCWrongCaseAllCritical.id))
        OMFVLCWrongCaseAllCritical.id += 1

        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.12/24")

        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.49,port=1234,mux=ts}'")
        self.ec.set(self.app1, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.ec.register_connection(self.app1, self.node1)
        self.ec.register_connection(self.node1, self.iface1)

    def test_deploy_wo_node(self):
        self.node2 = self.ec.register_resource("omf::Node")

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
        
        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "2s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

    def test_deploy_wo_hostname(self):

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

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
        
        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "2s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

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

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        
        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "2s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

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

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

        self.channel = self.ec.register_resource("omf::Channel")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "2s")
        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

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

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "2s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

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

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

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

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

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.app2, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "2s")
        self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP, self.app1, ResourceState.STARTED , "4s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2])

        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)

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

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

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, 'appid', 'Vlc#2')

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.app2, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "2s")
        self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP, self.app1, ResourceState.STARTED , "4s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2])

        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
Exemplo n.º 18
0
        iface = add_interface(ec, all_ip[i], xmpp_slice, xmpp_host)
        ec.register_connection(node, iface)
        ec.register_connection(iface, chann)
        nodes[all_hosts[i]] = node

# CCN setup for the node
    ccnds = dict()
    ccnrs = dict()
    for i in xrange(len(all_hosts)):
        ccndstart = add_app(ec, nodes[all_hosts[i]],  "#ccndstart", "ccndstart &", 
                              env, xmpp_slice, xmpp_host)
        ccnr = add_app(ec, nodes[all_hosts[i]],  "#ccnr", "ccnr &", 
                             env, xmpp_slice, xmpp_host)
        ccnds[all_hosts[i]] = ccndstart
        ccnrs[all_hosts[i]] = ccnr
        ec.register_condition(ccnr, ResourceAction.START, ccndstart, ResourceState.STARTED, "1s")

# CCNDC setup 
    # l1 : h1 - h2 , h2 - h1
    l1u = add_ccnd(ec, nodes[host1], ip2, xmpp_slice, xmpp_host)
    l1d = add_ccnd(ec, nodes[host2], ip1, xmpp_slice, xmpp_host)

    # l2 : h2 - h3 , h3 - h2
    l2u = add_ccnd(ec, nodes[host2], ip3, xmpp_slice, xmpp_host)
    l2d = add_ccnd(ec, nodes[host3], ip2, xmpp_slice, xmpp_host)

    # l3 : h3 - h4 , h4 - h3
    l3u = add_ccnd(ec, nodes[host3], ip4, xmpp_slice, xmpp_host)
    l3d = add_ccnd(ec, nodes[host4], ip3, xmpp_slice, xmpp_host)

    # l4 : h4 - h1 , h1 - h4
Exemplo n.º 19
0
## Add a OMFApplication to count the number of bytes in the transmitted video
app3 = ec.register_resource("omf::Application")
## Send the transmitted video to a file.
ec.set(app3, "command", "ls -lah /root/video.ts")
ec.register_connection(app3, node2)

app4 = ec.register_resource("omf::Application")
ec.set(app4, "command", "/usr/bin/killall vlc_app")
ec.register_connection(app4, node1)

app5 = ec.register_resource("omf::Application")
ec.set(app5, "command", "/usr/bin/killall vlc_app")
ec.register_connection(app5, node2)

## start app2 5s after app1
ec.register_condition(app2, ResourceAction.START, app1, ResourceState.STARTED , "5s")
# start app3 after app2 stopped
ec.register_condition(app3, ResourceAction.START, app2, ResourceState.STOPPED , "5s")
# start the kill of vlc processes after they stopped
ec.register_condition(app4, ResourceAction.START, app1, ResourceState.STOPPED , "5s")
ec.register_condition(app5, ResourceAction.START, app2, ResourceState.STOPPED , "5s")

## We need to explicitly STOP all applications
## stop app1 65s after it started
ec.register_condition(app1, ResourceAction.STOP, app1, ResourceState.STARTED , "65s")
## stop app2 5 seconds after app2
ec.register_condition(app2, ResourceAction.STOP, app1, ResourceState.STOPPED , "5s")
# stop app3 after 5s
ec.register_condition(app3, ResourceAction.STOP, app3, ResourceState.STOPPED , "5s")
# stop app4 
ec.register_condition(app4, ResourceAction.STOP, app4, ResourceState.STARTED , "5s")
Exemplo n.º 20
0
    def t_cross_ping(self, host, user=None, identity=None):
        ec = ExperimentController(exp_id="test-linux-ns3-tap-fd")

        node = ec.register_resource("linux::Node")
        if host == "localhost":
            ec.set(node, "hostname", "localhost")
        else:
            ec.set(node, "hostname", host)
            ec.set(node, "username", user)
            ec.set(node, "identity", identity)

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

        simu = ec.register_resource("linux::ns3::Simulation")
        ec.set(simu, "simulatorImplementationType",
               "ns3::RealtimeSimulatorImpl")
        ec.set(simu, "checksumEnabled", True)
        ec.set(simu, "verbose", True)
        #ec.set(simu, "buildMode", "debug")
        #ec.set(simu, "nsLog", "FdNetDevice")
        ec.register_connection(simu, node)

        nsnode1 = add_ns3_node(ec, simu)
        dev1 = add_point2point_device(ec, nsnode1, "10.0.0.1", "30")

        nsnode2 = add_ns3_node(ec, simu)
        dev2 = add_point2point_device(ec, nsnode2, "10.0.0.2", "30")

        # Add routes on the NS3 side
        r1 = ec.register_resource("ns3::Route")
        ec.set(r1, "network", "10.0.1.0")
        ec.set(r1, "prefix", "30")
        ec.set(r1, "nexthop", "10.0.0.1")
        ec.register_connection(r1, nsnode2)

        # Create channel
        chan = ec.register_resource("ns3::PointToPointChannel")
        ec.set(chan, "Delay", "0s")
        ec.register_connection(chan, dev1)
        ec.register_connection(chan, dev2)

        fddev = add_fd_device(ec, nsnode1, "10.0.1.2", "30")
        ec.enable_trace(fddev, "pcap")
        ec.enable_trace(fddev, "promiscPcap")
        ec.enable_trace(fddev, "ascii")

        tap = add_tap_device(ec, node, "10.0.1.1", "30")

        crosslink = ec.register_resource("linux::ns3::TapFdLink")
        ec.register_connection(crosslink, tap)
        ec.register_connection(crosslink, fddev)

        # Add routes on the localhost side
        r2 = ec.register_resource("linux::Route")
        ec.set(r2, "network", "10.0.0.0")
        ec.set(r2, "prefix", "30")
        ec.set(r2, "nexthop", "10.0.1.2")
        ec.register_connection(r2, tap)

        app = ec.register_resource("linux::Application")
        ec.set(app, "command", "ping -c3 10.0.0.1")
        ec.register_connection(app, node)

        ec.register_condition(app,
                              ResourceAction.START,
                              simu,
                              ResourceState.STARTED,
                              time="5s")

        ec.deploy()

        ec.wait_finished([app])

        stdout = ec.trace(app, "stdout")
        expected = "3 packets transmitted, 3 received, 0% packet loss"
        self.assertTrue(stdout.find(expected) > -1)

        ## Releasing to force ns3 to flush the traces
        ec.release()
        pcap = ec.trace(fddev, "pcap")

        self.assertTrue(len(pcap) > 4000)
        ec.shutdown()
Exemplo n.º 21
0
ec.set(client, "depends", "nc")
ec.set(client, "command", command)
ec.register_connection(client, node2)

# Register a tcpdump in the server node to monitor the file transfer
command = "tcpdump -ni eth0 -w file_transfer.pcap -s0 port 1234 2>&1"

capture = ec.register_resource("linux::Application")
ec.set(capture, "depends", "tcpdump")
ec.set(capture, "command", command)
ec.set(capture, "sudo", True)
ec.register_connection(capture, node1)

# Register conditions 1. nodes ; 2. start tcpdump capture ; 3. client listen port 1234 ;
# 4. server start sending video
ec.register_condition(server, ResourceAction.START, client,
                      ResourceState.STARTED)
ec.register_condition(client, ResourceAction.START, capture,
                      ResourceState.STARTED)

# Deploy
ec.deploy()

# Wait until the applications are finish to retrive the traces
ec.wait_finished([server, client])

# Retrieve traces from nc and tcpdump
bw = ec.trace(server, "bw.txt")
pcap = ec.trace(capture, "file_transfer.pcap")

# Choose a directory to store the traces, example f = open("/home/<user>/bw.txt", "w")
f = open("bw.txt", "w")
Exemplo n.º 22
0
ec.set(chan, 'channel', "6")

# Create and Configure the Application
app1 = ec.register_resource("omf::Application")
ec.set(app1, 'command', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority /root/vlc/vlc-1.1.13/cvlc /root/10-by-p0d.avi --sout '#rtp{dst=192.168.0.27,port=1234,mux=ts}'")

app2 = ec.register_resource("omf::Application")
ec.set(app2, 'command', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority /root/vlc/vlc-1.1.13/cvlc rtp://192.168.0.27:1234")


# Connection
ec.register_connection(iface1, node1)
ec.register_connection(iface2, node2)
ec.register_connection(iface1, chan)
ec.register_connection(iface2, chan)
ec.register_connection(app1, node1)
ec.register_connection(app2, node2)

ec.register_condition([app2], ResourceAction.START, app1, ResourceState.STARTED , "4s")
ec.register_condition([app1,app2], ResourceAction.STOP, app2, ResourceState.STARTED , "30s")


# Deploy
ec.deploy()

ec.wait_finished([app1,app2])

# Stop Experiment
ec.shutdown()

Exemplo n.º 23
0
ec.set(client, "depends", "nc")
ec.set(client, "command", command)
ec.register_connection(client, node2)

# Register a tcpdump in the server node to monitor the file transfer 
command = "tcpdump -ni eth0 -w file_transfer.pcap -s0 port 1234 2>&1"

capture = ec.register_resource("linux::Application")
ec.set(capture, "depends", "tcpdump")
ec.set(capture, "command", command)
ec.set(capture, "sudo", True)
ec.register_connection(capture, node1)

# Register conditions 1. nodes ; 2. start tcpdump capture ; 3. client listen port 1234 ;
# 4. server start sending video
ec.register_condition(server, ResourceAction.START, client, ResourceState.STARTED) 
ec.register_condition(client, ResourceAction.START, capture, ResourceState.STARTED)

# Deploy
ec.deploy()

# Wait until the applications are finish to retrive the traces
ec.wait_finished([server, client])

# Retrieve traces from nc and tcpdump
bw = ec.trace(server, "bw.txt")
pcap = ec.trace(capture, "file_transfer.pcap")

# Choose a directory to store the traces, example f = open("/home/<user>/bw.txt", "w")
f = open("bw.txt", "w")
f.write(bw)
Exemplo n.º 24
0
class OMFVLCWrongCaseWithNonCriticalDep(unittest.TestCase):

    id = 3000

    def setUp(self):
        self.ec = ExperimentController(
            exp_id=str(OMFVLCWrongCaseWithNonCriticalDep.id))
        OMFVLCWrongCaseWithNonCriticalDep.id += 1

        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.12/24")

        self.app1 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app1, 'appid', 'Kill#1')
        self.ec.set(self.app1, 'command', "/usr/bin/test -1")
        self.ec.set(self.app1, 'env',
                    "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.ec.register_connection(self.app1, self.node1)
        self.ec.register_connection(self.node1, self.iface1)

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

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

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, "critical", False)
        self.ec.set(self.app2, 'appid', 'Kill#32')

        self.app3 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app3, 'appid', 'Kill#33')

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node2)
        self.ec.register_connection(self.app3, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1,
                                   ResourceState.STARTED, "5s")
        self.ec.register_condition(self.app3, ResourceAction.START, self.app2,
                                   ResourceState.STARTED, "5s")
        self.ec.register_condition([self.app1, self.app2, self.app3],
                                   ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "15s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2, self.app3])

        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.FAILED)
        self.assertEquals(
            self.ec.get_resource(self.app3).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app3).state, ResourceState.RELEASED)

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

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

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, "critical", False)
        self.ec.set(self.app2, 'appid', 'Kill#32')

        self.app3 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app3, 'appid', 'Kill#3')
        self.ec.set(self.app3, 'command', "/usr/bin/test -3")
        self.ec.set(self.app3, 'env',
                    "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node2)
        self.ec.register_connection(self.app3, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1,
                                   ResourceState.STARTED, "5s")
        self.ec.register_condition(self.app3, ResourceAction.START, self.app2,
                                   ResourceState.STARTED, "5s")
        self.ec.register_condition([self.app1, self.app2, self.app3],
                                   ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "15s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2, self.app3])

        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.FAILED)
        #self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.STOPPED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app3).state, ResourceState.RELEASED)

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

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

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, "critical", False)
        self.ec.set(self.app2, 'appid', 'Kill#32')

        self.app3 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app3, "critical", False)
        self.ec.set(self.app3, 'appid', 'Kill#3')
        self.ec.set(self.app3, 'command', "/usr/bin/test -3")
        self.ec.set(self.app3, 'env',
                    "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.app4 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app4, 'appid', 'Kill#4')
        self.ec.set(self.app4, 'command', "/usr/bin/test -4")
        self.ec.set(self.app4, 'env',
                    "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.app5 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app5, "critical", False)
        self.ec.set(self.app5, 'appid', 'Kill#32')

        self.app6 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app6, 'appid', 'Kill#6')
        self.ec.set(self.app6, 'command', "/usr/bin/test -6")
        self.ec.set(self.app6, 'env',
                    "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node1)
        self.ec.register_connection(self.app3, self.node1)
        self.ec.register_connection(self.app4, self.node2)
        self.ec.register_connection(self.app5, self.node2)
        self.ec.register_connection(self.app6, self.node2)

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

        self.ec.deploy()

        self.ec.wait_finished(
            [self.app1, self.app2, self.app3, self.app4, self.app5, self.app6])

        #self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.STOPPED)
        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.FAILED)
        #self.assertEquals(self.ec.get_resource(self.app4).state, ResourceState.STOPPED)
        self.assertEquals(
            self.ec.get_resource(self.app5).state, ResourceState.FAILED)
        #self.assertEquals(self.ec.get_resource(self.app6).state, ResourceState.STOPPED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app3).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app4).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app5).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app6).state, ResourceState.RELEASED)
Exemplo n.º 25
0
    # border node 2
    bnode2 = add_node(ec, host6, pl_user, pl_ssh_key)
    ccndb2 = add_ccnd(ec, bnode2)
    ccnrb2 = add_ccnr(ec, ccndb2)
    ccnds[host6] = ccndb2
    app = add_stream(ec, ccndb2, content_name)
 
    # connect border nodes
    add_fib_entry(ec, ccndb1, host1)
    add_fib_entry(ec, ccnds[host1], host5)

    add_fib_entry(ec, ccndb2, host3)
    add_fib_entry(ec, ccnds[host3], host6)

    # Put down l5 10s after transfer started
    ec.register_condition(l5u, ResourceAction.STOP, 
            app, ResourceState.STARTED, time = "10s")
    ec.register_condition(l5d, ResourceAction.STOP, 
            app, ResourceState.STARTED, time = "10s")

    # Register a collector to automatically collect traces
    collector = add_collector(ec, "stderr")
    for ccnd in ccnds.values():
        ec.register_connection(collector, ccnd)

    # deploy all ResourceManagers
    ec.deploy()

    # Wait until ccncat has started retrieving the content
    ec.wait_started([app])

    rvideo_path = ec.trace(app, "stdout", attr = TraceAttr.PATH)
Exemplo n.º 26
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)
Exemplo n.º 27
0
    def test_deploy(self):
        ec = ExperimentController(exp_id="5421")

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

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

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

        self.app1 = ec.register_resource("omf::Application")
        ec.set(self.app1, 'appid', 'Vlc#1')
        ec.set(self.app1, 'command', "ping -c5 10.0.0.17")

        ec.register_connection(self.app1, self.node1)
        ec.register_connection(self.node1, self.iface1)
        ec.register_connection(self.iface1, self.channel)

        ec.register_condition(self.app1, ResourceAction.STOP, self.app1,
                              ResourceState.STARTED, "10s")

        ec.deploy()

        ec.wait_finished(self.app1)

        stdout_1 = ec.trace(self.app1, "stdout")
        stderr_1 = ec.trace(self.app1, "stderr")

        if stdout_1:
            f = open("app1_out.txt", "w")
            f.write(stdout_1)
            f.close()

        if stderr_1:
            f = open("app1_err.txt", "w")
            f.write(stderr_1)
            f.close()

        self.assertEquals(
            ec.get_resource(self.node1).state, ResourceState.STARTED)
        self.assertEquals(
            ec.get_resource(self.iface1).state, ResourceState.STARTED)
        self.assertEquals(
            ec.get_resource(self.channel).state, ResourceState.STARTED)
        self.assertEquals(
            ec.get_resource(self.app1).state, ResourceState.STOPPED)

        ec.shutdown()

        self.assertEquals(
            ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            ec.get_resource(self.app1).state, ResourceState.RELEASED)

        t = open("app1_out.txt", "r")
        l = t.readlines()
        self.assertEquals(
            l[0], "PING 10.0.0.17 (10.0.0.17) 56(84) bytes of data.\n")
        self.assertIn(
            "5 packets transmitted, 5 received, 0% packet loss, time", l[-2])
        self.assertIn("rtt min/avg/max/mdev = ", l[-1])

        t.close()
        os.remove("app1_out.txt")
Exemplo n.º 28
0
class OMFVLCWrongCaseWithNonCriticalDep(unittest.TestCase):

    id = 3000

    def setUp(self):
        self.ec = ExperimentController(exp_id = str(OMFVLCWrongCaseWithNonCriticalDep.id))
        OMFVLCWrongCaseWithNonCriticalDep.id += 1

        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.12/24")

        self.app1 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app1, 'appid', 'Kill#1')
        self.ec.set(self.app1, 'command', "/usr/bin/test -1")
        self.ec.set(self.app1, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.ec.register_connection(self.app1, self.node1)
        self.ec.register_connection(self.node1, self.iface1)

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

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
        
        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, "critical", False)
        self.ec.set(self.app2, 'appid', 'Kill#32')

        self.app3 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app3, 'appid', 'Kill#33')

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node2)
        self.ec.register_connection(self.app3, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "5s")
        self.ec.register_condition(self.app3, ResourceAction.START, self.app2, ResourceState.STARTED , "5s")
        self.ec.register_condition([self.app1, self.app2, self.app3], ResourceAction.STOP, self.app1, ResourceState.STARTED , "15s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2, self.app3])

        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)
        self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.RELEASED)

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

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
        
        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, "critical", False)
        self.ec.set(self.app2, 'appid', 'Kill#32')

        self.app3 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app3, 'appid', 'Kill#3')
        self.ec.set(self.app3, 'command', "/usr/bin/test -3")
        self.ec.set(self.app3, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node2)
        self.ec.register_connection(self.app3, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "5s")
        self.ec.register_condition(self.app3, ResourceAction.START, self.app2, ResourceState.STARTED , "5s")
        self.ec.register_condition([self.app1, self.app2, self.app3], ResourceAction.STOP, self.app1, ResourceState.STARTED , "15s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2, self.app3])

        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)
        #self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.STOPPED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.RELEASED)


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

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.49/24")
        
        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, "critical", False)
        self.ec.set(self.app2, 'appid', 'Kill#32')

        self.app3 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app3, "critical", False)
        self.ec.set(self.app3, 'appid', 'Kill#3')
        self.ec.set(self.app3, 'command', "/usr/bin/test -3")
        self.ec.set(self.app3, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.app4 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app4, 'appid', 'Kill#4')
        self.ec.set(self.app4, 'command', "/usr/bin/test -4")
        self.ec.set(self.app4, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.app5 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app5, "critical", False)
        self.ec.set(self.app5, 'appid', 'Kill#32')

        self.app6 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app6, 'appid', 'Kill#6')
        self.ec.set(self.app6, 'command', "/usr/bin/test -6")
        self.ec.set(self.app6, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node1)
        self.ec.register_connection(self.app3, self.node1)
        self.ec.register_connection(self.app4, self.node2)
        self.ec.register_connection(self.app5, self.node2)
        self.ec.register_connection(self.app6, self.node2)

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

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2, self.app3, self.app4, self.app5, self.app6])

        #self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.STOPPED)
        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)
        #self.assertEquals(self.ec.get_resource(self.app4).state, ResourceState.STOPPED)
        self.assertEquals(self.ec.get_resource(self.app5).state, ResourceState.FAILED)
        #self.assertEquals(self.ec.get_resource(self.app6).state, ResourceState.STOPPED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app3).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app4).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app5).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app6).state, ResourceState.RELEASED)
Exemplo n.º 29
0
    def test_deploy(self):
        ec = ExperimentController(exp_id = "5421" )

        self.node1 = ec.register_resource("omf::Node")
        ec.set(self.node1, 'hostname', 'wlab12')
        ec.set(self.node1, 'xmppUser', "nepi")
        ec.set(self.node1, 'xmppServer', "xmpp-plexus.onelab.eu")
        ec.set(self.node1, 'xmppPort', "5222")
        ec.set(self.node1, 'xmppPassword', "1234")
        
        self.iface1 = ec.register_resource("omf::WifiInterface")
        ec.set(self.iface1, 'name', "wlan0")
        ec.set(self.iface1, 'mode', "adhoc")
        ec.set(self.iface1, 'hw_mode', "g")
        ec.set(self.iface1, 'essid', "vlcexp")
        ec.set(self.iface1, 'ip', "10.0.0.17/24")
        
        self.channel = ec.register_resource("omf::Channel")
        ec.set(self.channel, 'channel', "6")
        ec.set(self.channel, 'xmppUser', "nepi")
        ec.set(self.channel, 'xmppServer', "xmpp-plexus.onelab.eu")
        ec.set(self.channel, 'xmppPort', "5222")
        ec.set(self.channel, 'xmppPassword', "1234")
        
        self.app1 = ec.register_resource("omf::Application")
        ec.set(self.app1, 'appid', 'Vlc#1')
        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}'")
        ec.set(self.app1, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.app2 = ec.register_resource("omf::Application")
        ec.set(self.app2, 'appid', 'Test#1')
        ec.set(self.app2, 'command', "/usr/bin/test -1")
        ec.set(self.app2, 'env', " ")

        self.app3 = ec.register_resource("omf::Application")
        ec.set(self.app3, 'appid', 'Test#2')
        ec.set(self.app3, 'command', "/usr/bin/test -2")
        ec.set(self.app3, 'env', " ")

        self.app4 = ec.register_resource("omf::Application")
        ec.set(self.app4, 'appid', 'Test#3')
        ec.set(self.app4, 'command', "/usr/bin/test -3")
        ec.set(self.app4, 'env', " ")

        self.app5 = ec.register_resource("omf::Application")
        ec.set(self.app5, 'appid', 'Kill#2')
        ec.set(self.app5, 'command', "/usr/bin/killall vlc")
        ec.set(self.app5, 'env', " ")

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

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

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

        ec.deploy()

        ec.wait_finished([self.app1, self.app2, self.app3,self.app4, self.app5])

        self.assertGreaterEqual(round(tdiffsec(ec.get_resource(self.app2).start_time, ec.get_resource(self.app1).start_time),0), 3.0)
        self.assertGreaterEqual(round(tdiffsec(ec.get_resource(self.app3).start_time, ec.get_resource(self.app2).start_time),0), 2.0)
        self.assertGreaterEqual(round(tdiffsec(ec.get_resource(self.app4).start_time, ec.get_resource(self.app3).start_time),0), 3.0)
        self.assertGreaterEqual(round(tdiffsec(ec.get_resource(self.app5).start_time, ec.get_resource(self.app3).start_time),0), 2.0)
        self.assertGreaterEqual(round(tdiffsec(ec.get_resource(self.app5).start_time, ec.get_resource(self.app1).start_time),0), 25.0)

        self.assertEquals(ec.get_resource(self.node1).state, ResourceState.STARTED)
        self.assertEquals(ec.get_resource(self.iface1).state, ResourceState.STARTED)
        self.assertEquals(ec.get_resource(self.channel).state, ResourceState.STARTED)
        self.assertEquals(ec.get_resource(self.app1).state, ResourceState.STOPPED)
        self.assertEquals(ec.get_resource(self.app2).state, ResourceState.STOPPED)
        self.assertEquals(ec.get_resource(self.app3).state, ResourceState.STOPPED)
        self.assertEquals(ec.get_resource(self.app4).state, ResourceState.STOPPED)
        self.assertEquals(ec.get_resource(self.app5).state, ResourceState.STOPPED)

        ec.shutdown()

        self.assertEquals(ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.app2).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.app3).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.app4).state, ResourceState.RELEASED)
        self.assertEquals(ec.get_resource(self.app5).state, ResourceState.RELEASED)
Exemplo n.º 30
0
ec.set(app4, 'command', "/usr/bin/killall vlc_app")
ec.set(app4, 'env', " ")
ec.set(app4, 'version', "5")

# Connection
ec.register_connection(app3, node1)
ec.register_connection(app1, node1)
ec.register_connection(node1, iface1)
ec.register_connection(iface1, channel)
ec.register_connection(iface2, channel)
ec.register_connection(node2, iface2)
ec.register_connection(app2, node2)
ec.register_connection(app4, node2)

# User Behaviour
ec.register_condition(app2, ResourceAction.START, app1, ResourceState.STARTED,
                      "4s")
ec.register_condition([app1, app2], ResourceAction.STOP, app2,
                      ResourceState.STARTED, "22s")
ec.register_condition([app3, app4], ResourceAction.START, app2,
                      ResourceState.STARTED, "25s")
ec.register_condition([app3, app4], ResourceAction.STOP, app3,
                      ResourceState.STARTED, "1s")

# Deploy
ec.deploy()

ec.wait_finished([app1, app2, app3, app4])

# Stop Experiment
ec.shutdown()
Exemplo n.º 31
0
if mode == 'vod':
    update_file_wificenter = "echo -e 'new BUNNY vod enabled\\n"\
       "setup BUNNY input rtsp://128.232.103.203:5554/BUNNY' > /root/wificenter.vlm"
    command_wificenter = "/root/vlc/vlc-1.1.13/cvlc --vlm-conf /root/wificenter.vlm --rtsp-host 192.168.0.1:5554"
elif mode == 'broadcast':
    update_file_wificenter = "echo -e 'new BUNNY broadcast enabled loop\\n"\
       "setup BUNNY input rtsp://128.232.103.203:8554/BUNNY\\n"\
       "setup BUNNY output #rtp{access=udp,mux=ts,sdp=rtsp://0.0.0.0:8554/BUNNY}\\n\\n"\
       "new test_sched schedule enabled\\n"\
       "setup test_sched append control BUNNY play' > /root/wificenter.vlm"
    command_wificenter = "/root/vlc/vlc-1.1.13/cvlc --vlm-conf /root/wificenter.vlm --rtsp-host 192.168.0.1:8554"

upload_conf = create_omf_app(ec, update_file_wificenter, wifi_center)
vlc_wificenter = create_omf_app(ec, command_wificenter, wifi_center)

ec.register_condition(upload_conf, ResourceAction.START, vlc_server,
                      ResourceState.STARTED, "2s")
ec.register_condition(vlc_wificenter, ResourceAction.START, upload_conf,
                      ResourceState.STARTED, "2s")

# measurements in video server (PL node)
measure_videoserver = ec.register_resource("linux::Application")
ec.set(measure_videoserver, "depends", "tcpdump")
ec.set(measure_videoserver, "sudo", True)
command = "tcpdump -i eth0 not arp -n -w /tmp/capplserver_%s.pcap" % (
    "$(date +'%Y%m%d%H%M%S')")
ec.set(measure_videoserver, "command", command)
ec.register_connection(measure_videoserver, video_server)

# Deploy servers
ec.deploy([vlc_server, upload_conf, vlc_wificenter, measure_videoserver])
Exemplo n.º 32
0
    def t_cross_ping(self, host, user = None, identity = None):
        ec = ExperimentController(exp_id = "test-linux-ns3-tap-fd")
        
        node = ec.register_resource("linux::Node")
        if host == "localhost":
            ec.set(node, "hostname", "localhost")
        else:
            ec.set(node, "hostname", host)
            ec.set(node, "username", user)
            ec.set(node, "identity", identity)
        
        ec.set(node, "cleanProcesses", True)
        ec.set(node, "cleanExperiment", True)

        simu = ec.register_resource("linux::ns3::Simulation")
        ec.set(simu, "simulatorImplementationType", "ns3::RealtimeSimulatorImpl")
        ec.set(simu, "checksumEnabled", True)
        ec.set(simu, "verbose", True)
        #ec.set(simu, "buildMode", "debug")
        #ec.set(simu, "nsLog", "FdNetDevice")
        ec.register_connection(simu, node)

        nsnode1 = add_ns3_node(ec, simu)
        dev1 = add_point2point_device(ec, nsnode1, "10.0.0.1", "30")

        nsnode2 = add_ns3_node(ec, simu)
        dev2 = add_point2point_device(ec, nsnode2, "10.0.0.2", "30")
        
        # Add routes on the NS3 side
        r1 = ec.register_resource("ns3::Route")
        ec.set(r1, "network", "10.0.1.0")
        ec.set(r1, "prefix", "30")
        ec.set(r1, "nexthop", "10.0.0.1")
        ec.register_connection(r1, nsnode2)

        # Create channel
        chan = ec.register_resource("ns3::PointToPointChannel")
        ec.set(chan, "Delay", "0s")
        ec.register_connection(chan, dev1)
        ec.register_connection(chan, dev2)

        fddev = add_fd_device(ec, nsnode1, "10.0.1.2", "30")
        ec.enable_trace(fddev, "pcap")
        ec.enable_trace(fddev, "promiscPcap")
        ec.enable_trace(fddev, "ascii")

        tap = add_tap_device(ec, node, "10.0.1.1", "30")

        crosslink = ec.register_resource("linux::ns3::TapFdLink")
        ec.register_connection(crosslink, tap)
        ec.register_connection(crosslink, fddev)

        # Add routes on the localhost side
        r2 = ec.register_resource("linux::Route")
        ec.set(r2, "network", "10.0.0.0")
        ec.set(r2, "prefix", "30")
        ec.set(r2, "nexthop", "10.0.1.2")
        ec.register_connection(r2, tap)

        app = ec.register_resource("linux::Application")
        ec.set(app, "command", "ping -c3 10.0.0.1")
        ec.register_connection(app, node)

        ec.register_condition(app, ResourceAction.START, simu, 
                ResourceState.STARTED, time="5s")

        ec.deploy()

        ec.wait_finished([app])

        stdout = ec.trace(app, "stdout")
        expected = "3 packets transmitted, 3 received, 0% packet loss"
        self.assertTrue(stdout.find(expected) > -1)

        ## Releasing to force ns3 to flush the traces
        ec.release()
        pcap = ec.trace(fddev, "pcap")

        self.assertTrue(len(pcap) > 4000)
        ec.shutdown()
Exemplo n.º 33
0
ec.set(node1, 'xmppUser', "xmpp-plexus.onelab.eu")
ec.set(node1, 'xmppPort', "5222")
ec.set(node1, 'xmppPassword', "1234")
ec.set(node1, 'version', "5")

# Create and Configure the Application
app1 = ec.register_resource("omf::Application")
ec.set(app1, 'appid', "robot")
ec.set(app1, 'command', "/root/CTRL_test.rb coord.csv")
ec.set(app1, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
ec.set(app1, 'version', "5")

# Connection
ec.register_connection(app1, node1)

ec.register_condition(app1, ResourceAction.STOP, app1, ResourceState.STARTED,
                      "20s")

# Deploy
ec.deploy()

ec.wait_started([app1])
ec.set(app1, 'stdin', "xxxxxxxxxxxxxxxxx")

time.sleep(5)
ec.set(app1, 'stdin', "xxxxxxxxxxxxxxxxx")

ec.wait_finished([app1])

# Stop Experiment
ec.shutdown()
Exemplo n.º 34
0
# Create and Configure the PING Application
app1 = ec.register_resource("omf::Application")
ec.set(app1, "appid", "Ping#1")
ec.set(app1, "command", "/bin/ping -c3 192.168.0.%s" % nodex[-2:])
ec.set(app1, "version", "5")
ec.register_connection(app1, node1)

app2 = ec.register_resource("omf::Application")
ec.set(app2, "appid", "Kill#1")
ec.set(app2, "command", "/usr/bin/killall ping")
ec.set(app2, "version", "5")
ec.register_connection(app2, node1)

# User Behaviour
ec.register_condition(app1, ResourceAction.STOP, app1, ResourceState.STARTED,
                      "10s")
ec.register_condition(app2, ResourceAction.START, app1, ResourceState.STARTED,
                      "12s")
ec.register_condition(app2, ResourceAction.STOP, app2, ResourceState.STARTED,
                      "1s")

# Deploy
ec.deploy()

ec.wait_finished([app1, app2])

print ec.trace(app1, "stdout")

# Stop Experiment
ec.shutdown()
Exemplo n.º 35
0
ec.set(channel, "channel", chan)
ec.set(channel, "xmppUser", slicename)
ec.set(channel, "xmppServer", "nitlab.inf.uth.gr")
ec.set(channel, "xmppPort", "5222")
ec.set(channel, "xmppPassword", "1234")
ec.register_connection(iface1, channel)
ec.register_connection(iface2, channel)

# Create and Configure the PING Application
app1 = ec.register_resource("omf::Application")
ec.set(app1, "appid", "Ping#1")
ec.set(app1, "command", "/bin/ping -c3 192.168.0.%s" % nodez[-2:])
ec.register_connection(app1, node1)

## Make sure the ping stops after 30 seconds
ec.register_condition(app1, ResourceAction.STOP, app1, 
        ResourceState.STARTED , "30s")

# Deploy
ec.deploy()

ec.wait_finished([app1])

# Retrieve the output of the ping command
ping_output = ec.trace(app1, "stdout")
print "\n PING OUTPUT\n", ping_output, "\n"

# Stop Experiment
ec.shutdown()

Exemplo n.º 36
0
ccnd1 = add_ccnd(ec, peers)
ec.register_connection(ccnd1, node1)

# Register content producer application (ccnseqwriter)
## Push the file into the repository
local_path_to_content = os.path.join(
    os.path.dirname(os.path.realpath(__file__)), "..",
    "big_buck_bunny_240p_mpeg4_lq.ts")

content_name = "ccnx:/test/FILE"

pub = add_publish(ec, local_path_to_content, content_name)
ec.register_connection(pub, node1)

# The movie can only be published after ccnd is running
ec.register_condition(pub, ResourceAction.START, ccnd1, ResourceState.STARTED)

# Register Linux host
node2 = add_node(ec, hostname2, username, ssh_key)

# Register CCN setup for Linux host
peers = [hostname1]
ccnd2 = add_ccnd(ec, peers)
ec.register_connection(ccnd2, node2)

# Register consumer application (ccncat)
ccncat = add_ccncat(ec, content_name)
ec.register_connection(ccncat, node2)

# The file can only be retrieved after ccnd is running
ec.register_condition(ccncat, ResourceAction.START, ccnd2,
Exemplo n.º 37
0
    trace_name = "%s.ping" % hostname
    app = add_app(ec, command, node, newname=trace_name)
    apps.append(app)

# Register conditions

# The nodes that are completely identified by their hostnames have to be provisioned
# before the rest of the nodes. This assures that no other resource will use the
# identified node even if the constraints matchs.
# In this example node2, node3, node4 and node5, are deployed after node1 is
# provisioned. node1 must be the node hostname, meanwhile node2, node3,
# node4 and node5 just need to fulfill certain constraints.
# Applications are always deployed after nodes, so no need to register conditions
# for the apps in this example.

ec.register_condition(node2, ResourceAction.DEPLOY, node1,
                      ResourceState.PROVISIONED)
ec.register_condition(node3, ResourceAction.DEPLOY, node1,
                      ResourceState.PROVISIONED)
ec.register_condition(node4, ResourceAction.DEPLOY, node1,
                      ResourceState.PROVISIONED)
ec.register_condition(node5, ResourceAction.DEPLOY, node1,
                      ResourceState.PROVISIONED)

# Deploy the experiment:
ec.deploy()

# Wait until the applications are finish to retrive the traces:
ec.wait_finished(apps)

print "Results stored at", ec.exp_dir
Exemplo n.º 38
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)
Exemplo n.º 39
0
class OMFVLCWrongCaseAllCritical(unittest.TestCase):

    id = 1000

    def setUp(self):
        self.ec = ExperimentController(
            exp_id=str(OMFVLCWrongCaseAllCritical.id))
        OMFVLCWrongCaseAllCritical.id += 1

        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.12/24")

        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.49,port=1234,mux=ts}'"
        )
        self.ec.set(self.app1, 'env',
                    "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")

        self.ec.register_connection(self.app1, self.node1)
        self.ec.register_connection(self.node1, self.iface1)

    def test_deploy_wo_node(self):
        self.node2 = self.ec.register_resource("omf::Node")

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

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "2s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

    def test_deploy_wo_hostname(self):

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

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

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "2s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

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

        self.iface2 = self.ec.register_resource("omf::WifiInterface")

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "2s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

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

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

        self.channel = self.ec.register_resource("omf::Channel")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "2s")
        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

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

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1,
                                   ResourceState.STARTED, "2s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

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

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

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

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

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.app2, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1,
                                   ResourceState.STARTED, "2s")
        self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP,
                                   self.app1, ResourceState.STARTED, "4s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2])

        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.RELEASED)

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

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

        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, 'appid', 'Vlc#2')

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.app2, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1,
                                   ResourceState.STARTED, "2s")
        self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP,
                                   self.app1, ResourceState.STARTED, "4s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2])

        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(
            self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(
            self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
Exemplo n.º 40
0
# Third set of nodes can be any node in Planetlab testbed.
for i in range(70):
    node = create_node(ec, username, pl_user, pl_password, critical=False)
    third_set_nodes.append(node)

# Register conditions

# The nodes that are completely identified by their hostnames have to be provisioned 
# before the rest of the nodes. This assures that no other resource will use the
# identified node even if the constraints matchs. 
# In this example the nodes from the first need to be provisioned before the ones in
# the second and third group. Using the same logic, is convenient that nodes from the
# second group are provisioned before nodes from the third group.

ec.register_condition(second_set_nodes, ResourceAction.DEPLOY, first_set_nodes, ResourceState.PROVISIONED)
ec.register_condition(third_set_nodes, ResourceAction.DEPLOY, second_set_nodes, ResourceState.PROVISIONED)
 
# Deploy the experiment:
ec.deploy()

# Wait until all nodes are provisioned:
ec.wait_deployed(first_set_nodes)
ec.wait_deployed(second_set_nodes)
ec.wait_deployed(third_set_nodes)

# Do the experiment controller shutdown:
ec.shutdown()

# END
Exemplo n.º 41
0
app4 = ec.register_resource("omf::Application")
ec.set(app4, 'appid', 'Kill#1')
ec.set(app4, 'command', "/usr/bin/killall vlc_app")
ec.set(app4, 'env', " ")
ec.set(app4, 'version', "5")

# Connection
ec.register_connection(app3, node1)
ec.register_connection(app1, node1)
ec.register_connection(node1, iface1)
ec.register_connection(iface1, channel)
ec.register_connection(iface2, channel)
ec.register_connection(node2, iface2)
ec.register_connection(app2, node2)
ec.register_connection(app4, node2)

# User Behaviour
ec.register_condition(app2, ResourceAction.START, app1, ResourceState.STARTED , "4s")
ec.register_condition([app1, app2], ResourceAction.STOP, app2, ResourceState.STARTED , "22s")
ec.register_condition([app3, app4], ResourceAction.START, app2, ResourceState.STARTED , "25s")
ec.register_condition([app3, app4], ResourceAction.STOP, app3, ResourceState.STARTED , "1s")

# Deploy
ec.deploy()

ec.wait_finished([app1, app2, app3, app4])

# Stop Experiment
ec.shutdown()
Exemplo n.º 42
0
ec.register_connection(app1, node1)

## Add a OMFApplication to run the client VLC and count the numer of bytes 
## transmitted,  using wc.
app2 = ec.register_resource("omf::Application")
ec.set(app2, "command", 
    "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority /root/vlc/vlc-1.1.13/cvlc rtp://%s:5004 | wc -c "% client_ip)

## Alternativelly, you can try to send the video to standard output and 
## recover it using the stdout trace. However, it seems that sending 
## binary messages back to the client is not well supported by the OMF 6 RC
#ec.set(app2, "command", "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority /root/vlc/vlc-1.1.13/cvlc rtp://%s:5004 --sout '#standard{access=file,mux=ts,dst=-}'" % client_ip)
ec.register_connection(app2, node2)

## stop app1 65s after it started
ec.register_condition(app1, ResourceAction.STOP, app1, ResourceState.STARTED , "65s")
## start app2 5s after app1
ec.register_condition(app2, ResourceAction.START, app1, ResourceState.STARTED , "5s")
## stop app2 5 seconds after app2
ec.register_condition(app2, ResourceAction.STOP, app1, ResourceState.STOPPED , "5s")

# Deploy
ec.deploy()

ec.wait_finished([app2])

# Retrieve the bytes transmitted count and print it
byte_count = ec.trace(app2, "stdout")
print "BYTES transmitted", byte_count

## If you redirected the video to standard output, you can try to 
Exemplo n.º 43
0
ec.register_connection(iface1, channel)

# Create and Configure the PING Application
app1 = ec.register_resource("omf::Application")
ec.set(app1, "appid", "Ping#1")
ec.set(app1, "command", "/bin/ping -c3 192.168.0.%s" % nodex[-2:])
ec.set(app1, "version", "5")
ec.register_connection(app1, node1)

app2 = ec.register_resource("omf::Application")
ec.set(app2, "appid", "Kill#1")
ec.set(app2, "command", "/usr/bin/killall ping")
ec.set(app2, "version", "5")
ec.register_connection(app2, node1)

# User Behaviour
ec.register_condition(app1, ResourceAction.STOP, app1, ResourceState.STARTED , "10s")
ec.register_condition(app2, ResourceAction.START, app1, ResourceState.STARTED , "12s")
ec.register_condition(app2, ResourceAction.STOP, app2, ResourceState.STARTED , "1s")

# Deploy
ec.deploy()

ec.wait_finished([app1, app2])

print ec.trace(app1, "stdout")

# Stop Experiment
ec.shutdown()

Exemplo n.º 44
0
apps.append(app_bonfire)
node_app=dict()

#print "Deployed nodes: ",nodes


for host in hosts:
	node = create_node(ec,slice,pleuser,plepass,hostname=hosts[host],country=host)
	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")
Exemplo n.º 45
0
# Third set of nodes can be any node in Planetlab testbed.
for i in range(70):
    node = create_node(ec, username, pl_user, pl_password, critical=False)
    third_set_nodes.append(node)

# Register conditions

# The nodes that are completely identified by their hostnames have to be provisioned
# before the rest of the nodes. This assures that no other resource will use the
# identified node even if the constraints matchs.
# In this example the nodes from the first need to be provisioned before the ones in
# the second and third group. Using the same logic, is convenient that nodes from the
# second group are provisioned before nodes from the third group.

ec.register_condition(second_set_nodes, ResourceAction.DEPLOY, first_set_nodes,
                      ResourceState.PROVISIONED)
ec.register_condition(third_set_nodes, ResourceAction.DEPLOY, second_set_nodes,
                      ResourceState.PROVISIONED)

# Deploy the experiment:
ec.deploy()

# Wait until all nodes are provisioned:
ec.wait_deployed(first_set_nodes)
ec.wait_deployed(second_set_nodes)
ec.wait_deployed(third_set_nodes)

# Do the experiment controller shutdown:
ec.shutdown()

# END
Exemplo n.º 46
0
app1 = ec.register_resource("LinuxApplication")
file = "../big_file.geo"
ec.set(app1, "sources", file)
command = "scp $SRC/big_file.geo %s" % destination
ec.set(app1, "command", command)
ec.register_connection(app1, node1)

app2 = ec.register_resource("LinuxApplication")
ec.set(app, "sudo", sudo)
ec.set(app, "depends", "ifstat")
command = "ifstat -b eth0 > ifstat.txt"
command = "iperf ..."
ec.set(app2, "command", command)
ec.register_connection(app2, node1)

ec.register_condition(app2, ResourceAction.START, app1, ResourceState.STARTED)

# Deploy
ec.deploy()

ec.wait_finished([app1, app2])

trace_file = "examples/planetlab/ifstat.txt"
trace = ec.trace(app2, "ifstat.txt")
f = open(trace_file, "w")
f.write(trace)
f.close()

ec.shutdown()

# End
Exemplo n.º 47
0
    trace_name = "%s.ping" % hostname
    app = add_app(ec, command, node, newname = trace_name)
    apps.append(app)

# Register conditions

# The nodes that are completely identified by their hostnames have to be provisioned 
# before the rest of the nodes. This assures that no other resource will use the
# identified node even if the constraints matchs. 
# In this example node2, node3, node4 and node5, are deployed after node1 is 
# provisioned. node1 must be the node hostname, meanwhile node2, node3,
# node4 and node5 just need to fulfill certain constraints.
# Applications are always deployed after nodes, so no need to register conditions
# for the apps in this example.

ec.register_condition(node2, ResourceAction.DEPLOY, node1, ResourceState.PROVISIONED)
ec.register_condition(node3, ResourceAction.DEPLOY, node1, ResourceState.PROVISIONED)
ec.register_condition(node4, ResourceAction.DEPLOY, node1, ResourceState.PROVISIONED)
ec.register_condition(node5, ResourceAction.DEPLOY, node1, ResourceState.PROVISIONED)
    
# Deploy the experiment:
ec.deploy()

# Wait until the applications are finish to retrive the traces:
ec.wait_finished(apps)

print "Results stored at", ec.exp_dir

# Do the experiment controller shutdown:
ec.shutdown()
Exemplo n.º 48
0
class OMFVLCWrongCaseWithNonCritical(unittest.TestCase):

    id = 2000

    def setUp(self):
        self.ec = ExperimentController(exp_id = str(OMFVLCWrongCaseWithNonCritical.id))
        OMFVLCWrongCaseWithNonCritical.id += 1

        self.node1 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node1, 'hostname', 'omf.plexus.wlab17')
        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.ec.set(self.node1, 'version', "5")
        
        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.ec.set(self.iface1, 'version', "5")

        self.app1 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app1, 'appid', 'Kill#1')
        self.ec.set(self.app1, 'command', "/usr/bin/test -1")
        self.ec.set(self.app1, 'env', "DISPLAY=localhost:10.0 XAUTHORITY=/root/.Xauthority")
        self.ec.set(self.app1, 'version', "5")

        self.ec.register_connection(self.app1, self.node1)
        self.ec.register_connection(self.node1, self.iface1)

    def test_deploy_with_node_nc(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.node2, 'version', "5")

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.37/24")
        self.ec.set(self.iface2, 'version', "5")
        
        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.ec.set(self.channel, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "5s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.FAILED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

    def test_deploy_with_node_and_iface_nc(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.node2, 'version', "5")

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.37/24")
        self.ec.set(self.iface2, 'version', "5")
        
        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.ec.set(self.channel, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "5s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.FAILED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

    def test_deploy_with_node_iface_channel_nc(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.node2, 'hostname', 'omf.plexus.wlab37')
        self.ec.set(self.node2, 'version', "5")

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.37/24")
        self.ec.set(self.iface2, 'version', "5")
        
        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, 'channel', "6")
        self.ec.set(self.channel, "critical", False)
        self.ec.set(self.channel, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)

        self.ec.register_condition([self.app1], ResourceAction.STOP, self.app1, ResourceState.STARTED , "10s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1])

        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.FAILED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.FAILED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)

    def test_deploy_with_app_nc(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, 'hostname', 'omf.plexus.wlab37')
        self.ec.set(self.node2, 'xmppUser', "nepi")
        self.ec.set(self.node2, 'xmppServer', "xmpp-plexus.onelab.eu")
        self.ec.set(self.node2, 'xmppPort', "5222")
        self.ec.set(self.node2, 'xmppPassword', "1234")
        self.ec.set(self.node2, 'version', "5")

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, 'name', "wlan0")
        self.ec.set(self.iface2, 'mode', "adhoc")
        self.ec.set(self.iface2, 'hw_mode', "g")
        self.ec.set(self.iface2, 'essid', "vlcexp")
        self.ec.set(self.iface2, 'ip', "10.0.0.37/24")
        self.ec.set(self.iface2, 'version', "5")
        
        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.ec.set(self.channel, 'version', "5")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, "critical", False)
        self.ec.set(self.app2, 'appid', 'Kill#22')
        self.ec.set(self.app2, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "6s")
        self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP, self.app1, ResourceState.STARTED , "10s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2])

        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.STOPPED)
        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)

    def test_deploy_with_all_nc_and_app_critical(self):
        self.node2 = self.ec.register_resource("omf::Node")
        self.ec.set(self.node2, "critical", False)
        self.ec.set(self.node2, 'hostname', 'omf.plexus.wlab37')
        self.ec.set(self.node2, 'version', "5")

        self.iface2 = self.ec.register_resource("omf::WifiInterface")
        self.ec.set(self.iface2, "critical", False)
        self.ec.set(self.iface2, 'version', "5")
        
        self.channel = self.ec.register_resource("omf::Channel")
        self.ec.set(self.channel, "critical", False)
        self.ec.set(self.channel, 'channel', "6")
        self.ec.set(self.channel, 'version', "5")

        self.app2 = self.ec.register_resource("omf::Application")
        self.ec.set(self.app2, 'appid', 'Kill#22')
        self.ec.set(self.app2, 'version', "5")

        self.ec.register_connection(self.iface1, self.channel)
        self.ec.register_connection(self.node2, self.iface2)
        self.ec.register_connection(self.iface2, self.channel)
        self.ec.register_connection(self.app2, self.node2)

        self.ec.register_condition(self.app2, ResourceAction.START, self.app1, ResourceState.STARTED , "6s")
        self.ec.register_condition([self.app1, self.app2], ResourceAction.STOP, self.app1, ResourceState.STARTED , "10s")

        self.ec.deploy()

        self.ec.wait_finished([self.app1, self.app2])

        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.FAILED)

        self.ec.shutdown()

        self.assertEquals(self.ec.get_resource(self.node1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.node2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.iface2).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.channel).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app1).state, ResourceState.RELEASED)
        self.assertEquals(self.ec.get_resource(self.app2).state, ResourceState.RELEASED)
Exemplo n.º 49
0
                                  env, xmpp_slice, xmpp_host)
            iperfclient[all_hosts[i]].append(perfclient1)

        if i < (len(all_hosts) - 1):
            cmd = "iperf -c " + all_ip[i + 1] + " > /opt/iperclient2.txt"
            perfclient2 = add_app(ec, nodes[all_hosts[i]], "#perfclient2", cmd,
                                  env, xmpp_slice, xmpp_host)
            iperfclient[all_hosts[i]].append(perfclient2)

        iperfserv[all_hosts[i]] = perfserv

    for i in xrange(len(all_hosts)):
        #ec.register_condition(iperfserv[all_hosts[i]], ResourceAction.START, link, ResourceState.STARTED, "2s")
        for elt in iperfclient[all_hosts[i]]:
            ec.register_condition(elt, ResourceAction.START,
                                  iperfserv[all_hosts[i]],
                                  ResourceState.STARTED, "3s")

## Streaming Server
#    pub = add_publish(ec, nodes[host5], movie, xmpp_slice, xmpp_host)

## Streaming client
#    stream = add_stream(ec, nodes[host6], xmpp_slice, xmpp_host)

## Streaming conditions
#    ec.register_condition(pub, ResourceAction.START, link, ResourceState.STARTED, "2s")
#    ec.register_condition(stream, ResourceAction.START, link, ResourceState.STARTED, "2s")
#    ec.register_condition(stream, ResourceAction.START, pub, ResourceState.STARTED, "2s")

### Cleanning ###
# Cleaning when the experiment stop