Feature 10916: Remove VNF Instance from NS - NS Update

Added support for input validation of Remove VNF update type
Added unit test cases

Change-Id: Ia294114ef093a0cf8a8ba141fc4710cef1bd3b98
Signed-off-by: elumalai <deepika.e@tataelxsi.co.in>
diff --git a/osm_nbi/instance_topics.py b/osm_nbi/instance_topics.py
index 787f6e1..2df6a7d 100644
--- a/osm_nbi/instance_topics.py
+++ b/osm_nbi/instance_topics.py
@@ -1278,6 +1278,9 @@
         - 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 @@
                         ),
                         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,