From: Olivia.Zhan Date: Tue, 16 Jul 2019 08:29:32 +0000 (+0800) Subject: Fix vnfd "source_data_base64" not encoded as expect issue X-Git-Tag: 1.0.5~65 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=modeling%2Fetsicatalog.git;a=commitdiff_plain;h=639db9dcedc7cb7eb3f340016fcf799c4c13551f Fix vnfd "source_data_base64" not encoded as expect issue Issue-ID: VFC-1429 Signed-off-by: Olivia.Zhan Change-Id: Ie9c810d93c1c7f309f1f82ffec3bfee9b1099e25 --- diff --git a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py index d0365a7..e71623a 100644 --- a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py +++ b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_251.py @@ -15,6 +15,7 @@ import functools import logging import os +import base64 logger = logging.getLogger(__name__) @@ -139,14 +140,16 @@ class VnfdSOL251(): if isinstance(inject_files, list): for inject_file in inject_files: source_path = os.path.join(self.model.basepath, inject_file['source_path']) - with open(source_path, "rt") as f: + with open(source_path, "rb") as f: source_data = f.read() - inject_file["source_data_base64"] = source_data + source_data_base64 = base64.b64encode(source_data) + inject_file["source_data_base64"] = source_data_base64.decode() if isinstance(inject_files, dict): source_path = os.path.join(self.model.basepath, inject_files['source_path']) - with open(source_path, "rt") as f: + with open(source_path, "rb") as f: source_data = f.read() - inject_files["source_data_base64"] = source_data + source_data_base64 = base64.b64encode(source_data) + inject_files["source_data_base64"] = source_data_base64.decode() virtual_storages = self.model.getRequirementByName(node, 'virtual_storage') ret['virtual_storages'] = list(map(functools.partial(self._trans_virtual_storage), virtual_storages)) ret['dependencies'] = [self.model.get_requirement_node_name(x) for x in self.model.getNodeDependencys(node)] diff --git a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_base.py b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_base.py index cc941b2..7b3a1a0 100644 --- a/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_base.py +++ b/genericparser/pub/utils/toscaparsers/vnfdparser/vnfd_sol_base.py @@ -15,6 +15,7 @@ import functools import logging import os +import base64 logger = logging.getLogger(__name__) @@ -118,14 +119,16 @@ class VnfdSOLBase(): if isinstance(inject_files, list): for inject_file in inject_files: source_path = os.path.join(self.model.basepath, inject_file['source_path']) - with open(source_path, "rt") as f: + with open(source_path, "rb") as f: source_data = f.read() - inject_file["source_data_base64"] = source_data + source_data_base64 = base64.b64encode(source_data) + inject_file["source_data_base64"] = source_data_base64.decode() if isinstance(inject_files, dict): source_path = os.path.join(self.model.basepath, inject_files['source_path']) - with open(source_path, "rt") as f: + with open(source_path, "rb") as f: source_data = f.read() - inject_files["source_data_base64"] = source_data + source_data_base64 = base64.b64encode(source_data) + inject_files["source_data_base64"] = source_data_base64.decode() virtual_storages = self.model.getRequirementByName(node, 'virtual_storage') ret['virtual_storages'] = list(map(functools.partial(self._trans_virtual_storage), virtual_storages)) ret['dependencies'] = [self.model.get_requirement_node_name(x) for x in self.model.getNodeDependencys(node)]