Changes for IM change 10095: remove kdu-model
[osm/LCM.git] / osm_lcm / data_utils / vnfd.py
index 5774060..f312e57 100644 (file)
@@ -23,6 +23,7 @@
 ##
 
 from osm_lcm.data_utils import list_utils
+from osm_lcm.lcm_utils import get_iterable
 
 
 def get_lcm_operations_configuration(vnfd):
@@ -88,12 +89,6 @@ def get_vdu_profile(vnfd, vdu_profile_id):
         lambda vdu_profile: vdu_profile["id"] == vdu_profile_id)
 
 
-def get_kdu_profile(vnfd, kdu_profile_id):
-    return list_utils.find_in_list(
-        vnfd.get("df", ())[0]["kdu-profile"],
-        lambda kdu_profile: kdu_profile["id"] == kdu_profile_id)
-
-
 def get_vnf_configuration(vnfd):
     if "vnf-configuration-id" not in vnfd.get("df")[0]:
         return None
@@ -110,11 +105,10 @@ def get_vdu_configuration(vnfd, vdu_id):
         lambda vdu_configuration: vdu_configuration["id"] == vdu_profile["vdu-configuration-id"])
 
 
-def get_kdu_configuration(vnfd, kdu_id):
-    kdu_profile = get_kdu_profile(vnfd, kdu_id)
-    return list_utils.find_in_list(
-        vnfd.get("kdu-configuration", ()),
-        lambda kdu_configuration: kdu_configuration["id"] == kdu_profile["kdu-configuration-id"])
+def get_kdu_configuration(vnfd, kdu_name):
+    for kdu in get_iterable(vnfd, "kdu"):
+        if kdu_name == kdu["name"]:
+            return kdu.get("kdu-configuration")
 
 
 def get_virtual_link_profiles(vnfd):
@@ -135,3 +129,23 @@ def get_vdu_index(vnfd, vdu_id):
         return vnfd.get("vdu", ()).index(target_vdu)
     else:
         return -1
+
+
+def get_scaling_aspect(vnfd):
+    return vnfd.get("df", ())[0].get("scaling-aspect", ())
+
+
+def get_number_of_instances(vnfd, vdu_id):
+    return list_utils.find_in_list(
+        vnfd.get(
+            "df",
+            ()
+        )[0].get(
+            "instantiation-level",
+            ()
+        )[0].get(
+            "vdu-level",
+            ()
+        ),
+        lambda a_vdu: a_vdu["vdu-id"] == vdu_id
+    )["number-of-instances"]