netns module can build description factories
[nepi.git] / examples / design1.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 from nepi.core.experiment import ExperimentDescription
5
6 testbed_id = "netns"
7 testbed_version = "01"
8 experiment = ExperimentDescription()
9 netns = experiment.add_testbed_description(testbed_id, testbed_version)
10 node1 = netns.create("Node")
11 node2 = netns.create("Node")
12 iface1 = netns.create("NodeInterface")
13 iface1.set_attribute_value("up", True)
14 node1.connector("devs").connect(iface1.connector("node"))
15 ip1 = iface1.add_address()
16 p1.set_attribute_value("Address", "10.0.0.1")
17 iface2 = netns.create("NodeInterface")
18 iface2.set_attribute_value("up", True)
19 node2.connector("devs").connect(iface2.connector("node"))
20 ip2 = iface2.add_address()
21 ip2.set_attribute_value("Address", "10.0.0.2")
22 switch = netns.create("Switch")
23 switch.set_attribute_value("up", True)
24 iface1.connector("switch").connect(switch.connector("devs"))
25 iface2.connector("switch").connect(switch.connector("devs"))
26 app = netns.create("Application")
27 app.set_attribute_value("command", "ping -qc10 10.0.0.2")
28 app.connector("node").connect(node1.connector("apps"))
29
30 #print experiment.xml_description
31
32 description = """
33 <experiment>
34   <testbeds>
35     <testbed testbed_id="netns" testbed_version="1.0" guid="1">
36       <elements>
37         <element factory_id="Node" guid="2">
38           <construct-parameters>
39           </construct-parameters>
40           <attributes>
41           </attributes>
42           <traces>
43           </traces>
44           <addresses>
45           </addresses>
46           <routes>
47           </routes>
48         </element>
49       </elements>
50       <connections>
51       </connections>
52     </testbed>
53   </testbeds>
54 </experiment>
55 """
56