Detection of duplicated VLD names in VNF Descriptors 71/7371/2
authordelacruzramo <pedro.delacruzramos@altran.com>
Thu, 28 Mar 2019 11:29:04 +0000 (12:29 +0100)
committerdelacruzramo <pedro.delacruzramos@altran.com>
Tue, 2 Apr 2019 11:39:38 +0000 (13:39 +0200)
Change-Id: I3bea0ac4f36e110e4570ca6bc586d7af69ac226d
Signed-off-by: delacruzramo <pedro.delacruzramos@altran.com>
osm_nbi/descriptor_topics.py

index 94b74a9..9f022f4 100644 (file)
@@ -527,7 +527,17 @@ class VnfdTopic(DescriptorTopic):
                 if not self._validate_package_folders(storage_params, 'charms'):
                     raise EngineException("Charm defined in vnf[id={}] but not present in "
                                           "package".format(indata["id"]))
+        vld_names = []  # For detection of duplicated VLD names
         for ivld in get_iterable(indata.get("internal-vld")):
+            # BEGIN Detection of duplicated VLD names
+            ivld_name = ivld["name"]
+            if ivld_name in vld_names:
+                raise EngineException("Duplicated VLD name '{}' in vnfd[id={}]:internal-vld[id={}]"
+                                      .format(ivld["name"], indata["id"], ivld["id"]),
+                                      http_code=HTTPStatus.UNPROCESSABLE_ENTITY)
+            else:
+                vld_names.append(ivld_name)
+            # END Detection of duplicated VLD names
             for icp in get_iterable(ivld.get("internal-connection-point")):
                 icp_mark = False
                 for vdu in get_iterable(indata.get("vdu")):