3c6cb76977971260a1e67953d7d0681d2a85858b
[nepi.git] / examples / design1.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 from nepi.core.description import ExperimentDescription
5 from nepi.testbeds import netns
6
7 exp_desc = ExperimentDescription()
8 testbed_version = "01"
9 netns_provider = netns.TestbedFactoriesProvider(testbed_version)
10 netns_desc = exp_desc.add_testbed_description(netns_provider)
11
12 node1 = netns_desc.create("Node")
13 node2 = netns_desc.create("Node")
14 iface1 = netns_desc.create("NodeInterface")
15 iface1.set_attribute_value("up", True)
16 node1.connector("devs").connect(iface1.connector("node"))
17 ip1 = iface1.add_address()
18 ip1.set_attribute_value("Address", "10.0.0.1")
19 iface2 = netns_desc.create("NodeInterface")
20 iface2.set_attribute_value("up", True)
21 node2.connector("devs").connect(iface2.connector("node"))
22 ip2 = iface2.add_address()
23 ip2.set_attribute_value("Address", "10.0.0.2")
24 switch = netns_desc.create("Switch")
25 switch.set_attribute_value("up", True)
26 iface1.connector("switch").connect(switch.connector("devs"))
27 iface2.connector("switch").connect(switch.connector("devs"))
28 app = netns_desc.create("Application")
29 app.set_attribute_value("command", "ping -qc10 10.0.0.2")
30 app.connector("node").connect(node1.connector("apps"))
31
32 xml = exp_desc.to_xml()
33 exp_desc2 = ExperimentDescription()
34 exp_desc2.from_xml(xml)
35 xml2 = exp_desc2.to_xml()
36 assert xml == xml2
37
38