projects
/
osm
/
vim-emu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add rest api for network and monitoring
[osm/vim-emu.git]
/
src
/
emuvim
/
examples
/
resource_model_demo_topology.py
diff --git
a/src/emuvim/examples/resource_model_demo_topology.py
b/src/emuvim/examples/resource_model_demo_topology.py
old mode 100644
(file)
new mode 100755
(executable)
index
ae6ba5e
..
2dd58ea
--- a/
src/emuvim/examples/resource_model_demo_topology.py
+++ b/
src/emuvim/examples/resource_model_demo_topology.py
@@
-4,30
+4,35
@@
A simple topology to test resource model support.
import logging
import time
import logging
import time
+import os
from mininet.log import setLogLevel
from mininet.node import Controller
from emuvim.dcemulator.net import DCNetwork
from emuvim.api.zerorpc.compute import ZeroRpcApiEndpoint
from emuvim.api.sonata import SonataDummyGatekeeperEndpoint
from mininet.log import setLogLevel
from mininet.node import Controller
from emuvim.dcemulator.net import DCNetwork
from emuvim.api.zerorpc.compute import ZeroRpcApiEndpoint
from emuvim.api.sonata import SonataDummyGatekeeperEndpoint
-from emuvim.dcemulator.resourcemodel.upb.simple import UpbSimpleCloudDcRM
+from emuvim.dcemulator.resourcemodel.upb.simple import UpbSimpleCloudDcRM
, UpbOverprovisioningCloudDcRM
logging.basicConfig(level=logging.INFO)
logging.basicConfig(level=logging.INFO)
+RESOURCE_LOG_PATH = "resource.log"
+
+
def create_topology1():
def create_topology1():
+ cleanup()
# create topology
# use a maximum of 50% cpu time for containers added to data centers
net = DCNetwork(dc_emulation_max_cpu=0.5, controller=Controller)
# add some data centers and create a topology
# create topology
# use a maximum of 50% cpu time for containers added to data centers
net = DCNetwork(dc_emulation_max_cpu=0.5, controller=Controller)
# add some data centers and create a topology
- dc1 = net.addDatacenter("dc1")
- dc2 = net.addDatacenter("dc2")
+ dc1 = net.addDatacenter("dc1"
, resource_log_path=RESOURCE_LOG_PATH
)
+ dc2 = net.addDatacenter("dc2"
, resource_log_path=RESOURCE_LOG_PATH
)
s1 = net.addSwitch("s1")
net.addLink(dc1, s1, delay="10ms")
net.addLink(dc2, s1, delay="20ms")
# create and assign resource models for each DC
s1 = net.addSwitch("s1")
net.addLink(dc1, s1, delay="10ms")
net.addLink(dc2, s1, delay="20ms")
# create and assign resource models for each DC
- rm1 = UpbSimpleCloudDcRM(max_cu=
10
, max_mu=1024)
- rm2 = Upb
SimpleCloudDcRM(max_cu=20
)
+ rm1 = UpbSimpleCloudDcRM(max_cu=
4
, max_mu=1024)
+ rm2 = Upb
OverprovisioningCloudDcRM(max_cu=4
)
dc1.assignResourceModel(rm1)
dc2.assignResourceModel(rm2)
dc1.assignResourceModel(rm1)
dc2.assignResourceModel(rm2)
@@
-38,13
+43,6
@@
def create_topology1():
# run API endpoint server (in another thread, don't block)
zapi1.start()
# run API endpoint server (in another thread, don't block)
zapi1.start()
- # add the SONATA dummy gatekeeper to each DC
- sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0", 8000)
- sdkg1.connectDatacenter(dc1)
- sdkg1.connectDatacenter(dc2)
- # run the dummy gatekeeper (in another thread, don't block)
- sdkg1.start()
-
# start the emulation platform
net.start()
print "Wait a moment and allocate some compute start some compute resources..."
# start the emulation platform
net.start()
print "Wait a moment and allocate some compute start some compute resources..."
@@
-53,12
+51,25
@@
def create_topology1():
dc1.startCompute("vnf2", flavor_name="tiny")
dc1.startCompute("vnf3", flavor_name="small")
dc2.startCompute("vnf4", flavor_name="medium")
dc1.startCompute("vnf2", flavor_name="tiny")
dc1.startCompute("vnf3", flavor_name="small")
dc2.startCompute("vnf4", flavor_name="medium")
+ dc2.startCompute("vnf5", flavor_name="medium")
+ dc2.startCompute("vnf6", flavor_name="medium")
print "... done."
print "... done."
- time.sleep(2)
+ time.sleep(5)
+ print "Removing instances ..."
+ dc1.stopCompute("vnf1")
+ dc2.stopCompute("vnf4")
+ print "... done"
net.CLI()
net.stop()
net.CLI()
net.stop()
+def cleanup():
+ try:
+ os.remove(RESOURCE_LOG_PATH)
+ except OSError:
+ pass
+
+
def main():
setLogLevel('info') # set Mininet loglevel
create_topology1()
def main():
setLogLevel('info') # set Mininet loglevel
create_topology1()