diff options
-rw-r--r-- | catalog/packages/biz/pnf_descriptor.py | 8 | ||||
-rw-r--r-- | 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) |