From 074b38771081c22aa9b36def0bcfffe7ba6847e5 Mon Sep 17 00:00:00 2001 From: "david.mcweeney" Date: Wed, 15 May 2024 16:35:48 +0100 Subject: CPS-2187 - #6 Add module Set Tag to ncmp (single cm handle) data request to dmi Change-Id: I59cdb021d8f2f767b943f09715f4becad820e786 Signed-off-by: david.mcweeney Issue-ID: CPS-2187 --- .../api/impl/operations/DmiDataOperations.java | 58 +++++++++++++++------- .../ncmp/api/impl/utils/DmiServiceUrlBuilder.java | 11 ++-- 2 files changed, 47 insertions(+), 22 deletions(-) (limited to 'cps-ncmp-service/src/main') diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operations/DmiDataOperations.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operations/DmiDataOperations.java index a9ec1241b..789852a19 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operations/DmiDataOperations.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operations/DmiDataOperations.java @@ -90,9 +90,14 @@ public class DmiDataOperations extends DmiOperations { final CmHandleState cmHandleState = yangModelCmHandle.getCompositeState().getCmHandleState(); validateIfCmHandleStateReady(yangModelCmHandle, cmHandleState); final String jsonRequestBody = getDmiRequestBody(READ, requestId, null, null, yangModelCmHandle); - final String dmiResourceDataUrl = getDmiRequestUrl(cmResourceAddress.datastoreName(), - cmResourceAddress.cmHandleId(), cmResourceAddress.resourceIdentifier(), optionsParamInQuery, - topicParamInQuery, yangModelCmHandle.resolveDmiServiceName(RequiredDmiService.DATA)); + + final MultiValueMap uriQueryParamsMap = getUriQueryParamsMap( + cmResourceAddress.resourceIdentifier(), optionsParamInQuery, + topicParamInQuery, yangModelCmHandle.getModuleSetTag()); + final Map uriVariableParamsMap = getUriVariableParamsMap(cmResourceAddress.datastoreName(), + yangModelCmHandle.resolveDmiServiceName(RequiredDmiService.DATA), cmResourceAddress.cmHandleId()); + final String dmiResourceDataUrl = getDmiRequestUrl(uriQueryParamsMap, uriVariableParamsMap); + return dmiRestClient.postOperationWithJsonData(dmiResourceDataUrl, jsonRequestBody, READ, authorization); } @@ -111,9 +116,13 @@ public class DmiDataOperations extends DmiOperations { final YangModelCmHandle yangModelCmHandle = getYangModelCmHandle(cmHandleId); final String jsonRequestBody = getDmiRequestBody(READ, requestId, null, null, yangModelCmHandle); - final String dmiResourceDataUrl = getDmiRequestUrl(dataStoreName, cmHandleId, "/", - null, null, - yangModelCmHandle.resolveDmiServiceName(RequiredDmiService.DATA)); + + final MultiValueMap uriQueryParamsMap = getUriQueryParamsMap("/", null, + null, yangModelCmHandle.getModuleSetTag()); + final Map uriVariableParamsMap = getUriVariableParamsMap(dataStoreName, + yangModelCmHandle.resolveDmiServiceName(RequiredDmiService.DATA), cmHandleId); + final String dmiResourceDataUrl = getDmiRequestUrl(uriQueryParamsMap, uriVariableParamsMap); + final CmHandleState cmHandleState = yangModelCmHandle.getCompositeState().getCmHandleState(); validateIfCmHandleStateReady(yangModelCmHandle, cmHandleState); return dmiRestClient.postOperationWithJsonData(dmiResourceDataUrl, jsonRequestBody, READ, null); @@ -168,9 +177,13 @@ public class DmiDataOperations extends DmiOperations { final YangModelCmHandle yangModelCmHandle = getYangModelCmHandle(cmHandleId); final String jsonRequestBody = getDmiRequestBody(operationType, null, requestData, dataType, yangModelCmHandle); - final String dmiUrl = getDmiRequestUrl(PASSTHROUGH_RUNNING.getDatastoreName(), cmHandleId, resourceId, - null, null, - yangModelCmHandle.resolveDmiServiceName(RequiredDmiService.DATA)); + + final MultiValueMap uriQueryParamsMap = getUriQueryParamsMap(resourceId, null, + null, yangModelCmHandle.getModuleSetTag()); + final Map uriVariableParamsMap = getUriVariableParamsMap(PASSTHROUGH_RUNNING.getDatastoreName(), + yangModelCmHandle.resolveDmiServiceName(RequiredDmiService.DATA), cmHandleId); + final String dmiUrl = getDmiRequestUrl(uriQueryParamsMap, uriVariableParamsMap); + final CmHandleState cmHandleState = yangModelCmHandle.getCompositeState().getCmHandleState(); validateIfCmHandleStateReady(yangModelCmHandle, cmHandleState); return dmiRestClient.postOperationWithJsonData(dmiUrl, jsonRequestBody, operationType, authorization); @@ -195,16 +208,23 @@ public class DmiDataOperations extends DmiOperations { return jsonObjectMapper.asJsonString(dmiRequestBody); } - private String getDmiRequestUrl(final String dataStoreName, - final String cmHandleId, - final String resourceId, - final String optionsParamInQuery, - final String topicParamInQuery, - final String dmiServiceName) { - return dmiServiceUrlBuilder.getDmiDatastoreUrl( - dmiServiceUrlBuilder.populateQueryParams(resourceId, optionsParamInQuery, - topicParamInQuery), dmiServiceUrlBuilder.populateUriVariables(dataStoreName, dmiServiceName, - cmHandleId)); + private String getDmiRequestUrl(final MultiValueMap uriQueryParamsMap, + final Map uriVariableParamsMap) { + return dmiServiceUrlBuilder.getDmiDatastoreUrl(uriQueryParamsMap, uriVariableParamsMap); + } + + private MultiValueMap getUriQueryParamsMap(final String resourceId, + final String optionsParamInQuery, + final String topicParamInQuery, + final String moduleSetTagParamInQuery) { + return dmiServiceUrlBuilder.populateQueryParams(resourceId, optionsParamInQuery, + topicParamInQuery, moduleSetTagParamInQuery); + } + + private Map getUriVariableParamsMap(final String dataStoreName, + final String dmiServiceName, + final String cmHandleId) { + return dmiServiceUrlBuilder.populateUriVariables(dataStoreName, dmiServiceName, cmHandleId); } private String getDmiServiceDataOperationRequestUrl(final String dmiServiceName, diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/DmiServiceUrlBuilder.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/DmiServiceUrlBuilder.java index 04acaa5e9..ede5256d8 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/DmiServiceUrlBuilder.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/DmiServiceUrlBuilder.java @@ -133,13 +133,15 @@ public class DmiServiceUrlBuilder { * This method is used to populate map from query params. * * @param resourceId unique id of response for valid topic - * @param optionsParamInQuery options into url param - * @param topicParamInQuery topic into url param + * @param optionsParamInQuery options as provided by client + * @param topicParamInQuery topic as provided by client + * @param moduleSetTag module set tag associated with the given cm handle * @return all valid query params as map */ public MultiValueMap populateQueryParams(final String resourceId, final String optionsParamInQuery, - final String topicParamInQuery) { + final String topicParamInQuery, + final String moduleSetTag) { final MultiValueMap queryParams = new LinkedMultiValueMap<>(); getQueryParamConsumer().accept("resourceIdentifier", resourceId, queryParams); @@ -147,6 +149,9 @@ public class DmiServiceUrlBuilder { if (Strings.isNotEmpty(topicParamInQuery)) { getQueryParamConsumer().accept("topic", topicParamInQuery, queryParams); } + if (Strings.isNotEmpty(moduleSetTag)) { + getQueryParamConsumer().accept("moduleSetTag", moduleSetTag, queryParams); + } return queryParams; } -- cgit 1.2.3-korg