Fix del pnf package logic 32/70632/2 1.2.0
authorfujinhua <fu.jinhua@zte.com.cn>
Wed, 17 Oct 2018 05:12:11 +0000 (13:12 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Wed, 17 Oct 2018 05:12:55 +0000 (13:12 +0800)
Change-Id: Ifb916753203c23d61d5bcfb9f01a2838f34fb471
Issue-ID: VFC-1151
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
catalog/packages/biz/pnf_descriptor.py

index 78b55b0..528fd17 100644 (file)
@@ -91,6 +91,7 @@ class PnfDescriptor(object):
             logger.info('PNFD(%s) shall be NOT_IN_USE.' % pnfd_info_id)
             raise CatalogException('PNFD(%s) shall be NOT_IN_USE.' % pnfd_info_id)
         '''
+        del_pnfd_id = pnf_pkgs[0].pnfdId
         ns_pkgs = NSPackageModel.objects.all()
         for ns_pkg in ns_pkgs:
             nsd_model = None
@@ -98,16 +99,10 @@ class PnfDescriptor(object):
                 nsd_model = json.JSONDecoder().decode(ns_pkg.nsdModel)
             if not nsd_model:
                 continue
-            pnf_info_ids = []
             for pnf in nsd_model['pnfs']:
-                pnfd_id = pnf["properties"]["id"]
-                pkgs = PnfPackageModel.objects.filter(pnfdId=pnfd_id)
-                for pkg in pkgs:
-                    pnf_info_ids.append(pkg.pnfPackageId)
-            if pnfd_info_id in pnf_info_ids:
-                logger.info('PNFD(%s) is referenced.' % pnfd_info_id)
-                raise CatalogException('PNFD(%s) is referenced.' % pnfd_info_id)
-
+                if del_pnfd_id == pnf["properties"]["id"]:
+                    logger.warn("PNFD(%s) is referenced in NSD", del_pnfd_id)
+                    raise CatalogException('PNFD(%s) is referenced.' % pnfd_info_id)
         pnf_pkgs.delete()
         pnf_pkg_path = os.path.join(CATALOG_ROOT_PATH, pnfd_info_id)
         fileutil.delete_dirs(pnf_pkg_path)