aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhewei-cmss <hewei@cmss.chinamobile.com>2019-10-18 17:53:41 +0800
committerhewei-cmss <hewei@cmss.chinamobile.com>2019-10-18 17:53:41 +0800
commita561e019ac61106fc355ee0a7f6e7051543fbf84 (patch)
tree0018b9e785ecf009b4a8ccc5b93d69831e11502c
parenta5e72cf5d5ccadb648e26317fddebcaeaa4c6bca (diff)
refactor ns descriptor
Issue-ID: VFC-1504 Signed-off-by: hewei-cmss <hewei@cmss.chinamobile.com> Change-Id: I1a1d72532b14d4340ae32c9169a757aef003a97d
-rw-r--r--catalog/packages/biz/pnf_descriptor.py51
1 files changed, 24 insertions, 27 deletions
diff --git a/catalog/packages/biz/pnf_descriptor.py b/catalog/packages/biz/pnf_descriptor.py
index e79cb3da..888939b6 100644
--- a/catalog/packages/biz/pnf_descriptor.py
+++ b/catalog/packages/biz/pnf_descriptor.py
@@ -59,6 +59,9 @@ class PnfDescriptor(object):
pnf_pkgs = PnfPackageModel.objects.filter(pnfdId=pnfdId)
else:
pnf_pkgs = PnfPackageModel.objects.all()
+ if not pnf_pkgs.exists():
+ logger.debug("PNFD infos does not exist.")
+ return []
response_data = []
for pnf_pkg in pnf_pkgs:
data = self.fill_response_data(pnf_pkg)
@@ -141,34 +144,19 @@ class PnfDescriptor(object):
pnfdProvider = ""
pnfdName = ""
if pnfd.get("pnf", "") != "":
- if pnfd["pnf"].get("properties", "") != "":
- pnfd_id = pnfd["pnf"].get("properties", {}).get("descriptor_id", "")
- pnfdVersion = pnfd["pnf"].get("properties", {}).get("version", "")
- pnfdProvider = pnfd["pnf"].get("properties", {}).get("provider", "")
- pnfdName = pnfd["pnf"].get("properties", {}).get("name", "")
+ if pnfd["pnf"].get("properties"):
+ properties = pnfd["pnf"]["properties"]
+ pnfd_id = properties.get("descriptor_id", "")
+ pnfdVersion = properties.get("version", "")
+ pnfdProvider = properties.get("provider", "")
+ pnfdName = properties.get("name", "")
+ pnfd_id = self.extract_metadata(pnfd, ["descriptor_id", "id", "UUID"], pnfd_id)
if pnfd_id == "":
- pnfd_id = pnfd["metadata"].get("descriptor_id", "")
- if pnfd_id == "":
- pnfd_id = pnfd["metadata"].get("id", "")
- if pnfd_id == "":
- pnfd_id = pnfd["metadata"].get("UUID", "")
- if pnfd_id == "":
- raise CatalogException('pnfd_id is Null.')
-
- if pnfdVersion == "":
- pnfdVersion = pnfd["metadata"].get("template_version", "")
- if pnfdVersion == "":
- pnfdVersion = pnfd["metadata"].get("version", "")
-
- if pnfdProvider == "":
- pnfdProvider = pnfd["metadata"].get("template_author", "")
- if pnfdVersion == "":
- pnfdVersion = pnfd["metadata"].get("provider", "")
-
- if pnfdName == "":
- pnfdName = pnfd["metadata"].get("template_name", "")
- if pnfdVersion == "":
- pnfdName = pnfd["metadata"].get("name", "")
+ raise CatalogException('pnfd_id is Null.')
+
+ pnfdVersion = self.extract_metadata(pnfd, ["template_version", "version"], pnfdVersion)
+ pnfdProvider = self.extract_metadata(pnfd, ["template_author", "provider"], pnfdProvider)
+ pnfdName = self.extract_metadata(pnfd, ["template_name", "name"], pnfdName)
other_pnf = PnfPackageModel.objects.filter(pnfdId=pnfd_id)
if other_pnf and other_pnf[0].pnfPackageId != pnfd_info_id:
@@ -188,6 +176,15 @@ class PnfDescriptor(object):
)
logger.info('PNFD(%s) has been processed.' % pnfd_info_id)
+ def extract_metadata(self, contents, key_list, result):
+ if result:
+ return result
+ for k in key_list:
+ result = contents["metadata"].get(k)
+ if result:
+ return result
+ return ""
+
def fill_response_data(self, pnf_pkg):
data = {
'id': pnf_pkg.pnfPackageId,