Feature 11047: Vim Flavor Name as Ns Config Template - RO
Change-Id: I988255eb3045a5d40118995b56a9afdedb16bc93
Signed-off-by: kayal2001 <kayalvizhi.v@tataelxsi.co.in>
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/NG-RO/osm_ng_ro/ns.py b/NG-RO/osm_ng_ro/ns.py
index 624940f..c778041 100644
--- a/NG-RO/osm_ng_ro/ns.py
+++ b/NG-RO/osm_ng_ro/ns.py
@@ -840,6 +840,14 @@
if vim_flavor_id: # vim-flavor-id was passed so flavor won't be created
return {"find_params": {"vim_flavor_id": vim_flavor_id}}
+ vim_flavor_name = (
+ target_vdur.get("additionalParams", {})
+ .get("OSM", {})
+ .get("vim_flavor_name")
+ )
+ if vim_flavor_name: # vim-flavor-name was passed so flavor won't be created
+ return {"find_params": {"vim_flavor_name": vim_flavor_name}}
+
flavor_data = {
"disk": int(target_flavor["storage-gb"]),
"ram": int(target_flavor["memory-mb"]),
diff --git a/NG-RO/osm_ng_ro/ns_thread.py b/NG-RO/osm_ng_ro/ns_thread.py
index 4937964..3ef6dda 100644
--- a/NG-RO/osm_ng_ro/ns_thread.py
+++ b/NG-RO/osm_ng_ro/ns_thread.py
@@ -1270,6 +1270,31 @@
}
each_flavor.update(flavor_dict)
self.db.set_one("nsrs", {"_id": task["nsr_id"]}, db_nsr)
+ elif task.get("find_params", {}).get("vim_flavor_name"):
+ db_nsr = self.db.get_one("nsrs", {"_id": task["nsr_id"]})
+ for vnfr_id in db_nsr.get("constituent-vnfr-ref"):
+ db_vnfr = self.db.get_one("vnfrs", {"_id": vnfr_id})
+ for each_flavor in db_nsr["flavor"]:
+ nsd_flavor_id = each_flavor["id"]
+ for vdur in db_vnfr["vdur"]:
+ if vdur.get("ns-flavor-id") == nsd_flavor_id:
+ if vdur["additionalParams"]["OSM"].get(
+ "vim_flavor_name"
+ ):
+ flavor_name = vdur["additionalParams"]["OSM"][
+ "vim_flavor_name"
+ ]
+ flavor_details = target_vim.get_flavor(
+ flavor_name=flavor_name
+ )
+ flavor_dict = {
+ "memory-mb": flavor_details["ram"],
+ "storage-gb": flavor_details["disk"],
+ "vcpu-count": flavor_details["vcpus"],
+ }
+ each_flavor.update(flavor_dict)
+ vim_flavor_id = flavor_details.get("id")
+ self.db.set_one("nsrs", {"_id": task["nsr_id"]}, db_nsr)
elif task.get("find_params", {}).get("flavor_data"):
try:
flavor_data = task["find_params"]["flavor_data"]