X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=blobdiff_plain;f=src%2Femuvim%2Ftest%2Funittests%2Ftest_restapi.py;h=e63cb2420ec91eb16ad18e01a0876d99f7906a92;hp=ea0b6933626ea15573e4e25f33c0fa8261ad5768;hb=aa8823c85d94a4fa72de058076195296334cdb91;hpb=8de1f30034ca592d21b588bf6202e05f27659b3c diff --git a/src/emuvim/test/unittests/test_restapi.py b/src/emuvim/test/unittests/test_restapi.py index ea0b693..e63cb24 100755 --- a/src/emuvim/test/unittests/test_restapi.py +++ b/src/emuvim/test/unittests/test_restapi.py @@ -1,36 +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). -""" - -""" -Test suite to automatically test emulator REST API endpoints. -""" - -import time +# 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 from emuvim.test.api_base import SimpleTestTopology import subprocess @@ -58,92 +50,108 @@ class testRestApi(SimpleTestTopology): # start Mininet network self.startNet() - print('->>>>>>> son-emu-cli compute start -d datacenter0 -n vnf1 ->>>>>>>>>>>>>>>') + print('->>>>>>> vim-emu compute start -d datacenter0 -n vnf1 ->>>>>>>>>>>>>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli compute start -d datacenter0 -n vnf1", shell=True) - print('->>>>>>> son-emu-cli compute start -d datacenter0 -n vnf2 ->>>>>>>>>>>>>>>') + subprocess.call( + "vim-emu compute start -d datacenter0 -n vnf1", shell=True) + print('->>>>>>> vim-emu compute start -d datacenter0 -n vnf2 ->>>>>>>>>>>>>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli compute start -d datacenter0 -n vnf2", shell=True) - print('->>>>>>> son-emu-cli compute start -d datacenter0 -n vnf3 ->>>>>>>>>>>>>>>') + subprocess.call( + "vim-emu compute start -d datacenter0 -n vnf2", shell=True) + print('->>>>>>> vim-emu compute start -d datacenter0 -n vnf3 ->>>>>>>>>>>>>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli compute start -d datacenter1 -n vnf3", shell=True) - subprocess.call("son-emu-cli compute list", shell=True) + subprocess.call( + "vim-emu compute start -d datacenter1 -n vnf3", shell=True) + subprocess.call("vim-emu compute list", shell=True) print('->>>>>>> checking running nodes, compute list, and connectivity >>>>>>>>>>') # check number of running nodes - self.assertTrue(len(self.getContainernetContainers()) == 3) - self.assertTrue(len(self.net.hosts) == 5) - self.assertTrue(len(self.net.switches) == 2) + self.assertEqual(len(self.getContainernetContainers()), 3) + self.assertEqual(len(self.net.hosts), 5) + self.assertEqual(len(self.net.switches), 2) # check compute list result - self.assertTrue(len(self.dc[0].listCompute()) == 2) - self.assertTrue(len(self.dc[1].listCompute()) == 1) - self.assertTrue(isinstance(self.dc[0].listCompute()[0], EmulatorCompute)) - self.assertTrue(isinstance(self.dc[0].listCompute()[1], EmulatorCompute)) - self.assertTrue(isinstance(self.dc[1].listCompute()[0], EmulatorCompute)) - self.assertTrue(self.dc[0].listCompute()[1].name == "vnf1") - self.assertTrue(self.dc[0].listCompute()[0].name == "vnf2") - self.assertTrue(self.dc[1].listCompute()[0].name == "vnf3") + self.assertEqual(len(self.dc[0].listCompute()), 2) + self.assertEqual(len(self.dc[1].listCompute()), 1) + self.assertTrue(isinstance( + self.dc[0].listCompute()[0], EmulatorCompute)) + self.assertTrue(isinstance( + self.dc[0].listCompute()[1], EmulatorCompute)) + self.assertTrue(isinstance( + self.dc[1].listCompute()[0], EmulatorCompute)) + print("dc1: ", self.dc[0].listCompute()) + print("dc2: ", self.dc[1].listCompute()) + self.assertIn("vnf1", list(map(lambda x: x.name, self.dc[0].listCompute()))) + self.assertIn("vnf2", list(map(lambda x: x.name, self.dc[0].listCompute()))) + self.assertIn("vnf3", list(map(lambda x: x.name, self.dc[1].listCompute()))) # check connectivity by using ping - self.assertTrue(self.net.ping([self.dc[0].listCompute()[1], self.dc[0].listCompute()[0]]) <= 0.0) - self.assertTrue(self.net.ping([self.dc[0].listCompute()[0], self.dc[1].listCompute()[0]]) <= 0.0) - self.assertTrue(self.net.ping([self.dc[1].listCompute()[0], self.dc[0].listCompute()[1]]) <= 0.0) + self.assertTrue(self.net.ping( + [self.dc[0].listCompute()[1], self.dc[0].listCompute()[0]]) <= 0.0) + self.assertTrue(self.net.ping( + [self.dc[0].listCompute()[0], self.dc[1].listCompute()[0]]) <= 0.0) + self.assertTrue(self.net.ping( + [self.dc[1].listCompute()[0], self.dc[0].listCompute()[1]]) <= 0.0) print('network add vnf1 vnf2->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli network add -src vnf1 -dst vnf2 -b -c 10", shell=True) + output = subprocess.check_output( + "vim-emu network add -src vnf1 -dst vnf2 -b -c 10", shell=True) + print("output: ", output) + print("type: ", type(output)) + self.assertIn("add-flow", output.decode()) + self.assertIn("success", output.decode()) + print('network remove vnf1 vnf2->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli network remove -src vnf1 -dst vnf2 -b", shell=True) + output = subprocess.check_output( + "vim-emu network remove -src vnf1 -dst vnf2 -b", shell=True) + self.assertIn("del-flows", output.decode()) + self.assertIn("success", output.decode()) - print('>>>>> checking --> son-emu-cli compute stop -d datacenter0 -n vnf2 ->>>>>>') + print('>>>>> checking --> vim-emu compute stop -d datacenter0 -n vnf2 ->>>>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli compute stop -d datacenter0 -n vnf2", shell=True) + output = subprocess.check_output( + "vim-emu compute stop -d datacenter0 -n vnf2", shell=True) # check number of running nodes - self.assertTrue(len(self.getContainernetContainers()) == 2) - self.assertTrue(len(self.net.hosts) == 4) - self.assertTrue(len(self.net.switches) == 2) + self.assertEqual(len(self.getContainernetContainers()), 2) + self.assertEqual(len(self.net.hosts), 4) + self.assertEqual(len(self.net.switches), 2) # check compute list result - self.assertTrue(len(self.dc[0].listCompute()) == 1) - self.assertTrue(len(self.dc[1].listCompute()) == 1) + self.assertEqual(len(self.dc[0].listCompute()), 1) + self.assertEqual(len(self.dc[1].listCompute()), 1) - print('>>>>> checking --> son-emu-cli compute list ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>') + print('>>>>> checking --> vim-emu compute list ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli compute list", shell=True) - output = subprocess.check_output("son-emu-cli compute list", shell=True) + output = subprocess.check_output("vim-emu compute list", shell=True) # check datacenter list result - self.assertTrue("datacenter0" in output) + self.assertIn("datacenter0", output.decode()) - print('>>>>> checking --> son-emu-cli compute status -d datacenter0 -n vnf1 ->>>>') + print('>>>>> checking --> vim-emu compute status -d datacenter0 -n vnf1 ->>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli compute status -d datacenter0 -n vnf1", shell=True) - output = subprocess.check_output("son-emu-cli compute status -d datacenter0 -n vnf1", shell=True) - output = ast.literal_eval(output) + output = subprocess.check_output( + "vim-emu compute status -d datacenter0 -n vnf1", shell=True) + output = ast.literal_eval(output.decode()) # check compute status result - self.assertTrue(output["name"] == "vnf1") + self.assertEqual(output["name"], "vnf1") self.assertTrue(output["state"]["Running"]) - print('>>>>> checking --> son-emu-cli datacenter list ->>>>>>>>>>>>>>>>>>>>>>>>>>') + print('>>>>> checking --> vim-emu datacenter list ->>>>>>>>>>>>>>>>>>>>>>>>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli datacenter list", shell=True) - output = subprocess.check_output("son-emu-cli datacenter list", shell=True) - + output = subprocess.check_output("vim-emu datacenter list", shell=True) # check datacenter list result + self.assertIn("datacenter0", output.decode()) - self.assertTrue("datacenter0" in output) - - print('->>>>> checking --> son-emu-cli datacenter status -d datacenter0 ->>>>>>>>') + print('->>>>> checking --> vim-emu datacenter status -d datacenter0 ->>>>>>>>') print('->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - subprocess.call("son-emu-cli datacenter status -d datacenter0", shell=True) - output = subprocess.check_output("son-emu-cli datacenter status -d datacenter0", shell=True) - + output = subprocess.check_output( + "vim-emu datacenter status -d datacenter0", shell=True) # check datacenter status result - self.assertTrue("datacenter0" in output) - + self.assertIn("datacenter0", output.decode()) + self.stopApi() self.stopNet()