Fixes 1367 by preventing pyang discard repeated constituent-base-element-id
[osm/NBI.git] / osm_nbi / instance_topics.py
index 2613430..c47ed9b 100644 (file)
@@ -481,8 +481,8 @@ class NsrTopic(BaseTopic):
         for cp in vnfd.get("ext-cpd", ()):
             vnf_cp = {
                 "name": cp.get("id"),
         for cp in vnfd.get("ext-cpd", ()):
             vnf_cp = {
                 "name": cp.get("id"),
-                "connection-point-id": cp.get("int-cpd").get("cpd"),
-                "connection-point-vdu-id": cp.get("int-cpd").get("vdu-id"),
+                "connection-point-id": cp.get("int-cpd", {}).get("cpd"),
+                "connection-point-vdu-id": cp.get("int-cpd", {}).get("vdu-id"),
                 "id": cp.get("id"),
                 # "ip-address", "mac-address" # filled by LCM
                 # vim-id  # TODO it would be nice having a vim port id
                 "id": cp.get("id"),
                 # "ip-address", "mac-address" # filled by LCM
                 # vim-id  # TODO it would be nice having a vim port id
@@ -528,7 +528,7 @@ class NsrTopic(BaseTopic):
             if kdu_params and kdu_params.get("config-units"):
                 kdur["config-units"] = kdu_params["config-units"]
 
             if kdu_params and kdu_params.get("config-units"):
                 kdur["config-units"] = kdu_params["config-units"]
 
-            kdu_model_data = all_kdu_models[all_kdu_profiles_models[kdur["name"]]]
+            kdu_model_data = all_kdu_models[all_kdu_profiles_models[kdur["kdu-name"]]]
             kdur[kdu_model_data.get("kdu-model-type")] = kdu_model or kdu_model_data
             if not vnfr_descriptor.get("kdur"):
                 vnfr_descriptor["kdur"] = []
             kdur[kdu_model_data.get("kdu-model-type")] = kdu_model or kdu_model_data
             if not vnfr_descriptor.get("kdur"):
                 vnfr_descriptor["kdur"] = []
@@ -738,12 +738,12 @@ class NsLcmOpTopic(BaseTopic):
     def _check_scale_ns_operation(self, indata, nsr):
         vnfd = self._get_vnfd_from_vnf_member_index(indata["scaleVnfData"]["scaleByStepData"]["member-vnf-index"],
                                                     nsr["_id"])
     def _check_scale_ns_operation(self, indata, nsr):
         vnfd = self._get_vnfd_from_vnf_member_index(indata["scaleVnfData"]["scaleByStepData"]["member-vnf-index"],
                                                     nsr["_id"])
-        for scaling_group in get_iterable(vnfd.get("scaling-group-descriptor")):
-            if indata["scaleVnfData"]["scaleByStepData"]["scaling-group-descriptor"] == scaling_group["name"]:
+        for scaling_aspect in get_iterable(vnfd.get("df", ())[0]["scaling-aspect"]):
+            if indata["scaleVnfData"]["scaleByStepData"]["scaling-group-descriptor"] == scaling_aspect["id"]:
                 break
         else:
             raise EngineException("Invalid scaleVnfData:scaleByStepData:scaling-group-descriptor '{}' is not "
                 break
         else:
             raise EngineException("Invalid scaleVnfData:scaleByStepData:scaling-group-descriptor '{}' is not "
-                                  "present at vnfd:scaling-group-descriptor"
+                                  "present at vnfd:scaling-aspect"
                                   .format(indata["scaleVnfData"]["scaleByStepData"]["scaling-group-descriptor"]))
 
     def _check_instantiate_ns_operation(self, indata, nsr, session):
                                   .format(indata["scaleVnfData"]["scaleByStepData"]["scaling-group-descriptor"]))
 
     def _check_instantiate_ns_operation(self, indata, nsr, session):