def test_get_nf_csars_normal(self): NfPackageModel(uuid="01", nfpackageid="1", vnfdid="2").save() resp = self.client.get("/openoapi/nslcm/v1/vnfpackage") self.assertEqual(resp.status_code, status.HTTP_200_OK) self.assertEqual(1, len(resp.data["csars"])) self.assertEqual("1", resp.data["csars"][0]["csarId"]) self.assertEqual("2", resp.data["csars"][0]["vnfdId"])
def test_delete_pending_csar_when_in_using(self, mock_call_req): mock_call_req.return_value = [0, json.JSONEncoder().encode({ "processState": "normal"}), "200"] NfPackageModel(uuid="01", nfpackageid="1").save() NfInstModel(nfinstid="01", package_id="1").save() NfPkgDeletePendingThread(csar_id="1", job_id='2').run() self.assert_job_result("2", 100, "CSAR(1) is in using, cannot be deleted.")
def test_delete_csar_when_successfully(self, mock_call_req, mock_delete_image, mock_init_): mock_vals = { ("/openoapi/catalog/v1/csars/1", "DELETE"): [0, json.JSONEncoder().encode({"successfully": "successfully"}), "200"], ("/openoapi/catalog/v1/csars/1?processState=deleting", "PUT"): [0, json.JSONEncoder().encode({"successfully": "successfully"}), "200"], ("/openoapi/catalog/v1/csars/1?processState=deleteFailed", "PUT"): [0, json.JSONEncoder().encode({"successfully": "successfully"}), "200"], ("/openoapi/catalog/v1/csars/1", "GET"): [0, json.JSONEncoder().encode({"notProcessState": "notProcessState"}), "200"], ("/openoapi/extsys/v1/vims", "GET"): [0, json.JSONEncoder().encode([{ "vimId": "002", "url": "url_test", "userName": "******", "password": "******", "tenant": "test"}]), "200"]} mock_delete_image.return_value = [0, json.JSONEncoder().encode({"test": "test"}), '200'] def side_effect(*args): return mock_vals[(args[4], args[5])] mock_call_req.side_effect = side_effect mock_init_.return_value = None VnfPackageFileModel(vnfpid="1", imageid="001", vimid="002").save() NfPackageModel(uuid="01", nfpackageid="1").save() NfPkgDeletePendingThread(csar_id="1", job_id='2').run() self.assert_job_result("2", 100, "Delete CSAR(1) successfully.")
def nf_package_save(self): JobUtil.add_job_status(self.job_id, 30, "Save CSAR(%s) to database." % self.csar_id) vnfd_ver = self.nfd["metadata"].get("vnfd_version") if not vnfd_ver: vnfd_ver = self.nfd["metadata"].get("vnfdVersion") NfPackageModel( uuid=str(uuid.uuid4()), nfpackageid=self.csar_id, vnfdid=self.nfd_id, vendor=self.nfd["metadata"].get("vendor", "undefined"), vnfdversion=vnfd_ver, vnfversion=self.nfd["metadata"].get("version", "undefined"), vnfdmodel=json.JSONEncoder().encode(self.nfd) ).save()
def test_nf_on_boarding_when_nfd_already_exists(self, mock_call_req): mock_vals = { "/openoapi/catalog/v1/csars/2": [0, json.JSONEncoder().encode({ "onBoardState": "onBoardFailed", "processState": "deleteFailed"}), '200'], "/openoapi/catalog/v1/servicetemplates/queryingrawdata": [0, json.JSONEncoder().encode(self.vnfd_raw_data), '200']} def side_effect(*args): return mock_vals[args[4]] mock_call_req.side_effect = side_effect NfPackageModel(uuid="1", nfpackageid="2", vnfdid="zte_vbras_1.0").save() NfOnBoardingThread(csar_id="2", vim_ids=["1"], lab_vim_id="", job_id="4").run() self.assert_job_result("4", 255, "NFD(zte_vbras_1.0) already exists.")
def test_get_csar_successfully(self, mock_call_req): mock_call_req.return_value = [0, json.JSONEncoder().encode({ "name": "1", "provider": "2", "version": "3", "operationalState": "4", "usageState": "5", "onBoardState": "6", "processState": "7", "deletionPending": "8", "downloadUri": "9", "createTime": "10", "modifyTime": "11", "format": "12", "size": "13" }), '200'] NfPackageModel(uuid="1", vnfdid="001", vendor="vendor", vnfdversion="1.2.0", vnfversion="1.1.0", nfpackageid="13").save() VnfPackageFileModel(id="1", filename="filename", imageid="00001", vimid="1", vimuser="******", tenant="12", status="1", vnfpid="13").save() NfInstModel(nfinstid="1", mnfinstid="001", nf_name="name", package_id="13").save() resp = self.client.get("/openoapi/nslcm/v1/vnfpackage/13") self.assertEqual(resp.status_code, status.HTTP_200_OK) expect_data = { "csarId": '13', "packageInfo": { "vnfdId": "001", "vnfdProvider": "vendor", "vnfdVersion": "1.2.0", "vnfVersion": "1.1.0", "name": "1", "provider": "2", "version": "3", "operationalState": "4", "usageState": "5", "onBoardState": "6", "processState": "7", "deletionPending": "8", "downloadUri": "9", "createTime": "10", "modifyTime": "11", "format": "12", "size": "13"}, "imageInfo": [{ "index": "0", "fileName": "filename", "imageId": "00001", "vimId": "1", "vimUser": "******", "tenant": "12", "status": "1"}], "vnfInstanceInfo": [{ "vnfInstanceId": "1", "vnfInstanceName": "name"}]} self.assertEqual(expect_data, resp.data)
def setUp(self): self.ns_inst_id = str(uuid.uuid4()) self.job_id = str(uuid.uuid4()) self.data = { 'nsInstanceId': self.ns_inst_id, 'additionalParamForNs': { "inputs": json.dumps({}) }, 'additionalParamForVnf': [{ 'vnfprofileid': 'VBras', 'additionalparam': { 'inputs': json.dumps({ 'vnf_param1': '11', 'vnf_param2': '22' }), 'vnfminstanceid': "1" } }], 'vnfIndex': '1' } self.client = Client() NfPackageModel(uuid=str(uuid.uuid4()), nfpackageid='package_id1', vnfdid='zte_vbras', vendor='zte', vnfdversion='1.0.0', vnfversion='1.0.0', vnfdmodel=json.dumps(vnfd_model_dict)).save() NSInstModel(id=self.ns_inst_id, name='ns', nspackage_id='1', nsd_id='nsd_id', description='description', status='instantiating', nsd_model=json.dumps(nsd_model_dict), create_time=now_time(), lastuptime=now_time()).save()
def test_delete_pending_csar_when_not_deletion_pending(self, mock_call_req): NfPackageModel(uuid="01", nfpackageid="1").save() mock_call_req.return_value = [0, json.JSONEncoder().encode({ "deletionPending": "false"}), "200"] NfPkgDeletePendingThread(csar_id="1", job_id='2').run() self.assert_job_result("2", 100, "CSAR(1) need not to be deleted.")
def test_delete_pending_csar_when_deleting(self, mock_call_req): NfPackageModel(uuid="01", nfpackageid="1").save() mock_call_req.return_value = [0, json.JSONEncoder().encode({ "processState": "deleting"}), "200"] NfPkgDeletePendingThread(csar_id="1", job_id='2').run() self.assert_job_result("2", 100, "CSAR(1) is deleting now.")