nsd.vendor = self.metadata['vendor']
nsd.short_name = self.metadata['name']
nsd.version = self.metadata['version']
+ if 'logo' in self.metadata:
+ nsd.logo = self.metadata['logo']
except Exception as e:
self.log.warning(_("Unable to use YANG GI to generate "
"descriptors, falling back to alternate "
if resource.type == 'vld':
resource.generate_yang_model(nsd, vnfds, use_gi=use_gi)
+ vnf_type_duplicate = []
+ vnfd_resources = []
+ vnfd_duplicate_resource_list = []
for resource in self.resources:
- # Do the vnfds next
if resource.type == 'vnfd':
+ vnfd_resources.append(resource)
+
+ vnfd_resources.sort(key=lambda x: x.member_vnf_id, reverse=False)
+ vnf_type_to_vnf_id = {}
+ for resource in vnfd_resources:
+ if resource.vnf_type not in vnf_type_duplicate:
resource.generate_yang_model(nsd, vnfds, use_gi=use_gi)
+ vnf_type_to_vnf_id[resource.vnf_type] = resource.id
+ vnf_type_duplicate.append(resource.vnf_type)
+ else:
+ vnfd_duplicate_resource_list.append(resource)
+
+ for resource in vnfd_duplicate_resource_list:
+ resource.generate_nsd_constiuent(nsd, vnf_type_to_vnf_id[resource.vnf_type])
for resource in self.resources:
# Do the other nodes
if use_gi:
for param in self.parameters:
nsd.input_parameter_xpath.append(
- NsdYang.YangData_Nsd_NsdCatalog_Nsd_InputParameterXpath(
+ NsdYang.YangData_RwProject_Project_NsdCatalog_Nsd_InputParameterXpath(
xpath=param.get_xpath(),
)
)
# Need to add support to get script names, charms, etc.
other_files = {}
for resource in self.resources:
- resource.get_supporting_files(other_files)
+ resource.get_supporting_files(other_files, desc_id=nsd_id)
for policy in self.policies:
policy.get_supporting_files(other_files, desc_id=nsd_id)
self.YANG: vnfd_pf,
}
+
if vnfd_id in other_files:
vnfd_out[self.FILES] = other_files[vnfd_id]
return {pf+'-catalog': {pf: [desc]}}
def get_yaml(self, module_list, desc):
- model = RwYang.Model.create_libncx()
+ model = RwYang.Model.create_libyang()
+
for module in module_list:
model.load_module(module)
return desc.to_yaml(model)