def test_query_multiple_nsds_normal(self): expected_reponse_data = [ copy.deepcopy(self.expected_nsd_info), copy.deepcopy(self.expected_nsd_info) ] expected_reponse_data[0]['id'] = '0' expected_reponse_data[0]['nsdId'] = '0' expected_reponse_data[1]['id'] = '1' expected_reponse_data[1]['nsdId'] = '1' user_defined_data = json.JSONEncoder().encode(self.user_defined_data) for i in range(2): NSPackageModel(nsPackageId=str(i), onboardingState='CREATED', operationalState='DISABLED', usageState='NOT_IN_USE', userDefinedData=user_defined_data, nsdId=str(i)).save() response = self.client.get('/api/nsd/v1/ns_descriptors', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(expected_reponse_data, response.data) expected_reponse_data = [copy.deepcopy(self.expected_nsd_info)] expected_reponse_data[0]['id'] = '1' expected_reponse_data[0]['nsdId'] = '1' response = self.client.get('/api/nsd/v1/ns_descriptors?nsdId=1', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(expected_reponse_data, response.data)
def test_nsd_content_upload_normal(self, mock_parse_nsd): user_defined_data_json = json.JSONEncoder().encode( self.user_defined_data) mock_parse_nsd.return_value = json.JSONEncoder().encode(nsd_data) VnfPackageModel(vnfPackageId="111", vnfdId="vcpe_vfw_zte_1_0").save() PnfPackageModel(pnfPackageId="112", pnfdId="m6000_s").save() NSPackageModel( nsPackageId='22', operationalState='DISABLED', usageState='NOT_IN_USE', userDefinedData=user_defined_data_json, ).save() with open('nsd_content.txt', 'wt') as fp: fp.write('test') with open('nsd_content.txt', 'rt') as fp: resp = self.client.put( "/api/nsd/v1/ns_descriptors/22/nsd_content", {'file': fp}, ) file_content = '' with open(os.path.join(GENERICPARSER_ROOT_PATH, '22/nsd_content.txt')) as fp: data = fp.read() file_content = '%s%s' % (file_content, data) ns_pkg = NSPackageModel.objects.filter(nsPackageId="22") self.assertEqual("VCPE_NS", ns_pkg[0].nsdId) self.assertEqual(PKG_STATUS.ONBOARDED, ns_pkg[0].onboardingState) self.assertEqual(resp.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(None, resp.data) self.assertEqual(file_content, 'test') os.remove('nsd_content.txt')
def test_ns_pkg_normal_delete(self): NSPackageModel(nsPackageId="8", nsdId="2").save() resp = self.client.delete("/api/parser/v1/nspackages/8") self.assertEqual(resp.status_code, status.HTTP_200_OK) self.assertEqual("success", resp.data["status"]) self.assertEqual("Delete CSAR(8) successfully.", resp.data["statusDescription"])
def test_ns_pkg_distribute_when_ns_exists(self): NSPackageModel(nsPackageId="1", nsdId="2").save() resp = self.client.post("/api/parser/v1/nspackages", {"csarId": "1"}, format='json') self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) self.assertEqual("failed", resp.data["status"]) self.assertEqual("NS CSAR(1) already exists.", resp.data["statusDescription"])
def test_nsd_parse_normal(self, mock_parse_nsd): NSPackageModel(nsPackageId="18", nsdId="12").save() mock_parse_nsd.return_value = json.JSONEncoder().encode({"a": "b"}) req_data = {"csarId": "18", "inputs": []} resp = self.client.post("/api/parser/v1/parsernsd", req_data, format='json') self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) self.assertEqual({"model": '{"a": "b"}'}, resp.data)
def test_ns_pkg_get_all(self): NSPackageModel(nsPackageId="13", nsdId="2", nsdDesginer="2", nsdVersion="2", nsPackageUri="13.csar", nsdModel="").save() NSPackageModel(nsPackageId="14", nsdId="3", nsdDesginer="3", nsdVersion="3", nsPackageUri="14.csar", nsdModel="").save() resp = self.client.get("/api/parser/v1/nspackages") self.assertEqual(resp.status_code, status.HTTP_200_OK) expect_data = [{ "csarId": "13", "packageInfo": { "csarName": "13.csar", "nsdProvider": "2", "nsdId": "2", "nsPackageId": "13", "downloadUrl": "http://127.0.0.1:8806/static/genericparser/13/13.csar", "nsdModel": "", "nsdVersion": "2", "nsdInvariantId": None } }, { "csarId": "14", "packageInfo": { "csarName": "14.csar", "nsdProvider": "3", "nsdId": "3", "nsPackageId": "14", "downloadUrl": "http://127.0.0.1:8806/static/genericparser/14/14.csar", "nsdModel": "", "nsdVersion": "3", "nsdInvariantId": None } }] self.assertEqual(expect_data, resp.data)
def test_delete_single_nsd_normal(self): user_defined_data = json.JSONEncoder().encode(self.user_defined_data) NSPackageModel(nsPackageId='21', operationalState='DISABLED', usageState='NOT_IN_USE', userDefinedData=user_defined_data, nsdModel='test').save() response = self.client.delete("/api/nsd/v1/ns_descriptors/21", format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(None, response.data)
def test_nsd_content_partial_download_normal(self): with open('nsd_content.txt', 'wt') as fp: fp.writelines('test1') fp.writelines('test2') NSPackageModel(nsPackageId='23', onboardingState='ONBOARDED', localFilePath='nsd_content.txt').save() response = self.client.get("/api/nsd/v1/ns_descriptors/23/nsd_content", HTTP_RANGE='5-10', format='json') partial_file_content = '' for data in response.streaming_content: partial_file_content = '%s%s' % (partial_file_content, data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual("b'test2'", partial_file_content) os.remove('nsd_content.txt')
def test_query_single_nsd_normal(self): expected_reponse_data = copy.deepcopy(self.expected_nsd_info) expected_reponse_data['id'] = '22' user_defined_data = json.JSONEncoder().encode(self.user_defined_data) NSPackageModel(nsPackageId='22', onboardingState='CREATED', operationalState='DISABLED', usageState='NOT_IN_USE', userDefinedData=user_defined_data, nsdModel=json.JSONEncoder().encode( self.nsdModel)).save() response = self.client.get('/api/nsd/v1/ns_descriptors/22', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(expected_reponse_data, response.data)
def test_ns_pkg_distribute_when_nsd_already_exists(self, mock_parse_nsd, mock_download_artifacts, mock_call_req): mock_parse_nsd.return_value = json.JSONEncoder().encode(self.nsd_data) mock_download_artifacts.return_value = "/home/vcpe.csar" mock_call_req.return_value = [ 0, json.JSONEncoder().encode([{ "uuid": "1", "toscaModelURL": "https://127.0.0.1:1234/sdc/v1/vcpe.csar", "distributionStatus": "DISTRIBUTED" }]), '200' ] NSPackageModel(nsPackageId="2", nsdId="VCPE_NS").save() resp = self.client.post("/api/parser/v1/nspackages", {"csarId": "1"}, format='json') self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) self.assertEqual("failed", resp.data["status"]) self.assertEqual("NSD(VCPE_NS) already exists.", resp.data["statusDescription"])