From 18f39804274b3ad1a3c6def3b106dc5636c45094 Mon Sep 17 00:00:00 2001 From: Huang Haibin Date: Mon, 16 Apr 2018 18:58:08 +0800 Subject: VDU parser storage for new data model Change-Id: I2c3b6ad8b4a8cd627b67288afc64c81cd3c03344 Issue-ID: VFC-657 Signed-off-by: Huang Haibin --- catalog/pub/utils/toscaparser/basemodel.py | 6 ++++++ catalog/pub/utils/toscaparser/vnfdmodel.py | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/catalog/pub/utils/toscaparser/basemodel.py b/catalog/pub/utils/toscaparser/basemodel.py index fd4d35c1..d39a7b70 100644 --- a/catalog/pub/utils/toscaparser/basemodel.py +++ b/catalog/pub/utils/toscaparser/basemodel.py @@ -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 diff --git a/catalog/pub/utils/toscaparser/vnfdmodel.py b/catalog/pub/utils/toscaparser/vnfdmodel.py index 385ca3af..524cf85f 100644 --- a/catalog/pub/utils/toscaparser/vnfdmodel.py +++ b/catalog/pub/utils/toscaparser/vnfdmodel.py @@ -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): -- cgit 1.2.3-korg