Fix bug 1479 to check conflicts on deleting vnpkg
[osm/NBI.git] / osm_nbi / descriptor_topics.py
index 0ad3e83..df218cc 100644 (file)
@@ -539,13 +539,14 @@ class VnfdTopic(DescriptorTopic):
         # check vnfrs using this vnfd
         _filter["vnfd-id"] = _id
         if self.db.get_list("vnfrs", _filter):
-            raise EngineException("There is at least one VNF using this descriptor", http_code=HTTPStatus.CONFLICT)
+            raise EngineException("There is at least one VNF instance using this descriptor",
+                                  http_code=HTTPStatus.CONFLICT)
 
         # check NSD referencing this VNFD
         del _filter["vnfd-id"]
-        _filter["constituent-vnfd.ANYINDEX.vnfd-id-ref"] = descriptor_id
+        _filter["vnfd-id"] = descriptor_id
         if self.db.get_list("nsds", _filter):
-            raise EngineException("There is at least one NSD referencing this descriptor",
+            raise EngineException("There is at least one NS package referencing this descriptor",
                                   http_code=HTTPStatus.CONFLICT)
 
     def _validate_input_new(self, indata, storage_params, force=False):
@@ -625,7 +626,7 @@ class VnfdTopic(DescriptorTopic):
         for df in indata["df"]:
             if "lcm-operations-configuration" in df and "operate-vnf-op-config" in df["lcm-operations-configuration"]:
                 configs = df["lcm-operations-configuration"]["operate-vnf-op-config"].get("day1-2", [])
-                vdus = df["vdu-profile"]
+                vdus = df.get("vdu-profile", [])
                 for vdu in vdus:
                     for config in configs:
                         if config["id"] == vdu["id"] and utils.find_in_list(
@@ -1019,7 +1020,8 @@ class NsdTopic(DescriptorTopic):
         _filter = self._get_project_filter(session)
         _filter["nsd-id"] = _id
         if self.db.get_list("nsrs", _filter):
-            raise EngineException("There is at least one NS using this descriptor", http_code=HTTPStatus.CONFLICT)
+            raise EngineException("There is at least one NS instance using this descriptor",
+                                  http_code=HTTPStatus.CONFLICT)
 
         # check NSD referenced by NST
         del _filter["nsd-id"]
@@ -1170,7 +1172,7 @@ class PduTopic(BaseTopic):
         _filter = self._get_project_filter(session)
         _filter["vdur.pdu-id"] = _id
         if self.db.get_list("vnfrs", _filter):
-            raise EngineException("There is at least one VNF using this PDU", http_code=HTTPStatus.CONFLICT)
+            raise EngineException("There is at least one VNF instance using this PDU", http_code=HTTPStatus.CONFLICT)
 
 
 class VnfPkgOpTopic(BaseTopic):