diff options
author | egernug <gerard.nugent@est.tech> | 2024-11-08 13:34:00 +0000 |
---|---|---|
committer | egernug <gerard.nugent@est.tech> | 2024-11-12 11:43:56 +0000 |
commit | af283af05c69a93304935e152d7c83a23ac82b1e (patch) | |
tree | 09244e62acc1f52402b649812748ba21a3d23036 | |
parent | 3399fdea15b9c7e6d05148f82f9ceeeee813b84a (diff) |
Hashmark support in 3gpp objects
NCMP should cut off the part after the # of an alternateid
and use only the first part in CPS match check, but send the complete request to the DMI plugin.
Issue-ID: CPS-2485
Change-Id: Icc1442f2be9545036619043692c3559ffadecb0d
Signed-off-by: egernug <gerard.nugent@est.tech>
-rw-r--r-- | cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/utils/AlternateIdMatcher.java | 5 | ||||
-rw-r--r-- | cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/utils/AlternateIdMatcherSpec.groovy | 14 |
2 files changed, 12 insertions, 7 deletions
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/utils/AlternateIdMatcher.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/utils/AlternateIdMatcher.java index c526dfb297..9facd630a2 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/utils/AlternateIdMatcher.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/utils/AlternateIdMatcher.java @@ -38,14 +38,15 @@ public class AlternateIdMatcher { /** * Get data node that matches longest alternate id by removing elements (as defined by the separator string) - * from right to left. + * from right to left. If alternate id contains a hash then all elements after that hash are ignored. * * @param alternateId alternate ID * @param separator a string that separates each element from the next. * @return data node */ public DataNode getCmHandleDataNodeByLongestMatchingAlternateId(final String alternateId, final String separator) { - String bestMatch = alternateId; + final String[] splitPath = alternateId.split("#", 2); + String bestMatch = splitPath[0]; while (StringUtils.isNotEmpty(bestMatch)) { try { return inventoryPersistence.getCmHandleDataNodeByAlternateId(bestMatch); diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/utils/AlternateIdMatcherSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/utils/AlternateIdMatcherSpec.groovy index a497b4554a..bd1faa2705 100644 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/utils/AlternateIdMatcherSpec.groovy +++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/utils/AlternateIdMatcherSpec.groovy @@ -42,11 +42,15 @@ class AlternateIdMatcherSpec extends Specification { expect: 'querying for alternate id a matching result found' assert objectUnderTest.getCmHandleDataNodeByLongestMatchingAlternateId(targetAlternateId, '/') != null where: 'the following parameters are used' - scenario | targetAlternateId - 'exact match' | '/a/b' - 'parent match' | '/a/b/c' - 'grand parent match' | '/a/b/c/d' - 'trailing separator match' | '/a/b/' + scenario | targetAlternateId + 'exact match' | '/a/b' + 'parent match' | '/a/b/c' + 'grand parent match' | '/a/b/c/d' + 'trailing separator match' | '/a/b/' + 'trailing hash' | '/a/b#q' + 'trailing hash parent match' | '/a/b/c#q' + 'trailing hash grand parent match' | '/a/b/c/d#q' + 'trailing separator then hash match' | '/a/b/#q' } def 'Attempt to find longest alternate id match without any matches.'() { |