From: tierno Date: Fri, 13 Nov 2020 15:56:51 +0000 (+0000) Subject: Feature 7184: Set at instantiation records if vld connect pci interfaces X-Git-Tag: release-v9.0-start~8 X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=commitdiff_plain;h=1bd9d95c5213248cd9dbe6d5a709f0fe2688b4c2;hp=1b23c36a5f050609ac7c16e8f38e337259214174 Feature 7184: Set at instantiation records if vld connect pci interfaces Change-Id: I2118c23aa17a5d7a21a56802dede4753f8054da5 Signed-off-by: tierno --- diff --git a/osm_nbi/instance_topics.py b/osm_nbi/instance_topics.py index ace7f8e..43f2853 100644 --- a/osm_nbi/instance_topics.py +++ b/osm_nbi/instance_topics.py @@ -448,7 +448,6 @@ class NsrTopic(BaseTopic): f = next((f for f in nsr_descriptor["flavor"] if all(f.get(k) == flavor_data[k] for k in flavor_data)), None) if not f: - flavor_data["vim_info"] = [] flavor_data["name"] = vdu["id"][:56] + "-flv" flavor_data["id"] = str(len(nsr_descriptor["flavor"])) nsr_descriptor["flavor"].append(flavor_data) @@ -461,7 +460,6 @@ class NsrTopic(BaseTopic): img = next((f for f in nsr_descriptor["image"] if all(f.get(k) == image_data[k] for k in image_data)), None) if not img: - image_data["vim_info"] = [] image_data["id"] = str(len(nsr_descriptor["image"])) nsr_descriptor["image"].append(image_data) img = image_data @@ -479,37 +477,43 @@ class NsrTopic(BaseTopic): vdu_iface = { x: iface[x] for x in ("name", "ip-address", "mac-address", "internal-connection-point-ref", "external-connection-point-ref") if iface.get(x) is not None} + if iface.get("ip-address"): + vdu_iface["fixed-ip"] = True + if iface.get("mac-address"): + vdu_iface["fixed-mac"] = True if vnfd_mgmt_cp and iface.get("external-connection-point-ref") == vnfd_mgmt_cp: vdu_iface["mgmt-vnf"] = True if iface.get("mgmt-interface"): vdu_iface["mgmt-interface"] = True # TODO change to mgmt-vdu if iface.get("virtual-interface"): - if iface["virtual-interface"].get("type"): - iface["type"] = iface["virtual-interface"]["type"] - if iface["virtual-interface"].get("vpci"): - iface["vpci"] = iface["virtual-interface"]["vpci"] - if iface["virtual-interface"].get("bandwidth"): - iface["bandwidth"] = iface["virtual-interface"]["bandwidth"] + vdu_iface.update({x: iface["virtual-interface"][x] for x in ("type", "vcpi", "bandwidth") + if iface["virtual-interface"].get(x) is not None}) # look for network where this interface is connected if iface.get("external-connection-point-ref"): - for nsd_vld in get_iterable(nsd.get("vld")): + for vld_index, nsd_vld in enumerate(get_iterable(nsd.get("vld"))): for nsd_vld_cp in get_iterable(nsd_vld.get("vnfd-connection-point-ref")): if nsd_vld_cp.get("vnfd-connection-point-ref") == \ iface["external-connection-point-ref"] and \ nsd_vld_cp.get("member-vnf-index-ref") == member_vnf["member-vnf-index"]: vdu_iface["ns-vld-id"] = nsd_vld["id"] + # if interface is of type PCI, mark connected vld as of type PCI + if vdu_iface.get("type") in ("SR-IOV", "PCI-PASSTHROUGH"): + nsr_descriptor["vld"][vld_index]["pci-interfaces"] = True break else: continue break elif iface.get("internal-connection-point-ref"): - for vnfd_ivld in get_iterable(vnfd.get("internal-vld")): + for vld_index, vnfd_ivld in enumerate(get_iterable(vnfd.get("internal-vld"))): for vnfd_ivld_icp in get_iterable(vnfd_ivld.get("internal-connection-point")): if vnfd_ivld_icp.get("id-ref") == iface["internal-connection-point-ref"]: vdu_iface["vnf-vld-id"] = vnfd_ivld["id"] if vnfd_ivld_icp.get("ip-address"): vdu_iface["ip-address"] = vnfd_ivld_icp["ip-address"] + # if interface is of type PCI, mark connected vld as of type PCI + if vdu_iface.get("type") in ("SR-IOV", "PCI-PASSTHROUGH"): + vnfr_descriptor["vld"][vld_index]["pci-interfaces"] = True break else: continue @@ -994,9 +998,11 @@ class NsLcmOpTopic(BaseTopic): if iface_inst_param.get("ip-address"): vnfr_update[vnfr_update_text + ".ip-address"] = increment_ip_mac( iface_inst_param.get("ip-address"), vdur.get("count-index", 0)) + vnfr_update[vnfr_update_text + ".fixed-ip"] = True if iface_inst_param.get("mac-address"): vnfr_update[vnfr_update_text + ".mac-address"] = increment_ip_mac( iface_inst_param.get("mac-address"), vdur.get("count-index", 0)) + vnfr_update[vnfr_update_text + ".fixed-mac"] = True # get vnf.internal-vld.internal-conection-point instantiation params to update vnfr.vdur.interfaces # TODO update vld with the ip-profile for ivld_inst_param in get_iterable(vnf_inst_params.get("internal-vld")): @@ -1009,9 +1015,11 @@ class NsLcmOpTopic(BaseTopic): if icp_inst_param.get("ip-address"): vnfr_update[vnfr_update_text + ".ip-address"] = increment_ip_mac( icp_inst_param.get("ip-address"), vdur.get("count-index", 0)) + vnfr_update[vnfr_update_text + ".fixed-ip"] = True if icp_inst_param.get("mac-address"): vnfr_update[vnfr_update_text + ".mac-address"] = increment_ip_mac( icp_inst_param.get("mac-address"), vdur.get("count-index", 0)) + vnfr_update[vnfr_update_text + ".fixed-mac"] = True break # get ip address from instantiation parameters.vld.vnfd-connection-point-ref for vld_inst_param in get_iterable(indata.get("vld")): @@ -1027,9 +1035,11 @@ class NsLcmOpTopic(BaseTopic): if vnfcp_inst_param.get("ip-address"): vnfr_update[vnfr_update_text + ".ip-address"] = increment_ip_mac( vnfcp_inst_param.get("ip-address"), vdur.get("count-index", 0)) + vnfr_update[vnfr_update_text + ".fixed-ip"] = True if vnfcp_inst_param.get("mac-address"): vnfr_update[vnfr_update_text + ".mac-address"] = increment_ip_mac( vnfcp_inst_param.get("mac-address"), vdur.get("count-index", 0)) + vnfr_update[vnfr_update_text + ".fixed-mac"] = True break vnfr_update["vim-account-id"] = vim_account