summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYan Yang <yangyanyj@chinamobile.com>2018-05-02 06:50:42 +0000
committerGerrit Code Review <gerrit@onap.org>2018-05-02 06:50:42 +0000
commitae020eb3f9ef0f028bfd260f1ff7f29ac0ea97b4 (patch)
treee7720b5eded8c897125007dcfb3c7b6067219ae7
parent4fe3182dae9e35a4eb073579c8f338c2eb91a61a (diff)
parent93ba2a0e69bcd2f542d4ad18ea54d9b2afcc1e25 (diff)
Merge "Fix inject files can not inject to vm"
-rw-r--r--catalog/pub/utils/toscaparser/vnfdmodel.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/catalog/pub/utils/toscaparser/vnfdmodel.py b/catalog/pub/utils/toscaparser/vnfdmodel.py
index 524cf85f..7934a847 100644
--- a/catalog/pub/utils/toscaparser/vnfdmodel.py
+++ b/catalog/pub/utils/toscaparser/vnfdmodel.py
@@ -14,6 +14,7 @@
import functools
import logging
+import os
from catalog.pub.utils.toscaparser import EtsiNsdInfoModel
logger = logging.getLogger(__name__)
@@ -31,6 +32,7 @@ class EtsiVnfdInfoModel(EtsiNsdInfoModel):
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)
@@ -48,6 +50,10 @@ class EtsiVnfdInfoModel(EtsiNsdInfoModel):
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:
@@ -169,6 +175,13 @@ class EtsiVnfdInfoModel(EtsiNsdInfoModel):
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)