Fix bug 2414: descriptor validation should skip storage and compute desc for PDUs 24/15524/2
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 6 Nov 2025 14:39:55 +0000 (15:39 +0100)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 6 Nov 2025 16:28:05 +0000 (17:28 +0100)
Change-Id: I4cc0ad8cfd3805a7c530a41a265226efdb1791e6
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
osm_nbi/descriptor_topics.py

index 7a034fa..b2d6639 100644 (file)
@@ -1319,8 +1319,10 @@ class VnfdTopic(DescriptorTopic):
         for vcd in get_iterable(indata.get("virtual-compute-desc")):
             all_vcd_ids.add(vcd.get("id"))
 
-        for vdus in get_iterable(indata.get("vdu")):
-            for vsd_ref in vdus.get("virtual-storage-desc"):
+        for vdu in get_iterable(indata.get("vdu")):
+            if "pdu-type" in vdu:
+                continue
+            for vsd_ref in vdu.get("virtual-storage-desc"):
                 if vsd_ref and vsd_ref not in all_vsd_ids:
                     raise EngineException(
                         "vdu[virtual-storage-desc='{}']"
@@ -1330,13 +1332,15 @@ class VnfdTopic(DescriptorTopic):
                         http_code=HTTPStatus.UNPROCESSABLE_ENTITY,
                     )
 
-        for vdus in get_iterable(indata.get("vdu")):
-            vcd_ref = vdus.get("virtual-compute-desc")
+        for vdu in get_iterable(indata.get("vdu")):
+            if "pdu-type" in vdu:
+                continue
+            vcd_ref = vdu.get("virtual-compute-desc")
             if vcd_ref and vcd_ref not in all_vcd_ids:
                 raise EngineException(
                     "vdu[virtual-compute-desc='{}']"
                     "not defined in vnfd".format(
-                        vdus["virtual-compute-desc"],
+                        vdu["virtual-compute-desc"],
                     ),
                     http_code=HTTPStatus.UNPROCESSABLE_ENTITY,
                 )