aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2018-11-13 19:19:56 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2018-11-13 19:29:00 +0800
commit92d9e175088e540099129f3e808e4750234ae68d (patch)
tree7b0ac6b7ea8ea5a7b6520492fda2e0ba64cf5595
parent2585198f61e73f7d59d9f6b27dad7f23730f6479 (diff)
Fix pnf upload logic
Change-Id: I639abfce5ebf57cb469434877495c2353453ac9b Issue-ID: VFC-1163 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r--catalog/packages/biz/pnf_descriptor.py8
-rw-r--r--catalog/packages/tests/test_pnf_descriptor.py5
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)