import functools
import logging
+import os
from catalog.pub.utils.toscaparser import EtsiNsdInfoModel
logger = logging.getLogger(__name__)
nodeTemplates = map(functools.partial(self.buildNode, tosca=tosca),
tosca.nodetemplates)
node_types = tosca.topology_template.custom_defs
+ self.basepath = self._get_base_path(tosca)
self.services = self._get_all_services(nodeTemplates)
self.vcloud = self._get_all_vcloud(nodeTemplates)
self.vcenter = self._get_all_vcenter(nodeTemplates)
self.vnf_exposed = self.get_all_endpoint_exposed(tosca.topology_template)
self.vnf_flavours = self.get_all_flavour(tosca.topology_template.groups)
+ def _get_base_path(self, tosca):
+ fpath, fname = os.path.split(tosca.path)
+ return fpath
+
def _get_all_services(self, nodeTemplates):
ret = []
for node in nodeTemplates:
if 'description' in node:
ret['description'] = node['description']
ret['properties'] = node['properties']
+ for inject_file in ret['properties']['inject_files']:
+ source_path = os.path.join(self.basepath, inject_file['source_path'])
+ with open(source_path, "rb") as f:
+ source_data = f.read()
+ source_data_base64 = source_data.encode("base64")
+ inject_file["source_data_base64"] = source_data_base64
+
ret['image_file'] = self.get_node_image_file(node)
local_storages = self.getRequirementByName(node, 'local_storage')
ret['local_storages'] = map(lambda x: self.get_requirement_node_name(x), local_storages)