From a3366938d7f1e0d61ce7ecef2bcdb5498e1b11ad Mon Sep 17 00:00:00 2001 From: elumalai Date: Tue, 14 Nov 2023 15:06:38 +0530 Subject: [PATCH] Bug 2314: Fix for Static IPv4 and Dual Stack IP not retained during NS Update Change-Id: I1dc61eed4754b0559a2aa8c39b5d00f3bb7752aa Signed-off-by: elumalai --- osm_nbi/instance_topics.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/osm_nbi/instance_topics.py b/osm_nbi/instance_topics.py index c336229..4ed706b 100644 --- a/osm_nbi/instance_topics.py +++ b/osm_nbi/instance_topics.py @@ -2473,6 +2473,32 @@ class NsLcmOpTopic(BaseTopic): latest_vnfd_revision, ) ) + self._update_vnfrs_from_nsd(nsr) + vnfr_new = self.db.get_one( + "vnfrs", + {"_id": indata["changeVnfPackageData"]["vnfInstanceId"]}, + ) + fixed_ip_dict = {} + for vdu_record in vnfr_new.get("vdur"): + if vdu_record.get("count-index") == 0: + for interface in vdu_record.get("interfaces"): + if ( + interface.get("external-connection-point-ref") + and interface.get("fixed-ip") is True + ): + fixed_ip_dict[ + vdu_record.get("vdu-id-ref") + ] = interface.get("ip-address") + for new_vdu in vnfr_descriptor.get("vdur"): + if fixed_ip_dict.get(new_vdu.get("vdu-id-ref")): + for new_interface in new_vdu.get("interfaces"): + if new_interface.get( + "external-connection-point-ref" + ): + new_interface["ip-address"] = fixed_ip_dict.get( + new_vdu.get("vdu-id-ref") + ) + new_interface["fixed-ip"] = True indata["newVdur"] = vnfr_descriptor["vdur"] nslcmop_desc = self._create_nslcmop(nsInstanceId, operation, indata) _id = nslcmop_desc["_id"] -- 2.25.1