Feature 11047: Vim Flavor Name as Ns Config Template

Change-Id: Iea89c560fdcf736cf14e104736feab48c81b2114
Signed-off-by: kayal2001 <kayalvizhi.v@tataelxsi.co.in>
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/osm_nbi/descriptor_topics.py b/osm_nbi/descriptor_topics.py
index 287dbda..36b1d65 100644
--- a/osm_nbi/descriptor_topics.py
+++ b/osm_nbi/descriptor_topics.py
@@ -2320,6 +2320,15 @@
                     for key, value in edit_content_param.items():
                         param = key
                         param_content = value
+                        if param == "vnf":
+                            for content in param_content:
+                                for vdu in content.get("vdu"):
+                                    if vdu.get("vim-flavor-name") and vdu.get(
+                                        "vim-flavor-id"
+                                    ):
+                                        raise EngineException(
+                                            "Instantiation parameters vim-flavor-name and vim-flavor-id are mutually exclusive"
+                                        )
                         validate_input(param_content, self.instantiation_params[param])
             return final_content
         except Exception as e:
diff --git a/osm_nbi/instance_topics.py b/osm_nbi/instance_topics.py
index 6308e56..c336229 100644
--- a/osm_nbi/instance_topics.py
+++ b/osm_nbi/instance_topics.py
@@ -374,6 +374,15 @@
                     ns_config_template_db, "ns_config_template", self.db
                 )
 
+            elif ns_request.get("vnf"):
+                vnf_data = ns_request.get("vnf")
+                for vnf in vnf_data:
+                    for vdu in vnf.get("vdu"):
+                        if vdu.get("vim-flavor-name") and vdu.get("vim-flavor-id"):
+                            raise EngineException(
+                                "Instantiation parameters vim-flavor-name and vim-flavor-id are mutually exclusive"
+                            )
+
             step = "checking nsdOperationalState"
             self._check_nsd_operational_state(nsd, ns_request)
 
diff --git a/osm_nbi/validation.py b/osm_nbi/validation.py
index e27cfb0..0ba0a5f 100644
--- a/osm_nbi/validation.py
+++ b/osm_nbi/validation.py
@@ -159,6 +159,7 @@
         "id": name_schema,
         "vim-flavor-id": name_schema,
         "instance_name": name_schema,
+        "vim-flavor-name": name_schema,
         "volume": {
             "type": "array",
             "minItems": 1,