From: peusterm Date: Fri, 18 Aug 2017 08:10:27 +0000 (+0200) Subject: Cleanup. Test update. X-Git-Tag: v3.1~14^2 X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=commitdiff_plain;h=250741424c1f138ceeddcff90cb9bbbf223a9c52 Cleanup. Test update. --- diff --git a/src/emuvim/examples/simple_topology_restapi.py b/src/emuvim/examples/simple_topology_restapi.py deleted file mode 100755 index eabec44..0000000 --- a/src/emuvim/examples/simple_topology_restapi.py +++ /dev/null @@ -1,129 +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.rest.rest_api_endpoint import RestApiEndpoint - -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) - """ - net = DCNetwork(monitor=True, enable_learning=True) - - """ - 1b. add a monitoring agent to the DCNetwork - """ - #keep old zeroRPC interface to test the prometheus metric query - 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) - net.addLink("datacenter1", s1) - 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. - """ - # keep the old zeroRPC interface for the prometheus metric query test - zapi1 = ZeroRpcApiEndpoint("0.0.0.0", 4242) - # connect data centers to this endpoint - zapi1.connectDatacenter(dc1) - zapi1.connectDatacenter(dc2) - # run API endpoint server (in another thread, don't block) - zapi1.start() - - # create a new instance of a endpoint implementation - api1 = RestApiEndpoint("127.0.0.1", 5001) - # connect data centers to this endpoint - api1.connectDatacenter(dc1) - api1.connectDatacenter(dc2) - api1.connectDatacenter(dc3) - api1.connectDatacenter(dc4) - # connect total network also, needed to do the chaining and monitoring - api1.connectDCNetwork(net) - # run API endpoint server (in another thread, don't block) - api1.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() diff --git a/src/emuvim/test/api_base.py b/src/emuvim/test/api_base.py index 3464f45..0d994ca 100755 --- a/src/emuvim/test/api_base.py +++ b/src/emuvim/test/api_base.py @@ -97,6 +97,9 @@ class SimpleTestTopology(unittest.TestCase): def startApi(self): self.api.start() + def stopApi(self): + self.api.stop() + def startNet(self): self.net.start() @@ -131,4 +134,4 @@ class SimpleTestTopology(unittest.TestCase): "sudo docker rm -f $(sudo docker ps --filter 'label=com.containernet' -a -q)", stdout=devnull, stderr=devnull, - shell=True) \ No newline at end of file + shell=True) diff --git a/src/emuvim/test/unittests/test_restapi.py b/src/emuvim/test/unittests/test_restapi.py index 268b12b..5bc071a 100755 --- a/src/emuvim/test/unittests/test_restapi.py +++ b/src/emuvim/test/unittests/test_restapi.py @@ -141,7 +141,7 @@ class testRestApi(SimpleTestTopology): output = subprocess.check_output("son-emu-cli datacenter status -d datacenter0", shell=True) # check datacenter status result self.assertTrue("datacenter0" in output) - + self.stopApi() self.stopNet()