X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=common%2Fpython%2Frift%2Fmano%2Ftosca_translator%2Frwmano%2Ftosca%2Ftosca_vnf_configuration.py;h=f90c1874b969a44a60419c49e59df121337a71eb;hb=d04550842ce8c7eeac9cb6234ba5a931d14d42ba;hp=0a54bcc013076b6f675b0b28823afa09a4bda0fe;hpb=bc183dcd09255cbe61afe64f8543824f2270634c;p=osm%2FSO.git diff --git a/common/python/rift/mano/tosca_translator/rwmano/tosca/tosca_vnf_configuration.py b/common/python/rift/mano/tosca_translator/rwmano/tosca/tosca_vnf_configuration.py index 0a54bcc0..f90c1874 100644 --- a/common/python/rift/mano/tosca_translator/rwmano/tosca/tosca_vnf_configuration.py +++ b/common/python/rift/mano/tosca_translator/rwmano/tosca/tosca_vnf_configuration.py @@ -44,12 +44,17 @@ class ToscaVnfConfiguration(ManoResource): self.properties = {} self.linked_to_vnf = True self._vnf_name = vnf_name + self._vnf_id = None + self.scripts = [] def __str__(self): return "%s(%s)" % (self.name, self.type) def handle_properties(self, nodes, groups): tosca_props = self.get_policy_props() + if self._vnf_name: + vnf_node = self.get_node_with_name(self._vnf_name, nodes) + self._vnf_id = vnf_node.id self.properties["vnf-configuration"] = {} prop = {} prop["config-attributes"] = {} @@ -64,6 +69,20 @@ class ToscaVnfConfiguration(ManoResource): if 'config_details' in tosca_props['config']: if 'script_type' in tosca_props['config']['config_details']: prop["script"]["script-type"] = tosca_props['config']['config_details']['script_type'] + if 'initial_config' in tosca_props: + prop['initial-config-primitive'] = [] + #print("Weleek " + str(tosca_props['initial_config'])) + for init_config in tosca_props['initial_config']: + if 'parameter' in init_config: + parameters = init_config.pop('parameter') + init_config['parameter'] = [] + for key, value in parameters.items(): + init_config['parameter'].append({'name': key, 'value': str(value)}) + if 'user_defined_script' in init_config: + self.scripts.append('../scripts/{}'. \ + format(init_config['user_defined_script'])) + prop['initial-config-primitive'].append(init_config) + self.properties = prop def generate_yang_submodel_gi(self, vnfd): @@ -86,4 +105,16 @@ class ToscaVnfConfiguration(ManoResource): tosca_props[prop.name] = {'get_param': prop.value.input_name} else: tosca_props[prop.name] = prop.value - return tosca_props \ No newline at end of file + return tosca_props + def get_supporting_files(self, files, desc_id=None): + if not len(self.scripts): + return + + if self._vnf_id not in files: + files[desc_id] = [] + + for script in self.scripts: + files[self._vnf_id].append({ + 'type': 'script', + 'name': script, + },) \ No newline at end of file