69e7d0be30a24dd036705a0fde649a3795ac0d8e
[osm/vim-emu.git] / src / emuvim / examples / sonata_y1_demo_topology_1.py
1 """
2 A simple topology with two PoPs for the y1 demo story board.
3
4 (dc1) <<-->> s1 <<-->> (dc2)
5 """
6
7 import logging
8 from mininet.log import setLogLevel
9 from emuvim.dcemulator.net import DCNetwork
10 from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint
11 from emuvim.api.sonata import SonataDummyGatekeeperEndpoint
12 from mininet.node import RemoteController
13
14 logging.basicConfig(level=logging.INFO)
15
16
17 def create_topology1():
18 # create topology
19 net = DCNetwork(controller=RemoteController, monitor=False, enable_learning = False)
20 dc1 = net.addDatacenter("dc1")
21 dc2 = net.addDatacenter("dc2")
22 s1 = net.addSwitch("s1")
23 net.addLink(dc1, s1, delay="10ms")
24 net.addLink(dc2, s1, delay="20ms")
25
26 # add the command line interface endpoint to each DC (REST API)
27 rapi1 = RestApiEndpoint("0.0.0.0", 5001)
28 rapi1.connectDatacenter(dc1)
29 rapi1.connectDatacenter(dc2)
30 # run API endpoint server (in another thread, don't block)
31 rapi1.start()
32
33 # add the SONATA dummy gatekeeper to each DC
34 sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0", 5000)
35 sdkg1.connectDatacenter(dc1)
36 sdkg1.connectDatacenter(dc2)
37 # run the dummy gatekeeper (in another thread, don't block)
38 sdkg1.start()
39
40 # start the emulation platform
41 net.start()
42 net.CLI()
43 net.stop()
44
45
46 def main():
47 setLogLevel('info') # set Mininet loglevel
48 create_topology1()
49
50
51 if __name__ == '__main__':
52 main()