From b7945ed494e016a9c9a788d24aa013c96631554f Mon Sep 17 00:00:00 2001 From: Guillermo Calvino Date: Wed, 26 Jan 2022 17:37:56 +0100 Subject: [PATCH] Bug 1871 fix - Helm based KNF cannot be instantiated if values files contains a label with special characters '.' Change-Id: I1888e9402449ef67898b7ebe6a0d68f5cc282978 Signed-off-by: Guillermo Calvino --- osm_nbi/instance_topics.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/osm_nbi/instance_topics.py b/osm_nbi/instance_topics.py index ece55b2..dbdc583 100644 --- a/osm_nbi/instance_topics.py +++ b/osm_nbi/instance_topics.py @@ -14,6 +14,7 @@ # limitations under the License. # import logging +import json from uuid import uuid4 from http import HTTPStatus from time import time @@ -239,14 +240,16 @@ class NsrTopic(BaseTopic): where_, k ) ) - if "." in k or "$" in k: + if "$" in k: raise EngineException( - "Invalid param at {}:{}. Keys must not contain dots or $".format( + "Invalid param at {}:{}. Keys must not contain $ symbol".format( where_, k ) ) if isinstance(v, (dict, tuple, list)): additional_params[k] = "!!yaml " + safe_dump(v) + if kdu_name: + additional_params = json.dumps(additional_params) if descriptor: for df in descriptor.get("df", []): @@ -1986,6 +1989,10 @@ class NsLcmOpTopic(BaseTopic): HTTPStatus.CONFLICT, ) self._check_ns_operation(session, nsr, operation, indata) + if (indata.get("primitive_params")): + indata["primitive_params"] = json.dumps(indata["primitive_params"]) + elif (indata.get("additionalParamsForVnf")): + indata["additionalParamsForVnf"] = json.dumps(indata["additionalParamsForVnf"]) if operation == "instantiate": self._update_vnfrs_from_nsd(nsr) -- 2.25.1