Fix vfc-catalog parse ns/vnf bugs 59/19659/1
authorying.yunlong <ying.yunlong@zte.com.cn>
Thu, 19 Oct 2017 06:58:06 +0000 (14:58 +0800)
committerying.yunlong <ying.yunlong@zte.com.cn>
Thu, 19 Oct 2017 06:58:06 +0000 (14:58 +0800)
Change-Id: I569444d3292bc289f03caaf9940ae2d749ce846e
Issue-ID: VFC-543
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
catalog/pub/utils/toscaparser/nsdmodel.py
catalog/pub/utils/toscaparser/vnfdmodel.py

index 6c12ad6..4616232 100644 (file)
@@ -81,6 +81,21 @@ class EtsiNsdInfoModel(BaseInfoModel):
                 vnf['vnf_id'] = node['name']
                 vnf['description'] = node['description']
                 vnf['properties'] = node['properties']
+                for key in vnf['properties'].iterkeys():
+                    if key.endswith('_version'):
+                        vnf['properties'].update(version=vnf['properties'].pop(key))
+                    if key.endswith('_id'):
+                        vnf['properties'].update(id=vnf['properties'].pop(key))
+                    if key.endswith('_csarProvider'):
+                        vnf['properties'].update(csarProvider=vnf['properties'].pop(key))
+                    if key.endswith('_csarVersion'):
+                        vnf['properties'].update(csarVersion=vnf['properties'].pop(key))
+                    if key.endswith('_vendor'):
+                        vnf['properties'].update(vendor=vnf['properties'].pop(key))
+                    if key.endswith('_csarType'):
+                        vnf['properties'].update(csarType=vnf['properties'].pop(key))
+                    if key.endswith('_vnfm_type') or key.endswith('_vnfmType'):
+                        vnf['properties'].update(vnfmType=vnf['properties'].pop(key))
                 vnf['dependencies'] = map(lambda x: self.get_requirement_node_name(x), self.getNodeDependencys(node))
                 vnf['networks'] = self.get_networks(node)
 
index 80722f7..84be93f 100644 (file)
@@ -30,6 +30,12 @@ class EtsiVnfdInfoModel(EtsiNsdInfoModel):
         nodeTemplates = map(functools.partial(self.buildNode, inputs=tosca.inputs, parsed_params=tosca.parsed_params),
                             tosca.nodetemplates)
 
+        # convert property info to metadata
+        properties = nodeTemplates[0]['properties']
+        self.metadata['vnfdVersion'] = properties.get('csarVersion', 'undefined')
+        self.metadata['vendor'] = properties.get('vendor', 'undefined')
+        self.metadata['version'] = properties.get('version', 'version')
+
         self.services = self._get_all_services(nodeTemplates)
         self.vcloud = self._get_all_vcloud(nodeTemplates)
         self.vcenter = self._get_all_vcenter(nodeTemplates)