VDU parser storage for new data model 15/42915/2
authorHuang Haibin <haibin.huang@intel.com>
Mon, 16 Apr 2018 10:58:08 +0000 (18:58 +0800)
committerHuang Haibin <haibin.huang@intel.com>
Mon, 16 Apr 2018 13:04:34 +0000 (21:04 +0800)
Change-Id: I2c3b6ad8b4a8cd627b67288afc64c81cd3c03344
Issue-ID: VFC-657
Signed-off-by: Huang Haibin <haibin.huang@intel.com>
catalog/pub/utils/toscaparser/basemodel.py
catalog/pub/utils/toscaparser/vnfdmodel.py

index fd4d35c..d39a7b7 100644 (file)
@@ -329,6 +329,12 @@ class BaseInfoModel(object):
     def get_requirement_node_name(self, req_value):
         return self.get_prop_from_obj(req_value, 'node')
 
+    def getRequirementByNodeName(self, nodeTemplates, storage_name, prop):
+        for node in nodeTemplates:
+            if node['name'] == storage_name:
+                if prop in node:
+                    return node[prop]
+
     def get_prop_from_obj(self, obj, prop):
         if isinstance(obj, str):
             return obj
index 385ca3a..524cf85 100644 (file)
@@ -13,8 +13,9 @@
 # limitations under the License.
 
 import functools
-
+import logging
 from catalog.pub.utils.toscaparser import EtsiNsdInfoModel
+logger = logging.getLogger(__name__)
 
 
 class EtsiVnfdInfoModel(EtsiNsdInfoModel):
@@ -178,6 +179,10 @@ class EtsiVnfdInfoModel(EtsiNsdInfoModel):
                 virtual_compute = self.getCapabilityByName(node, 'virtual_compute')
                 if virtual_compute is not None and 'properties' in virtual_compute:
                     ret['virtual_compute'] = virtual_compute['properties']
+                virtual_storage_names = self.getRequirementByName(node, 'virtual_storage')
+                virtual_storage = self.getRequirementByNodeName(nodeTemplates, virtual_storage_names[0], 'properties')
+                if virtual_storage is not None:
+                    ret['virtual_compute']['virtual_storage'] = virtual_storage
 
                 ret['vls'] = self.get_linked_vl_ids(node, nodeTemplates)
 
@@ -189,6 +194,7 @@ class EtsiVnfdInfoModel(EtsiNsdInfoModel):
                 ret['artifacts'] = self._build_artifacts(node)
 
                 rets.append(ret)
+        logger.debug("rets:%s", rets)
         return rets
 
     def get_node_image_file(self, node):