X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fexamples%2Fresource_model_demo_topology.py;h=2dd58eae3c1a5a7b6012aab9fa7a92e464ceedd9;hb=718fba45788c096641ed9d7c911375df781f20b5;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 old mode 100644 new mode 100755 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 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 UpbSimpleCloudDcRM +from emuvim.dcemulator.resourcemodel.upb.simple import UpbSimpleCloudDcRM, UpbOverprovisioningCloudDcRM 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 = UpbOverprovisioningCloudDcRM(max_cu=4) 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() - # 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..." @@ -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") + dc2.startCompute("vnf5", flavor_name="medium") + dc2.startCompute("vnf6", 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()