PNF package update Model 22/70722/1
authormaopengzhang <zhang.maopeng1@zte.com.cn>
Thu, 18 Oct 2018 09:04:43 +0000 (17:04 +0800)
committermaopengzhang <zhang.maopeng1@zte.com.cn>
Thu, 18 Oct 2018 09:04:43 +0000 (17:04 +0800)
update pnfd_id,pnfdVersion,pnfdProvider,pnfdName in model

Change-Id: Icee4144822b4cb77cd32fd317d90384642b66890
Issue-ID: VFC-1156
Signed-off-by: maopengzhang <zhang.maopeng1@zte.com.cn>
catalog/packages/biz/pnf_descriptor.py
catalog/pub/database/models.py

index f1dc55b..e165c40 100644 (file)
@@ -130,16 +130,50 @@ class PnfDescriptor(object):
         pnfd_json = toscaparser.parse_pnfd(local_file_name)
         pnfd = json.JSONDecoder().decode(pnfd_json)
 
-        pnfd_id = pnfd["metadata"].get("id", '')
-        if not pnfd_id:
-            raise CatalogException("PNFDID(metadata.id) of PNF(%s) does not exist." % pnfd_info_id)
+        logger.debug("pnfd_json is %s" % pnfd_json)
+        pnfd_id = ""
+        pnfdVersion = ""
+        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_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", "")
+
         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)
 
         pnf_pkgs.update(
             pnfdId=pnfd_id,
-            pnfdVersion=pnfd["metadata"].get("version", "undefined"),
+            pnfdName=pnfdName,
+            pnfdVersion=pnfdVersion,
+            pnfVendor=pnfdProvider,
             pnfPackageUri=local_file_name,
             onboardingState=PKG_STATUS.ONBOARDED,
             usageState=PKG_STATUS.NOT_IN_USE,
index d150386..04e39c2 100644 (file)
@@ -78,6 +78,7 @@ class PnfPackageModel(models.Model):
     userDefinedData = models.TextField(db_column='USERDEFINEDDATA', max_length=1024, blank=True, null=True)  # userDefinedData
     localFilePath = models.CharField(db_column='LOCALFILEPATH', max_length=300, null=True, blank=True)
     pnfdModel = models.TextField(db_column='PNFDMODEL', max_length=65535, blank=True, null=True)  # pnfd
+    pnfdName = models.TextField(db_column='PNFDNAME', max_length=65535, blank=True, null=True)  # pnfd_name
 
     class Meta:
         db_table = 'CATALOG_PNFPACKAGE'