X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_lcm%2Fdata_utils%2Fvnfd.py;h=1b45b5397ca5f06708d1065dbe1d89616307e2e2;hb=b577d310375e54ff831d512de39738e194c7e67f;hp=5774060b070e8991a34292b76b312f69cb190322;hpb=922c41753ffbb4b526f2135a23c39f480c58e2cb;p=osm%2FLCM.git diff --git a/osm_lcm/data_utils/vnfd.py b/osm_lcm/data_utils/vnfd.py index 5774060..1b45b53 100644 --- a/osm_lcm/data_utils/vnfd.py +++ b/osm_lcm/data_utils/vnfd.py @@ -88,33 +88,17 @@ 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]: +def get_configuration(vnfd, entity_id): + lcm_ops_config = vnfd.get("df")[0].get("lcm-operations-configuration") + if not lcm_ops_config: return None - vnf_config_id = vnfd.get("df")[0]["vnf-configuration-id"] - return list_utils.find_in_list( - vnfd.get("vnf-configuration", {}), - lambda vnf_config: vnf_config["id"] == vnf_config_id) - - -def get_vdu_configuration(vnfd, vdu_id): - vdu_profile = get_vdu_profile(vnfd, vdu_id) - return list_utils.find_in_list( - vnfd.get("vdu-configuration", ()), - 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) + ops_vnf = lcm_ops_config.get("operate-vnf-op-config") + if not ops_vnf: + return None + day12ops = ops_vnf.get("day1-2", []) return list_utils.find_in_list( - vnfd.get("kdu-configuration", ()), - lambda kdu_configuration: kdu_configuration["id"] == kdu_profile["kdu-configuration-id"]) + day12ops, + lambda configuration: configuration["id"] == entity_id) def get_virtual_link_profiles(vnfd): @@ -135,3 +119,33 @@ 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 + ).get("number-of-instances", 1) + + +def get_juju_ee_ref(vnfd, entity_id): + return list_utils.find_in_list( + get_configuration(vnfd, entity_id).get( + "execution-environment-list", + [] + ), + lambda ee: "juju" in ee + )