[BUG] Fix handling of special characters in moduleSetTag 98/138398/2
authordanielhanrahan <daniel.hanrahan@est.tech>
Fri, 5 Jul 2024 12:20:31 +0000 (13:20 +0100)
committerdanielhanrahan <daniel.hanrahan@est.tech>
Fri, 5 Jul 2024 12:39:49 +0000 (13:39 +0100)
During CM-handle registration, moduleSetTag is sent as part of the
JSON request body when getting modules from DMI. However, it
incorrectly parses the moduleSetTag as JSON, instead of encoding to
JSON. This results in parsing errors when moduleSetTag includes
characters such as ':'

Issue-ID: CPS-2302
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: Ie38008e0effac2423a4d069a91587e47d8747d66

cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/DmiModelOperations.java
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/sync/DmiModelOperationsSpec.groovy
docs/release-notes.rst

index 7d6677c..c1f89b3 100644 (file)
@@ -25,9 +25,7 @@ import static org.onap.cps.ncmp.api.data.models.OperationType.READ;
 import static org.onap.cps.ncmp.impl.models.RequiredDmiService.MODEL;
 
 import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -126,8 +124,7 @@ public class DmiModelOperations {
         data.add("modules", moduleReferencesAsJson);
         final JsonObject jsonRequestObject = new JsonObject();
         if (!moduleSetTag.isEmpty()) {
-            final JsonElement moduleSetTagAsJson = JsonParser.parseString(moduleSetTag);
-            jsonRequestObject.add("moduleSetTag", moduleSetTagAsJson);
+            jsonRequestObject.addProperty("moduleSetTag", moduleSetTag);
         }
         jsonRequestObject.add("data", data);
         jsonRequestObject.add("cmHandleProperties", toJsonObject(dmiProperties));
index 1268bc7..1735297 100644 (file)
@@ -170,9 +170,10 @@ class DmiModelOperationsSpec extends DmiOperationsBaseSpec {
         then: 'the result is the response from DMI service'
             assert result == [mod1:'some yang source']
         where: 'the following Module Set Tags are used'
-            scenario                 | moduleSetTag    || expectedModuleSetTagInRequest
-            'Without module set tag' | ''              || ''
-            'With module set tag'    | 'moduleSetTag1' || '"moduleSetTag":"moduleSetTag1",'
+            scenario                               | moduleSetTag       || expectedModuleSetTagInRequest
+            'Without module set tag'               | ''                 || ''
+            'With module set tag'                  | 'moduleSetTag1'    || '"moduleSetTag":"moduleSetTag1",'
+            'Special characters in module set tag' | 'module:set#tag$2' || '"moduleSetTag":"module:set#tag$2",'
     }
 
     def 'Retrieving yang resources from DMI with no module references.'() {
index 01735df..ce2c028 100644 (file)
@@ -39,6 +39,7 @@ Release Data
 Bug Fixes
 ---------
 3.5.1
+    - `CPS-2302 <https://jira.onap.org/browse/CPS-2302>`_ Fix handling of special characters in moduleSetTag.
 
 Features
 --------