Feature 10887: Add cross-model relations support
[osm/LCM.git] / osm_lcm / data_utils / nsd.py
index 2917c04..9b6fb81 100644 (file)
 ##
 import ast
 
+from osm_lcm.data_utils.list_utils import find_in_list
+
 
 def get_vnf_profiles(nsd):
     return nsd.get("df")[0].get("vnf-profile", ())
 
 
+def get_vnf_profile(nsd, vnf_profile_id):
+    return find_in_list(
+        get_vnf_profiles(nsd),
+        lambda vnf_profile: vnf_profile["id"] == vnf_profile_id,
+    )
+
+
 def get_virtual_link_profiles(nsd):
     return nsd.get("df")[0].get("virtual-link-profile", ())
 
@@ -36,3 +45,11 @@ def replace_vnf_id(nsd, old_vnf_id, new_vnf_id):
     dict_str = str(nsd)
     dict_str.replace(old_vnf_id, new_vnf_id)
     return ast.literal_eval(dict_str)
+
+
+def get_ns_configuration(nsd):
+    return nsd.get("ns-configuration", {})
+
+
+def get_ns_configuration_relation_list(nsd):
+    return get_ns_configuration(nsd).get("relation", [])