Fix pnf upload logic 27/72527/2
authorfujinhua <fu.jinhua@zte.com.cn>
Tue, 13 Nov 2018 11:19:56 +0000 (19:19 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Tue, 13 Nov 2018 11:29:00 +0000 (19:29 +0800)
Change-Id: I639abfce5ebf57cb469434877495c2353453ac9b
Issue-ID: VFC-1163
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
catalog/packages/biz/pnf_descriptor.py
catalog/packages/tests/test_pnf_descriptor.py

index 2a5ccc1..ddadb4c 100644 (file)
@@ -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,
index 277676f..a722d80 100644 (file)
@@ -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)