Feature 8840 Notify without auth and typo fixes
[osm/NBI.git] / osm_nbi / instance_topics.py
index 4b2eb44..d58fc3d 100644 (file)
@@ -34,6 +34,7 @@ __author__ = "Alfonso Tierno <alfonso.tiernosepulveda@telefonica.com>"
 class NsrTopic(BaseTopic):
     topic = "nsrs"
     topic_msg = "ns"
+    quota_name = "ns_instances"
     schema_new = ns_instantiate
 
     def __init__(self, db, fs, msg, auth):
@@ -596,7 +597,7 @@ class NsLcmOpTopic(BaseTopic):
 
             for in_ivld in get_iterable(in_vnfd.get("internal-vld")):
                 for ivld in get_iterable(vnfd.get("internal-vld")):
-                    if in_ivld["name"] == ivld["name"] or in_ivld["name"] == ivld["id"]:
+                    if in_ivld["name"] in (ivld["id"], ivld.get("name")):
                         for in_icp in get_iterable(in_ivld.get("internal-connection-point")):
                             for icp in ivld["internal-connection-point"]:
                                 if in_icp["id-ref"] == icp["id-ref"]:
@@ -606,7 +607,7 @@ class NsLcmOpTopic(BaseTopic):
                                                       "='{}']:internal-connection-point[id-ref:'{}'] is not present at "
                                                       "vnfd:internal-vld:name/id:internal-connection-point"
                                                       .format(in_vnf["member-vnf-index"], in_ivld["name"],
-                                                              in_icp["id-ref"], vnfd["id"]))
+                                                              in_icp["id-ref"]))
                         break
                 else:
                     raise EngineException("Invalid parameter vnf[member-vnf-index='{}']:internal-vld:name='{}'"
@@ -1070,6 +1071,7 @@ class NsLcmOpTopic(BaseTopic):
 class NsiTopic(BaseTopic):
     topic = "nsis"
     topic_msg = "nsi"
+    quota_name = "slice_instances"
 
     def __init__(self, db, fs, msg, auth):
         BaseTopic.__init__(self, db, fs, msg, auth)
@@ -1420,7 +1422,9 @@ class NsiLcmOpTopic(BaseTopic):
                 if nstId == netslice_subnet["id"]:
                     nsd_id = netslice_subnet["nsd-ref"]
                     if nsd_id not in nsds:
-                        nsds[nsd_id] = self.db.get_one("nsds", {"id": nsd_id})
+                        _filter = self._get_project_filter(session)
+                        _filter["id"] = nsd_id
+                        nsds[nsd_id] = self.db.get_one("nsds", _filter)
                     return nsds[nsd_id]
             else:
                 raise EngineException("Invalid parameter nstId='{}' is not one of the "
@@ -1537,12 +1541,15 @@ class NsiLcmOpTopic(BaseTopic):
 
                 try:
                     service = self.db.get_one("nsrs", {"_id": nsr_item["nsrId"]})
-                    indata_ns = {}
-                    indata_ns = service["instantiate_params"]
-                    indata_ns["lcmOperationType"] = operation
-                    indata_ns["nsInstanceId"] = service["_id"]
-                    # Including netslice_id in the ns instantiate Operation
-                    indata_ns["netsliceInstanceId"] = netsliceInstanceId
+                    indata_ns = {
+                        "lcmOperationType": operation,
+                        "nsInstanceId": service["_id"],
+                        # Including netslice_id in the ns instantiate Operation
+                        "netsliceInstanceId": netsliceInstanceId,
+                    }
+                    if operation == "instantiate":
+                        indata_ns.update(service["instantiate_params"])
+
                     # Creating NS_LCM_OP with the flag slice_object=True to not trigger the service instantiation
                     # message via kafka bus
                     nslcmop, _ = self.nsi_NsLcmOpTopic.new(rollback, session, indata_ns, kwargs, headers,