Feature 10916: Remove VNF Instance from NS - NS Update
[osm/NBI.git] / osm_nbi / instance_topics.py
index 787f6e1..2df6a7d 100644 (file)
@@ -1278,6 +1278,9 @@ class NsLcmOpTopic(BaseTopic):
         - it checks the vnfInstanceId, whether it's available under ns instance
         - it checks the vnfdId whether it matches with the vnfd-id in the vnf-record of specified VNF.
         Otherwise exception will be raised.
+        If updateType is REMOVE_VNF:
+        - it checks if the vnfInstanceId is available in the ns instance
+        - Otherwise exception will be raised.
 
         Args:
             indata: includes updateType such as CHANGE_VNFPKG,
@@ -1338,6 +1341,14 @@ class NsLcmOpTopic(BaseTopic):
                         ),
                         http_code=HTTPStatus.UNPROCESSABLE_ENTITY,
                     )
+            elif indata["updateType"] == "REMOVE_VNF":
+                vnf_instance_id = indata["removeVnfInstanceId"]
+                ns_instance_id = indata["nsInstanceId"]
+                if vnf_instance_id not in nsr["constituent-vnfr-ref"]:
+                    raise EngineException(
+                        "Invalid VNF Instance Id. '{}' is not "
+                        "present in the NS '{}'".format(vnf_instance_id, ns_instance_id)
+                    )
 
         except (
             DbException,