##
from osm_lcm.data_utils import list_utils
+from osm_lcm.lcm_utils import get_iterable
def get_lcm_operations_configuration(vnfd):
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
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):
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"]