Bug 1837 fix - Helm based KNF cannot be instantiated if values files contains a label with special characters '.'
Change-Id: I1888e9402449ef67898b7ebe6a0d68f5cc282978
Signed-off-by: Guillermo Calvino <guillermo.calvino@canonical.com>
diff --git a/osm_nbi/instance_topics.py b/osm_nbi/instance_topics.py
index 6922112..22580d1 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 @@
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", []):
@@ -1987,6 +1990,10 @@
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)