From 66cf2b12009a9e6a78dd89633e73e4d514e6912f Mon Sep 17 00:00:00 2001 From: fujinhua Date: Wed, 17 Oct 2018 13:12:11 +0800 Subject: Fix del pnf package logic Change-Id: Ifb916753203c23d61d5bcfb9f01a2838f34fb471 Issue-ID: VFC-1151 Signed-off-by: fujinhua --- catalog/packages/biz/pnf_descriptor.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/catalog/packages/biz/pnf_descriptor.py b/catalog/packages/biz/pnf_descriptor.py index 78b55b0c..528fd178 100644 --- a/catalog/packages/biz/pnf_descriptor.py +++ b/catalog/packages/biz/pnf_descriptor.py @@ -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) -- cgit 1.2.3-korg