VNFs with only VLDs compatibility 72/6872/1
authorgcalvino <guillermo.calvinosanchez@altran.com>
Tue, 13 Nov 2018 16:17:28 +0000 (17:17 +0100)
committergcalvino <guillermo.calvinosanchez@altran.com>
Tue, 13 Nov 2018 16:17:28 +0000 (17:17 +0100)
Signed-off-by: gcalvino <guillermo.calvinosanchez@altran.com>
osm_nbi/descriptor_topics.py
osm_nbi/instance_topics.py

index 2fd7cc0..fd3e3f4 100644 (file)
@@ -432,17 +432,18 @@ class VnfdTopic(DescriptorTopic):
     def _validate_input_new(self, indata, force=False):
         indata = self.pyangbind_validation("vnfds", indata, force)
         # Cross references validation in the descriptor
-        if not indata.get("mgmt-interface"):
-            raise EngineException("'mgmt-interface' is a mandatory field and it is not defined",
-                                  http_code=HTTPStatus.UNPROCESSABLE_ENTITY)
-        if indata["mgmt-interface"].get("cp"):
-            for cp in get_iterable(indata.get("connection-point")):
-                if cp["name"] == indata["mgmt-interface"]["cp"]:
-                    break
-            else:
-                raise EngineException("mgmt-interface:cp='{}' must match an existing connection-point"
-                                      .format(indata["mgmt-interface"]["cp"]),
+        if indata.get("vdu"):
+            if not indata.get("mgmt-interface"):
+                raise EngineException("'mgmt-interface' is a mandatory field and it is not defined",
                                       http_code=HTTPStatus.UNPROCESSABLE_ENTITY)
+            if indata["mgmt-interface"].get("cp"):
+                for cp in get_iterable(indata.get("connection-point")):
+                    if cp["name"] == indata["mgmt-interface"]["cp"]:
+                        break
+                else:
+                    raise EngineException("mgmt-interface:cp='{}' must match an existing connection-point"
+                                          .format(indata["mgmt-interface"]["cp"]),
+                                          http_code=HTTPStatus.UNPROCESSABLE_ENTITY)
 
         for vdu in get_iterable(indata.get("vdu")):
             for interface in get_iterable(vdu.get("interface")):
index 5d9705b..ae4417a 100644 (file)
@@ -169,7 +169,7 @@ class NsrTopic(BaseTopic):
                         # vim-id  # TODO it would be nice having a vim port id
                     }
                     vnfr_descriptor["connection-point"].append(vnf_cp)
-                for vdu in vnfd["vdu"]:
+                for vdu in vnfd.get("vdu", ()):
                     vdur = {
                         "vdu-id-ref": vdu["id"],
                         # TODO      "name": ""     Name of the VDU in the VIM