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)