diff --git a/osm_nbi/instance_topics.py b/osm_nbi/instance_topics.py index c3362293b8a258d6d674360c5b4f76629a8b7fd9..4ed706bd405e4c877c23430b1923be99c489c30c 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"]