From: stevenvanrossem Date: Wed, 10 Aug 2016 15:32:00 +0000 (+0200) Subject: Delete monitoring_demo_topology.py X-Git-Tag: v3.1~73^2 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=b0fe22d269aa66debb53670b2efc2a28619260ae;p=osm%2Fvim-emu.git Delete monitoring_demo_topology.py --- diff --git a/src/emuvim/examples/monitoring_demo_topology.py b/src/emuvim/examples/monitoring_demo_topology.py deleted file mode 100755 index 1e22b61..0000000 --- a/src/emuvim/examples/monitoring_demo_topology.py +++ /dev/null @@ -1,139 +0,0 @@ -""" -Copyright (c) 2015 SONATA-NFV -ALL RIGHTS RESERVED. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -Neither the name of the SONATA-NFV [, ANY ADDITIONAL AFFILIATION] -nor the names of its contributors may be used to endorse or promote -products derived from this software without specific prior written -permission. - -This work has been performed in the framework of the SONATA project, -funded by the European Commission under Grant number 671517 through -the Horizon 2020 and 5G-PPP programmes. The authors would like to -acknowledge the contributions of their colleagues of the SONATA -partner consortium (www.sonata-nfv.eu). -""" -import logging -from mininet.log import setLogLevel -from emuvim.dcemulator.net import DCNetwork -from emuvim.api.zerorpc.compute import ZeroRpcApiEndpoint -from emuvim.api.zerorpc.network import ZeroRpcApiEndpointDCNetwork - -logging.basicConfig(level=logging.INFO) - - -def create_topology1(): - """ - 1. Create a data center network object (DCNetwork) with monitoring enabled - """ - net = DCNetwork(monitor=True, enable_learning=False) - - """ - 1b. Add endpoint APIs for the whole DCNetwork, - to access and control the networking from outside. - e.g., to setup forwarding paths between compute - instances aka. VNFs (represented by Docker containers), passing through - different switches and datacenters of the emulated topology - """ - mon_api = ZeroRpcApiEndpointDCNetwork("0.0.0.0", 5151) - mon_api.connectDCNetwork(net) - mon_api.start() - - """ - 2. Add (logical) data centers to the topology - (each data center is one "bigswitch" in our simplified - first prototype) - """ - dc1 = net.addDatacenter("datacenter1") - dc2 = net.addDatacenter("datacenter2") - #dc3 = net.addDatacenter("long_data_center_name3") - #dc4 = net.addDatacenter( - # "datacenter4", - # metadata={"mydata": "we can also add arbitrary metadata to each DC"}) - - """ - 3. You can add additional SDN switches for data center - interconnections to the network. - """ - s1 = net.addSwitch("s1") - - """ - 4. Add links between your data centers and additional switches - to define you topology. - These links can use Mininet's features to limit bw, add delay or jitter. - """ - #net.addLink(dc1, dc2, delay="10ms") - #net.addLink(dc1, dc2) - net.addLink(dc1, s1) - net.addLink(s1, dc2) - #net.addLink("datacenter1", s1, delay="20ms") - #net.addLink(s1, dc3) - #net.addLink(s1, "datacenter4") - - - """ - 5. We want to access and control our data centers from the outside, - e.g., we want to connect an orchestrator to start/stop compute - resources aka. VNFs (represented by Docker containers in the emulated) - - So we need to instantiate API endpoints (e.g. a zerorpc or REST - interface). Depending on the endpoint implementations, we can connect - one or more data centers to it, which can then be controlled through - this API, e.g., start/stop/list compute instances. - """ - # create a new instance of a endpoint implementation - zapi1 = ZeroRpcApiEndpoint("0.0.0.0", 4242) - # connect data centers to this endpoint - zapi1.connectDatacenter(dc1) - zapi1.connectDatacenter(dc2) - #zapi1.connectDatacenter(dc3) - #zapi1.connectDatacenter(dc4) - # run API endpoint server (in another thread, don't block) - zapi1.start() - - """ - 5.1. For our example, we create a second endpoint to illustrate that - this is supported by our design. This feature allows us to have - one API endpoint for each data center. This makes the emulation - environment more realistic because you can easily create one - OpenStack-like REST API endpoint for *each* data center. - This will look like a real-world multi PoP/data center deployment - from the perspective of an orchestrator. - """ - #zapi2 = ZeroRpcApiEndpoint("0.0.0.0", 4343) - #zapi2.connectDatacenter(dc3) - #zapi2.connectDatacenter(dc4) - #zapi2.start() - - """ - 6. Finally we are done and can start our network (the emulator). - We can also enter the Mininet CLI to interactively interact - with our compute resources (just like in default Mininet). - But we can also implement fully automated experiments that - can be executed again and again. - """ - net.start() - net.CLI() - # when the user types exit in the CLI, we stop the emulator - net.stop() - - -def main(): - setLogLevel('info') # set Mininet loglevel - create_topology1() - - -if __name__ == '__main__': - main()