X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fexamples%2Fresource_model_demo_topology.py;h=7a39b00458ecf76c71d63e50314667c9aa18156f;hb=99afc9dbfa6ec7eb50a0734a24fc33842995ad64;hp=e65a8cebe44e3f95f8e2165f6e704c77f3790c89;hpb=57551f0497178f51b4cb67b3e21a949cdda8505d;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 e65a8ce..7a39b00 100644 --- a/src/emuvim/examples/resource_model_demo_topology.py +++ b/src/emuvim/examples/resource_model_demo_topology.py @@ -4,29 +4,35 @@ 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 from emuvim.api.zerorpc.compute import ZeroRpcApiEndpoint from emuvim.api.sonata import SonataDummyGatekeeperEndpoint -from emuvim.dcemulator.resourcemodel.upb.simple import UpbSimpleCloudDcApproxRM +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) + 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 = UpbSimpleCloudDcApproxRM(max_cu=10, max_mu=1024) - rm2 = UpbSimpleCloudDcApproxRM(max_cu=20) + rm1 = UpbSimpleCloudDcRM(max_cu=4, max_mu=1024) + rm2 = UpbSimpleCloudDcRM(max_cu=6) dc1.assignResourceModel(rm1) dc2.assignResourceModel(rm2) @@ -53,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()