From: maopengzhang Date: Tue, 23 Apr 2019 03:18:51 +0000 (+0800) Subject: move scale NS test json from code to indepandent file X-Git-Tag: 1.3.0~12^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=fadcad2cc5688d4f9a94a1063d4983fe301f92d6;p=vfc%2Fnfvo%2Flcm.git move scale NS test json from code to indepandent file move scale NS test json from code to indepandent file Change-Id: I632570fcc5047ff8999316ca6b323e24deb998d1 Issue-ID: VFC-1241 Signed-off-by: maopengzhang --- diff --git a/lcm/ns/tests/data/scale.json b/lcm/ns/tests/data/scale.json new file mode 100644 index 00000000..525afd15 --- /dev/null +++ b/lcm/ns/tests/data/scale.json @@ -0,0 +1,76 @@ +{ + "scale_options": [ + { + "nsd_id": "ns_ims", + "ns_scale_aspect": "TIC_CORE_IMS", + "ns_scale_info": [ + { + "step": "1", + "scale_list": [ + { + "vnfd_id": "zte_ims_cscf", + "vnf_scale_aspect": "mpu", + "numberOfSteps": "1" + }, + { + "vnfd_id": "zte_ims_hss", + "vnf_scale_aspect": "fpu", + "numberOfSteps": "3" + } + ] + }, + { + "step": "2", + "scale_list": [ + { + "vnfd_id": "zte_ims_cscf", + "vnf_scale_aspect": "mpu", + "numberOfSteps": "2" + }, + { + "vnfd_id": "zte_ims_hss", + "vnf_scale_aspect": "fpu", + "numberOfSteps": "6" + } + ] + } + ] + }, + { + "nsd_id": "ns_epc", + "ns_scale_aspect": "TIC_EDGE_EPC", + "ns_scale_info": [ + { + "step": "1", + "scale_list": [ + { + "vnfd_id": "zte_epc_spgw", + "vnf_scale_aspect": "gpu", + "numberOfSteps": "1" + }, + { + "vnfd_id": "zte_epc_tas", + "vnf_scale_aspect": "fpu", + "numberOfSteps": "2" + } + ] + }, + { + "step": "2", + "scale_list": [ + { + "vnfd_id": "zte_epc_spgw", + "vnf_scale_aspect": "mpu", + "numberOfSteps": "2" + }, + { + "vnfd_id": "zte_epc_tas", + "vnf_scale_aspect": "fpu", + "numberOfSteps": "4" + } + ] + } + ] + } + ] +} diff --git a/lcm/ns/tests/data/scale_ns.json b/lcm/ns/tests/data/scale_ns.json new file mode 100644 index 00000000..8738a46f --- /dev/null +++ b/lcm/ns/tests/data/scale_ns.json @@ -0,0 +1,12 @@ +{ + "scaleType": "SCALE_NS", + "scaleNsData": [ + { + "scaleNsByStepsData": [{ + "aspectId": "1", + "numberOfSteps": 1, + "scalingDirection": "0" + }] + } + ] +} diff --git a/lcm/ns/data/scalemapping.json b/lcm/ns/tests/data/scalemapping.json similarity index 75% rename from lcm/ns/data/scalemapping.json rename to lcm/ns/tests/data/scalemapping.json index 57ba2e49..2468e9b0 100644 --- a/lcm/ns/data/scalemapping.json +++ b/lcm/ns/tests/data/scalemapping.json @@ -1,19 +1,19 @@ { "scale_options": [ { - "nsd_id":"23", + "nsd_id": "23", "ns_scale_aspect": "TIC_EDGE_IMS", "ns_scale_info": [ { "step": 1, - "vnf_scale_info":[ + "vnf_scale_info": [ { - "vnfd_id":"nf_zte_cscf", + "vnfd_id": "nf_zte_cscf", "vnf_scaleAspectId": "gsu", "numberOfSteps": "1" }, { - "vnfd_id":"nf_zte_hss", + "vnfd_id": "nf_zte_hss", "vnf_scaleAspectId": "gpu", "numberOfSteps": "3" } @@ -21,14 +21,14 @@ }, { "step": 2, - "vnf_scale_info":[ + "vnf_scale_info": [ { - "vnfd_id":"nf_zte_cscf", + "vnfd_id": "nf_zte_cscf", "vnf_scaleAspectId": "mpu", "numberOfSteps": "2" }, { - "vnfd_id":"nf_zte_hss", + "vnfd_id": "nf_zte_hss", "vnf_scaleAspectId": "mpu", "numberOfSteps": "4" } @@ -37,19 +37,19 @@ ] }, { - "nsd_id":"23", + "nsd_id": "23", "ns_scale_aspect": "TIC_EDGE_HW", "ns_scale_info": [ { "step": 4, - "vnf_scale_info":[ + "vnf_scale_info": [ { - "vnfd_id":"nf_hw_cscf", + "vnfd_id": "nf_hw_cscf", "vnf_scaleAspectId": "gsu", "numberOfSteps": "1" }, { - "vnfd_id":"nf_hw_hss", + "vnfd_id": "nf_hw_hss", "vnf_scaleAspectId": "gpu", "numberOfSteps": "1" } @@ -57,14 +57,14 @@ }, { "step": 6, - "vnf_scale_info":[ + "vnf_scale_info": [ { - "vnfd_id":"nf_HW_cscf", + "vnfd_id": "nf_HW_cscf", "vnf_scaleAspectId": "gpu", "numberOfSteps": "1" }, { - "vnfd_id":"nf_HW_hss", + "vnfd_id": "nf_HW_hss", "vnf_scaleAspectId": "gpu", "numberOfSteps": "1" } @@ -78,14 +78,14 @@ "ns_scale_info": [ { "step": "4", - "vnf_scale_info":[ + "vnf_scale_info": [ { - "vnfd_id":"nf_hw_cscf", + "vnfd_id": "nf_hw_cscf", "vnf_scaleAspectId": "gpu", "numberOfSteps": "123" }, { - "vnfd_id":"nf_hw_hss", + "vnfd_id": "nf_hw_hss", "vnf_scaleAspectId": "gpu", "numberOfSteps": "456" } @@ -93,14 +93,14 @@ }, { "step": 6, - "vnf_scale_info":[ + "vnf_scale_info": [ { - "vnfd_id":"nf_HW_cscf", + "vnfd_id": "nf_HW_cscf", "vnf_scaleAspectId": "gpu", "numberOfSteps": "1" }, { - "vnfd_id":"nf_HW_hss", + "vnfd_id": "nf_HW_hss", "vnf_scaleAspectId": "gpu", "numberOfSteps": "1" } @@ -109,4 +109,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/lcm/ns/tests/test_ns_manual_scale.py b/lcm/ns/tests/test_ns_manual_scale.py index e82b54e2..26a89650 100644 --- a/lcm/ns/tests/test_ns_manual_scale.py +++ b/lcm/ns/tests/test_ns_manual_scale.py @@ -12,14 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. +import json import os import uuid import mock -from django.test import Client from rest_framework.test import APIClient from django.test import TestCase -from lcm.ns.biz.scaleaspect import get_json_data from rest_framework import status from lcm.ns.biz.ns_manual_scale import NSManualScaleService @@ -27,115 +26,29 @@ from lcm.ns.enum import NS_INST_STATUS from lcm.pub.database.models import NSInstModel, JobModel, NfInstModel from lcm.pub.exceptions import NSLCMException from lcm.pub.msapi import catalog -from lcm.pub.utils import restcall +from lcm.pub.utils import restcall, fileutil from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE, JOB_MODEL_STATUS -SCALING_JSON = { - "scale_options": [ - { - "nsd_id": "ns_ims", - "ns_scale_aspect": "TIC_CORE_IMS", - "ns_scale_info": [ - { - "step": "1", - "scale_list": [ - { - "vnfd_id": "zte_ims_cscf", - "vnf_scale_aspect": "mpu", - "numberOfSteps": "1" - }, - { - "vnfd_id": "zte_ims_hss", - "vnf_scale_aspect": "fpu", - "numberOfSteps": "3" - } - ] - }, - { - "step": "2", - "scale_list": [ - { - "vnfd_id": "zte_ims_cscf", - "vnf_scale_aspect": "mpu", - "numberOfSteps": "2" - }, - { - "vnfd_id": "zte_ims_hss", - "vnf_scale_aspect": "fpu", - "numberOfSteps": "6" - } - ] - } - ] - }, - { - "nsd_id": "ns_epc", - "ns_scale_aspect": "TIC_EDGE_EPC", - "ns_scale_info": [ - { - "step": "1", - "scale_list": [ - { - "vnfd_id": "zte_epc_spgw", - "vnf_scale_aspect": "gpu", - "numberOfSteps": "1" - }, - { - "vnfd_id": "zte_epc_tas", - "vnf_scale_aspect": "fpu", - "numberOfSteps": "2" - } - ] - }, - { - "step": "2", - "scale_list": [ - { - "vnfd_id": "zte_epc_spgw", - "vnf_scale_aspect": "mpu", - "numberOfSteps": "2" - }, - { - "vnfd_id": "zte_epc_tas", - "vnf_scale_aspect": "fpu", - "numberOfSteps": "4" - } - ] - } - ] - } - ] -} - class TestNsManualScale(TestCase): + def setUp(self): + self.cur_path = os.path.dirname(os.path.abspath(__file__)) + self.scaling_map_json = fileutil.read_json_file(self.cur_path + '/data/scalemapping.json') self.ns_inst_id = str(uuid.uuid4()) - self.job_id = JobUtil.create_job( - "NS", JOB_TYPE.MANUAL_SCALE_VNF, self.ns_inst_id) + self.job_id = JobUtil.create_job("NS", JOB_TYPE.MANUAL_SCALE_VNF, self.ns_inst_id) + self.client = APIClient() self.package_id = "7" - self.client = Client() - self.apiClient = APIClient() NSInstModel( id=self.ns_inst_id, name="abc", nspackage_id=self.package_id, nsd_id="111").save() - self.init_scaling_map_json() - def tearDown(self): NSInstModel.objects.filter().delete() JobModel.objects.filter().delete() - def init_scaling_map_json(self): - curdir_path = os.path.dirname( - os.path.dirname( - os.path.dirname( - os.path.abspath(__file__)))) - filename = curdir_path + "/ns/data/scalemapping.json" - self.scaling_map_json = get_json_data(filename) - def insert_new_ns(self): ns_inst_id = str(uuid.uuid4()) job_id = JobUtil.create_job( @@ -149,19 +62,13 @@ class TestNsManualScale(TestCase): return ns_inst_id, job_id def insert_new_nf(self): - # Create a third vnf instance - self.nf_name = "name_1" - self.vnf_id = "1" self.vnfm_inst_id = "1" - nf_inst_id = "233" - package_id = "nf_zte_hss" - nf_uuid = "ab34-3g5j-de13-ab85-ij93" - + vnfd_model_json = fileutil.read_json_file(self.cur_path + '/data/vnfd_model.json') NfInstModel.objects.create( - nfinstid=nf_inst_id, - nf_name=self.nf_name, - vnf_id=self.vnf_id, - vnfm_inst_id=self.vnfm_inst_id, + nfinstid="233", + nf_name="name_1", + vnf_id="1", + vnfm_inst_id="1", ns_inst_id=self.ns_inst_id, max_cpu='14', max_ram='12296', @@ -169,152 +76,70 @@ class TestNsManualScale(TestCase): max_shd="20", max_net=10, status='active', - mnfinstid=nf_uuid, - package_id=package_id, - vnfd_model='{"metadata": {"vnfdId": "1","vnfdName": "PGW001",' - '"vnfProvider": "zte","vnfdVersion": "V00001","vnfVersion": "V5.10.20",' - '"productType": "CN","vnfType": "PGW",' - '"description": "PGW VNFD description",' - '"isShared":true,"vnfExtendType":"driver"}}') + mnfinstid="ab34-3g5j-de13-ab85-ij93", + package_id="nf_zte_hss", + vnfd_model=json.dumps(vnfd_model_json)) @mock.patch.object(NSManualScaleService, 'run') def test_ns_manual_scale(self, mock_run): - data = { - "scaleType": "SCALE_NS", - "scaleNsData": [ - { - "scaleNsByStepsData": [{ - "aspectId": "1", - "numberOfSteps": 1, - "scalingDirection": "0" - }] - } - ] - } - response = self.apiClient.post( - "/api/nslcm/v1/ns/%s/scale" % - self.ns_inst_id, data=data, format='json') + scale_ns_json = fileutil.read_json_file(self.cur_path + '/data/scale_ns.json') + response = self.client.post("/api/nslcm/v1/ns/%s/scale" % self.ns_inst_id, data=scale_ns_json, format='json') self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code) def test_ns_manual_scale_error_scaletype(self): - data = { - "scaleType": "SCALE_ERR", - "scaleNsData": [{ - "scaleNsByStepsData": [{ - "aspectId": "sss_zte", - "numberOfSteps": 1, - "scalingDirection": "0" - }] - }] - } - NSManualScaleService(self.ns_inst_id, data, self.job_id).run() + scale_ns_json = fileutil.read_json_file(self.cur_path + '/data/scale_ns.json') + scale_ns_json["scaleType"] = "SCALE_ERR" + NSManualScaleService(self.ns_inst_id, scale_ns_json, self.job_id).run() jobs = JobModel.objects.filter(jobid=self.job_id) self.assertEqual(255, jobs[0].progress) def test_ns_manual_scale_error_nsd_id(self): - data = { - "scaleType": "SCALE_NS", - "scaleNsData": [{ - "scaleNsByStepsData": [{ - "aspectId": "sss_zte", - "numberOfSteps": 1, - "scalingDirection": "0" - }] - }] - } - NSManualScaleService(self.ns_inst_id, data, self.job_id).run() + scale_ns_json = fileutil.read_json_file(self.cur_path + '/data/scale_ns.json') + scale_ns_json["scaleNsData"][0]["scaleNsByStepsData"][0]["aspectId"] = "sss_zte" + NSManualScaleService(self.ns_inst_id, scale_ns_json, self.job_id).run() jobs = JobModel.objects.filter(jobid=self.job_id) self.assertEqual(255, jobs[0].progress) def test_ns_manual_scale_error_aspect(self): - data = { - "scaleType": "SCALE_NS", - "scaleNsData": [{ - "scaleNsByStepsData": [{ - "aspectId": "sss_zte", - "numberOfSteps": 1, - "scalingDirection": "0" - }] - }] - } + scale_ns_json = fileutil.read_json_file(self.cur_path + '/data/scale_ns.json') + scale_ns_json["scaleNsData"][0]["scaleNsByStepsData"][0]["aspectId"] = "sss_zte" ns_inst_id, job_id = self.insert_new_ns() - job_id = JobUtil.create_job( - "NS", JOB_TYPE.MANUAL_SCALE_VNF, ns_inst_id) - NSManualScaleService(ns_inst_id, data, job_id).run() + job_id = JobUtil.create_job("NS", JOB_TYPE.MANUAL_SCALE_VNF, ns_inst_id) + NSManualScaleService(ns_inst_id, scale_ns_json, job_id).run() jobs = JobModel.objects.filter(jobid=job_id) self.assertEqual(255, jobs[0].progress) @mock.patch.object(catalog, 'get_scalingmap_json_package') @mock.patch.object(NSManualScaleService, 'do_vnfs_scale') def test_ns_manual_scale_success(self, mock_do_vnfs_scale, mock_get_scalingmap_json_package): - data = { - "scaleType": "SCALE_NS", - "scaleNsData": [{ - "scaleNsByStepsData": [{ - "aspectId": "TIC_EDGE_IMS", - "numberOfSteps": "1", - "scalingDirection": "0" - }] - }] - } + scale_ns_json = fileutil.read_json_file(self.cur_path + '/data/scale_ns.json') + scale_ns_json["scaleNsData"][0]["scaleNsByStepsData"][0]["aspectId"] = "TIC_EDGE_IMS" mock_get_scalingmap_json_package.return_value = self.scaling_map_json mock_do_vnfs_scale.return_value = JOB_MODEL_STATUS.FINISHED ns_inst_id, job_id = self.insert_new_ns() - job_id = JobUtil.create_job( - "NS", JOB_TYPE.MANUAL_SCALE_VNF, ns_inst_id) + job_id = JobUtil.create_job("NS", JOB_TYPE.MANUAL_SCALE_VNF, ns_inst_id) self.insert_new_nf() - NSManualScaleService(ns_inst_id, data, job_id).run() + NSManualScaleService(ns_inst_id, scale_ns_json, job_id).run() jobs = JobModel.objects.filter(jobid=job_id) self.assertEqual(255, jobs[0].progress) @mock.patch.object(restcall, 'call_req') def test_ns_manual_scale_thread(self, mock_call): - data = { - "scaleType": "SCALE_NS", - "scaleNsData": [{ - "scaleNsByStepsData": [{ - "aspectId": "1", - "numberOfSteps": 1, - "scalingDirection": "0" - }] - }] - } - NSManualScaleService(self.ns_inst_id, data, self.job_id).run() - self.assertTrue( - NSInstModel.objects.get( - id=self.ns_inst_id).status, - NS_INST_STATUS.ACTIVE) - - # def test_swagger_ok(self): - # resp = self.client.get("/api/nslcm/v1/swagger.json", format='json') - # self.assertEqual(resp.status_code, status.HTTP_200_OK) + scale_ns_json = fileutil.read_json_file(self.cur_path + '/data/scale_ns.json') + NSManualScaleService(self.ns_inst_id, scale_ns_json, self.job_id).run() + self.assertTrue(NSInstModel.objects.get(id=self.ns_inst_id).status, NS_INST_STATUS.ACTIVE) @mock.patch.object(NSManualScaleService, 'start') def test_ns_manual_scale_empty_data(self, mock_start): mock_start.side_effect = NSLCMException("NS scale failed.") - response = self.client.post( - "/api/nslcm/v1/ns/%s/scale" % - self.ns_inst_id, data={}) - self.assertEqual( - response.status_code, - status.HTTP_500_INTERNAL_SERVER_ERROR) + response = self.client.post("/api/nslcm/v1/ns/%s/scale" % self.ns_inst_id, data={}, format='json') + self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) self.assertIn("error", response.data) @mock.patch.object(NSManualScaleService, 'start') def test_ns_manual_scale_when_ns_not_exist(self, mock_start): mock_start.side_effect = NSLCMException("NS scale failed.") - data = { - "scaleType": "SCALE_NS", - "scaleNsData": [{ - "scaleNsByStepsData": [{ - "aspectId": "1", - "numberOfSteps": 1, - "scalingDirection": "0" - }] - }] - } - response = self.client.post("/api/nslcm/v1/ns/11/scale", data=data) - self.assertEqual( - response.status_code, - status.HTTP_500_INTERNAL_SERVER_ERROR) + scale_ns_json = fileutil.read_json_file(self.cur_path + '/data/scale_ns.json') + response = self.client.post("/api/nslcm/v1/ns/11/scale", data=scale_ns_json, format='json') + self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) self.assertIn("error", response.data) diff --git a/lcm/ns/tests/test_sol_ns_scale_api.py b/lcm/ns/tests/test_sol_ns_scale_api.py index b8e17482..ce901e8c 100644 --- a/lcm/ns/tests/test_sol_ns_scale_api.py +++ b/lcm/ns/tests/test_sol_ns_scale_api.py @@ -18,13 +18,13 @@ import uuid import mock from django.test import Client from django.test import TestCase -from lcm.ns.biz.scaleaspect import get_json_data from rest_framework import status from lcm.ns.biz.ns_manual_scale import NSManualScaleService from lcm.pub.database.models import NSInstModel, JobModel, NfInstModel from lcm.pub.exceptions import NSLCMException from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE +from lcm.pub.utils import fileutil SCALING_JSON = { "scale_options": [ @@ -107,6 +107,7 @@ SCALING_JSON = { class TestScaleNsApi(TestCase): def setUp(self): self.url = "/api/nslcm/v1/ns_instances/%s/scale" + self.cur_path = os.path.dirname(os.path.abspath(__file__)) self.ns_inst_id = str(uuid.uuid4()) self.job_id = JobUtil.create_job( "NS", JOB_TYPE.MANUAL_SCALE_VNF, self.ns_inst_id) @@ -117,7 +118,6 @@ class TestScaleNsApi(TestCase): name="abc", nspackage_id=self.package_id, nsd_id="111").save() - self.init_scaling_map_json() def tearDown(self): @@ -125,12 +125,7 @@ class TestScaleNsApi(TestCase): JobModel.objects.filter().delete() def init_scaling_map_json(self): - curdir_path = os.path.dirname( - os.path.dirname( - os.path.dirname( - os.path.abspath(__file__)))) - filename = curdir_path + "/ns/data/scalemapping.json" - self.scaling_map_json = get_json_data(filename) + self.scaling_map_json = fileutil.read_json_file(self.cur_path + '/data/scalemapping.json') def insert_new_ns(self): ns_inst_id = str(uuid.uuid4())