X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=blobdiff_plain;f=src%2Femuvim%2Ftest%2Fapi_base_openstack.py;h=3909e1ae4eef1931e93f91c6c4af214196a21d7a;hp=c951665779832a5b435cda1de293d3fd6a2d3779;hb=72f09885db3935e77901c3dee132cb176b927c7b;hpb=3e16acbebd2c6669c1bbe5a7e3bb313aa1494e20 diff --git a/src/emuvim/test/api_base_openstack.py b/src/emuvim/test/api_base_openstack.py index c951665..3909e1a 100755 --- a/src/emuvim/test/api_base_openstack.py +++ b/src/emuvim/test/api_base_openstack.py @@ -1,35 +1,28 @@ -""" -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). -""" - -""" -Helper module that implements helpers for test implementations. -""" - +# Copyright (c) 2015 SONATA-NFV and Paderborn University +# 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, Paderborn University +# 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 unittest import os import subprocess @@ -40,6 +33,7 @@ from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint from mininet.clean import cleanup from mininet.node import Controller + class ApiBaseOpenStack(unittest.TestCase): """ Helper class to do basic test setups. @@ -70,18 +64,19 @@ class ApiBaseOpenStack(unittest.TestCase): """ self.net = DCNetwork(controller=controller, **kwargs) for i in range(0, ndatacenter): - self.api.append(OpenstackApiEndpoint("0.0.0.0", 15000+i)) + self.api.append(OpenstackApiEndpoint("0.0.0.0", 15000 + i)) # add some switches # start from s1 because ovs does not like to have dpid = 0 # and switch name-number is being used by mininet to set the dpid - for i in range(1, nswitches+1): + for i in range(1, nswitches + 1): self.s.append(self.net.addSwitch('s%d' % i)) # if specified, chain all switches if autolinkswitches: for i in range(0, len(self.s) - 1): self.net.addLink(self.s[i], self.s[i + 1]) - self.net.addLink(self.s[2], self.s[0]) # link switches s1, s2 and s3 + # link switches s1, s2 and s3 + self.net.addLink(self.s[2], self.s[0]) # add some data centers for i in range(0, ndatacenter): @@ -89,7 +84,8 @@ class ApiBaseOpenStack(unittest.TestCase): self.net.addDatacenter( 'dc%d' % i, metadata={"unittest_dc": i})) - self.net.addLink(self.dc[0].switch, self.s[0]) # link switches dc0.s1 with s1 + # link switches dc0.s1 with s1 + self.net.addLink(self.dc[0].switch, self.s[0]) # connect data centers to the endpoint for i in range(0, ndatacenter): self.api[i].connect_datacenter(self.dc[i]) @@ -99,7 +95,8 @@ class ApiBaseOpenStack(unittest.TestCase): self.h.append(self.net.addHost('h%d' % i)) # add some dockers for i in range(0, ndockers): - self.d.append(self.net.addDocker('d%d' % i, dimage="ubuntu:trusty")) + self.d.append(self.net.addDocker('d%d' % + i, dimage="ubuntu:trusty")) def startApi(self): for i in self.api: @@ -129,25 +126,26 @@ class ApiBaseOpenStack(unittest.TestCase): """ List the containers managed by containernet """ - return self.getDockerCli().containers(filters={"label": "com.containernet"}) + return self.getDockerCli().containers( + filters={"label": "com.containernet"}) @staticmethod def setUp(): pass - def tearDown(self): time.sleep(2) print('->>>>>>> tear everything down ->>>>>>>>>>>>>>>') - self.stopApi() # stop all flask threads - self.stopNet() # stop some mininet and containernet stuff + self.stopApi() # stop all flask threads + self.stopNet() # stop some mininet and containernet stuff cleanup() # make sure that all pending docker containers are killed - with open(os.devnull, 'w') as devnull: # kill a possibly running docker process that blocks the open ports + # kill a possibly running docker process that blocks the open ports + with open(os.devnull, 'w') as devnull: subprocess.call("kill $(netstat -npl | grep '15000' | grep -o -e'[0-9]\+/docker' | grep -o -e '[0-9]\+')", - stdout=devnull, - stderr=devnull, - shell=True) + stdout=devnull, + stderr=devnull, + shell=True) with open(os.devnull, 'w') as devnull: subprocess.call( @@ -156,8 +154,3 @@ class ApiBaseOpenStack(unittest.TestCase): stderr=devnull, shell=True) time.sleep(2) - - - - -