X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fexamples%2Fresource_model_demo_topology.py;h=7a39b00458ecf76c71d63e50314667c9aa18156f;hb=d2bbf4505674a8e0ea4f36f9576d53eba2b7af51;hp=ae6ba5e535ba58197f702a4edbceadc04e38ecd4;hpb=279565d5f8749ac9ac5927a718b7e8e6e63b8450;p=osm%2Fvim-emu.git diff --git a/src/emuvim/examples/resource_model_demo_topology.py b/src/emuvim/examples/resource_model_demo_topology.py index ae6ba5e..7a39b00 100644 --- a/src/emuvim/examples/resource_model_demo_topology.py +++ b/src/emuvim/examples/resource_model_demo_topology.py @@ -4,6 +4,7 @@ A simple topology to test resource model support. import logging import time +import os from mininet.log import setLogLevel from mininet.node import Controller from emuvim.dcemulator.net import DCNetwork @@ -14,20 +15,24 @@ from emuvim.dcemulator.resourcemodel.upb.simple import UpbSimpleCloudDcRM logging.basicConfig(level=logging.INFO) +RESOURCE_LOG_PATH = "resource.log" + + 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 - 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 - rm1 = UpbSimpleCloudDcRM(max_cu=10, max_mu=1024) - rm2 = UpbSimpleCloudDcRM(max_cu=20) + rm1 = UpbSimpleCloudDcRM(max_cu=4, max_mu=1024) + rm2 = UpbSimpleCloudDcRM(max_cu=6) dc1.assignResourceModel(rm1) dc2.assignResourceModel(rm2) @@ -54,11 +59,22 @@ def create_topology1(): dc1.startCompute("vnf3", flavor_name="small") dc2.startCompute("vnf4", flavor_name="medium") print "... done." - time.sleep(2) + time.sleep(5) + print "Removing instances ..." + dc1.stopCompute("vnf1") + dc2.stopCompute("vnf4") + print "... done" net.CLI() net.stop() +def cleanup(): + try: + os.remove(RESOURCE_LOG_PATH) + except OSError: + pass + + def main(): setLogLevel('info') # set Mininet loglevel create_topology1()