diff --git a/osm_nbi/descriptor_topics.py b/osm_nbi/descriptor_topics.py index 287dbda0e8e90c1c3a31b089626eb60e6854b79a..36b1d6506f9064a51aeb00ebd97685522ea8ea84 100644 --- a/osm_nbi/descriptor_topics.py +++ b/osm_nbi/descriptor_topics.py @@ -2320,6 +2320,15 @@ class NsConfigTemplateTopic(DescriptorTopic): 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 6308e56b7f31616dc8554aad4179035115388d29..c3362293b8a258d6d674360c5b4f76629a8b7fd9 100644 --- a/osm_nbi/instance_topics.py +++ b/osm_nbi/instance_topics.py @@ -374,6 +374,15 @@ class NsrTopic(BaseTopic): 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 e27cfb09b71b6db0b5fa6e12970c6c42906070fe..0ba0a5fdcedc42e3e524a3d38c1aa3a6bd7c82ad 100644 --- a/osm_nbi/validation.py +++ b/osm_nbi/validation.py @@ -159,6 +159,7 @@ ns_instantiate_vdu = { "id": name_schema, "vim-flavor-id": name_schema, "instance_name": name_schema, + "vim-flavor-name": name_schema, "volume": { "type": "array", "minItems": 1,