Bug 2314: Fix for Static IPv4 and Dual Stack IP not retained during NS Update 25/14025/4
authorelumalai <deepika.e@tataelxsi.co.in>
Tue, 14 Nov 2023 09:36:38 +0000 (15:06 +0530)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 30 Jan 2025 12:12:00 +0000 (13:12 +0100)
Change-Id: I1dc61eed4754b0559a2aa8c39b5d00f3bb7752aa
Signed-off-by: elumalai <deepika.e@tataelxsi.co.in>
osm_nbi/instance_topics.py

index c336229..4ed706b 100644 (file)
@@ -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"]