From 54afe5dcd9daa6c17096626066d08931610d5122 Mon Sep 17 00:00:00 2001 From: maopengzhang Date: Thu, 28 Mar 2019 10:16:44 +0800 Subject: [PATCH] add vCPE SO intergration test usecase add vCPE SO intergration test usecase Change-Id: I7a80bb93291c0377089e86942366f9b3ffee4958 Issue-ID: VFC-1215 Signed-off-by: maopengzhang --- lcm/ns/tests/test_sol_ns_instances_api.py | 26 +++++++ lcm/ns/tests/test_sol_ns_instantiate_api.py | 117 ++++++++++++++++++++++++++++ lcm/ns/tests/test_sol_ns_terminate_api.py | 2 +- 3 files changed, 144 insertions(+), 1 deletion(-) diff --git a/lcm/ns/tests/test_sol_ns_instances_api.py b/lcm/ns/tests/test_sol_ns_instances_api.py index bf207702..242c2e80 100644 --- a/lcm/ns/tests/test_sol_ns_instances_api.py +++ b/lcm/ns/tests/test_sol_ns_instances_api.py @@ -64,6 +64,32 @@ class TestNsInstanceApi(TestCase): self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code) return response.data['id'] + @mock.patch.object(restcall, 'call_req') + def test_create_ns_cpe(self, mock_call_req): + nspackage_info = { + "csarId": "c9f0a95e-dea0-4698-96e5-5a79bc5a233d", + "packageInfo": { + "nsPackageId": "c9f0a95e-dea0-4698-96e5-5a79bc5a233d", + "nsdId": "c9f0a95e-dea0-4698-96e5-5a79bc5a233d" + } + } + r1_query_nspackage_from_catalog = [0, json.JSONEncoder().encode(nspackage_info), '201'] + r2_create_ns_to_aai = [0, json.JSONEncoder().encode({}), '201'] + mock_call_req.side_effect = [r1_query_nspackage_from_catalog, r2_create_ns_to_aai] + + header = { + 'HTTP_GLOBALCUSTOMERID': 'global-customer-id-test1', + 'HTTP_SERVICETYPE': 'service-type-test1' + } + + data = { + "nsdId": "c9f0a95e-dea0-4698-96e5-5a79bc5a233d", + "nsName": "vcpe_e2e_vnf_test2", + "nsDescription": "null" + } + response = self.apiClient.post(self.ns_instances_url, data=data, format=self.format, **header) + self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code) + @mock.patch.object(restcall, 'call_req') def test_create_ns_when_ns_name_exist(self, mock_call_req): NSInstModel.objects.all().delete() diff --git a/lcm/ns/tests/test_sol_ns_instantiate_api.py b/lcm/ns/tests/test_sol_ns_instantiate_api.py index 37e9eda6..dfb296d1 100644 --- a/lcm/ns/tests/test_sol_ns_instantiate_api.py +++ b/lcm/ns/tests/test_sol_ns_instantiate_api.py @@ -366,3 +366,120 @@ class TestInstantiateNsApi(TestCase): self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code) response = self.client.get(self.url % '1', data=self.req_data, format='json') self.failUnlessEqual(status.HTTP_405_METHOD_NOT_ALLOWED, response.status_code) + + @mock.patch.object(restcall, 'call_req') + @mock.patch('lcm.pub.msapi.sdc_run_catalog.parse_nsd', MagicMock(return_value=nsd_model)) + @mock.patch.object(BuildInWorkflowThread, 'run') + def test_ns_instantiate_vcpe(self, mock_run, mock_call_req): + config.WORKFLOW_OPTION = "buildin" + vcpe_nsd_model = json.dumps({ + "model": json.dumps({ + "vnfs": [{ + "vnf_id": "b1bb0ce7-2222-4fa7-95ed-4840d70a1101", + "properties": { + "id": "vnfd0", + "nf_type": "test" + }, + "dependencies": [{ + "vl_id": "5" + }] + }, + { + "vnf_id": "0408f076-e6c0-4c82-9940-272fddbb82de", + "properties": { + "id": "vnfd1", + "nf_type": "test" + }, + "dependencies": [{ + "vl_id": "5" + }] + }, + { + "vnf_id": "b1bb0ce7-2222-4fa7-95ed-4840d70a1100", + "properties": { + "id": "vnfd2", + "nf_type": "test" + }, + "dependencies": [{ + "vl_id": "5" + }] + }, + { + "vnf_id": "b1bb0ce7-2222-4fa7-95ed-4840d70a1102", + "properties": { + "id": "vnfd3", + "nf_type": "test" + }, + "dependencies": [{ + "vl_id": "5" + }] + }, + { + "vnf_id": "3fca3543-07f5-492f-812c-ed462e4f94f4", + "properties": { + "id": "vnfd4", + "nf_type": "test" + }, + "dependencies": [{ + "vl_id": "5" + }] + }, + ], + "vls": [{ + "vl_id": "5", + "properties": {} + }] + }) + }) + mock_call_req.side_effect = [ + [0, vcpe_nsd_model, '200'], + [0, self.vnfms, '200'], + [0, self.vnfm, '200'] + ] + req_data = { + "nsFlavourId": 'default', + "aditionalParamsForNs": { + "nfvo": "vfc", + "nf_naming": "true", + "multi_stage_design": "false", + "availability_zone_max_count": "1", + "xyz": "123", + "nsd0_providing_service_invariant_uuid": "12204a12-7da2-4ddf-8c2f-992a1a1acebf", + "nsd0_providing_service_uuid": "5791dbeb-19d4-43e8-bf44-5b327ccf6bca" + }, + "additionalParamsForVnf": [ + { + "vnfProfileId": "b1bb0ce7-2222-4fa7-95ed-4840d70a1101", + "additionalParams": { + "vimId": "CloudOwner_regionOne" + } + }, + { + "vnfProfileId": "0408f076-e6c0-4c82-9940-272fddbb82de", + "additionalParams": { + "vimId": "CloudOwner_regionOne" + } + }, + { + "vnfProfileId": "b1bb0ce7-2222-4fa7-95ed-4840d70a1100", + "additionalParams": { + "vimId": "CloudOwner_regionOne" + } + }, + { + "vnfProfileId": "b1bb0ce7-2222-4fa7-95ed-4840d70a1102", + "additionalParams": { + "vimId": "CloudOwner_regionOne" + } + }, + { + "vnfProfileId": "3fca3543-07f5-492f-812c-ed462e4f94f4", + "additionalParams": { + "vimId": "CloudOwner_regionOne" + } + } + ] + } + response = self.client.post(self.url % '2', data=req_data, format='json') + self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code) + self.assertIsNotNone(response['Location']) diff --git a/lcm/ns/tests/test_sol_ns_terminate_api.py b/lcm/ns/tests/test_sol_ns_terminate_api.py index 0027312a..44de00e7 100644 --- a/lcm/ns/tests/test_sol_ns_terminate_api.py +++ b/lcm/ns/tests/test_sol_ns_terminate_api.py @@ -58,7 +58,7 @@ class TestTerminateNsApi(TestCase): @mock.patch.object(TerminateNsService, 'run') def test_terminate_vnf(self, mock_run): mock_run.re.return_value = "1" - req_data = {} + req_data = {"terminationTime": "2019-03-25T09:10:35.610"} response = self.client.post(self.url % self.ns_inst_id, data=req_data) self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code) self.assertIsNotNone(response['Location']) -- 2.16.6