X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=models%2Fopenmano%2Fpython%2Frift%2Fopenmano%2Frift2openmano.py;h=8a308e61d340c895b0adf23dba30ed3ff156b8b5;hb=f49375710db1acf3cd74c8651d098b7a08e8d0b2;hp=b39a9d41acdc5316d06bc65b057c5b0cfa6293e7;hpb=30118f288deeed4013f940c0e5a8c59d5fa29683;p=osm%2FSO.git diff --git a/models/openmano/python/rift/openmano/rift2openmano.py b/models/openmano/python/rift/openmano/rift2openmano.py index b39a9d41..8a308e61 100755 --- a/models/openmano/python/rift/openmano/rift2openmano.py +++ b/models/openmano/python/rift/openmano/rift2openmano.py @@ -88,20 +88,20 @@ class RiftNSD(object): @classmethod def from_xml_file_hdl(cls, hdl): hdl.seek(0) - descriptor = RwNsdYang.YangData_Nsd_NsdCatalog_Nsd() + descriptor = RwNsdYang.YangData_RwProject_Project_NsdCatalog_Nsd() descriptor.from_xml_v2(RiftNSD.model, hdl.read()) return cls(descriptor) @classmethod def from_yaml_file_hdl(cls, hdl): hdl.seek(0) - descriptor = RwNsdYang.YangData_Nsd_NsdCatalog_Nsd() + descriptor = RwNsdYang.YangData_RwProject_Project_NsdCatalog_Nsd() descriptor.from_yaml(RiftNSD.model, hdl.read()) return cls(descriptor) @classmethod def from_dict(cls, nsd_dict): - descriptor = RwNsdYang.YangData_Nsd_NsdCatalog_Nsd.from_dict(nsd_dict) + descriptor = RwNsdYang.YangData_RwProject_Project_NsdCatalog_Nsd.from_dict(nsd_dict) return cls(descriptor) @@ -143,20 +143,20 @@ class RiftVNFD(object): @classmethod def from_xml_file_hdl(cls, hdl): hdl.seek(0) - descriptor = RwVnfdYang.YangData_Vnfd_VnfdCatalog_Vnfd() + descriptor = RwVnfdYang.YangData_RwProject_Project_VnfdCatalog_Vnfd() descriptor.from_xml_v2(RiftVNFD.model, hdl.read()) return cls(descriptor) @classmethod def from_yaml_file_hdl(cls, hdl): hdl.seek(0) - descriptor = RwVnfdYang.YangData_Vnfd_VnfdCatalog_Vnfd() + descriptor = RwVnfdYang.YangData_RwProject_Project_VnfdCatalog_Vnfd() descriptor.from_yaml(RiftVNFD.model, hdl.read()) return cls(descriptor) @classmethod def from_dict(cls, vnfd_dict): - descriptor = RwVnfdYang.YangData_Vnfd_VnfdCatalog_Vnfd.from_dict(vnfd_dict) + descriptor = RwVnfdYang.YangData_RwProject_Project_VnfdCatalog_Vnfd.from_dict(vnfd_dict) return cls(descriptor) @@ -341,6 +341,25 @@ def cloud_init(rift_vnfd_id, vdu): logger.debug("Current cloud init msg is {}".format(cloud_init_msg)) return cloud_init_msg +def config_file_init(rift_vnfd_id, vdu, cfg_file): + """ Populate config file init with file provided + """ + vnfd_package_store = rift.package.store.VnfdPackageFilesystemStore(logger) + + # Get script contents from the file provided in the cloud_init directory + logger.debug("config file script provided in file {}".format(cfg_file)) + filename = cfg_file + vnfd_package_store.refresh() + stored_package = vnfd_package_store.get_package(rift_vnfd_id) + cloud_init_extractor = rift.package.cloud_init.PackageCloudInitExtractor(logger) + try: + cfg_file_msg = cloud_init_extractor.read_script(stored_package, filename) + except rift.package.cloud_init.CloudInitExtractionError as e: + raise ValueError(e) + + logger.debug("Current config file msg is {}".format(cfg_file_msg)) + return cfg_file_msg + def rift2openmano_vnfd(rift_vnfd, rift_nsd): openmano_vnf = {"vnf":{}} vnf = openmano_vnf["vnf"] @@ -540,6 +559,14 @@ def rift2openmano_vnfd(rift_vnfd, rift_nsd): vnfc_boot_data_init = True vnfc['boot-data']['boot-data-drive'] = vdu.supplemental_boot_data.boot_data_drive + if vdu.supplemental_boot_data.has_field('config_file'): + om_cfgfile_list = list() + for custom_config_file in vdu.supplemental_boot_data.config_file: + cfg_source = config_file_init(rift_vnfd.id, vdu, custom_config_file.source) + om_cfgfile_list.append({"dest":custom_config_file.dest, "content": cfg_source}) + vnfc['boot-data']['config-files'] = om_cfgfile_list + + vnf["VNFC"].append(vnfc) for int_if in list(vdu.internal_interface) + list(vdu.external_interface): @@ -579,6 +606,9 @@ def rift2openmano_vnfd(rift_vnfd, rift_nsd): if bps/x[1] >= 1: intf["bandwidth"] = "{} {}bps".format(math.ceil(bps/x[1]), x[0]) + # Sort bridge-ifaces-list TODO sort others + newlist = sorted(vnfc["bridge-ifaces"], key=lambda k: k['name']) + vnfc["bridge-ifaces"] = newlist return openmano_vnf