From 92d9e175088e540099129f3e808e4750234ae68d Mon Sep 17 00:00:00 2001 From: fujinhua Date: Tue, 13 Nov 2018 19:19:56 +0800 Subject: [PATCH] Fix pnf upload logic Change-Id: I639abfce5ebf57cb469434877495c2353453ac9b Issue-ID: VFC-1163 Signed-off-by: fujinhua --- catalog/packages/biz/pnf_descriptor.py | 8 +++++--- catalog/packages/tests/test_pnf_descriptor.py | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/catalog/packages/biz/pnf_descriptor.py b/catalog/packages/biz/pnf_descriptor.py index 2a5ccc14..ddadb4c5 100644 --- a/catalog/packages/biz/pnf_descriptor.py +++ b/catalog/packages/biz/pnf_descriptor.py @@ -168,9 +168,11 @@ class PnfDescriptor(object): if pnfdVersion == "": pnfdName = pnfd["metadata"].get("name", "") - if pnfd_id and PnfPackageModel.objects.filter(pnfdId=pnfd_id): - logger.info('PNFD(%s) already exists.' % pnfd_id) - raise CatalogException("PNFD(%s) already exists." % pnfd_id) + if pnfd_id: + other_pnf = PnfPackageModel.objects.filter(pnfdId=pnfd_id) + if other_pnf and other_pnf[0].pnfPackageId != pnfd_info_id: + logger.info('PNFD(%s) already exists.' % pnfd_id) + raise CatalogException("PNFD(%s) already exists." % pnfd_id) pnf_pkgs.update( pnfdId=pnfd_id, diff --git a/catalog/packages/tests/test_pnf_descriptor.py b/catalog/packages/tests/test_pnf_descriptor.py index 277676f7..a722d805 100644 --- a/catalog/packages/tests/test_pnf_descriptor.py +++ b/catalog/packages/tests/test_pnf_descriptor.py @@ -178,6 +178,11 @@ class TestPnfDescriptor(TestCase): PnfPackageModel( pnfPackageId='22', usageState=PKG_STATUS.NOT_IN_USE, + pnfdId="zte-1.1" + ).save() + PnfPackageModel( + pnfPackageId='23', + usageState=PKG_STATUS.NOT_IN_USE, pnfdId="zte-1.0" ).save() mock_parse_pnfd.return_value = json.JSONEncoder().encode(pnfd_data) -- 2.16.6